php-parser/pkg/ast/node.go

2113 lines
37 KiB
Go

package ast
import (
"github.com/z7zmey/php-parser/pkg/position"
"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
}
func (n *Root) Accept(v NodeVisitor) {
v.Root(n)
}
// Nullable node
type Nullable struct {
Node
QuestionTkn *token.Token
Expr Vertex
}
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
Var Vertex
EqualTkn *token.Token
DefaultValue Vertex
}
func (n *Parameter) Accept(v NodeVisitor) {
v.Parameter(n)
}
// Identifier node
type Identifier struct {
Node
IdentifierTkn *token.Token
Value []byte
}
func (n *Identifier) Accept(v NodeVisitor) {
v.Identifier(n)
}
// Argument node
type Argument struct {
Node
VariadicTkn *token.Token
AmpersandTkn *token.Token
Expr Vertex
}
func (n *Argument) Accept(v NodeVisitor) {
v.Argument(n)
}
// ScalarDnumber node
type ScalarDnumber struct {
Node
NumberTkn *token.Token
Value []byte
}
func (n *ScalarDnumber) Accept(v NodeVisitor) {
v.ScalarDnumber(n)
}
// ScalarEncapsed node
type ScalarEncapsed struct {
Node
OpenQoteTkn *token.Token
Parts []Vertex
CloseQoteTkn *token.Token
}
func (n *ScalarEncapsed) Accept(v NodeVisitor) {
v.ScalarEncapsed(n)
}
// ScalarEncapsedStringPart node
type ScalarEncapsedStringPart struct {
Node
EncapsedStrTkn *token.Token
Value []byte
}
func (n *ScalarEncapsedStringPart) Accept(v NodeVisitor) {
v.ScalarEncapsedStringPart(n)
}
// ScalarHeredoc node
type ScalarHeredoc struct {
Node
OpenHeredocTkn *token.Token
Parts []Vertex
CloseHeredocTkn *token.Token
}
func (n *ScalarHeredoc) Accept(v NodeVisitor) {
v.ScalarHeredoc(n)
}
// ScalarLnumber node
type ScalarLnumber struct {
Node
NumberTkn *token.Token
Value []byte
}
func (n *ScalarLnumber) Accept(v NodeVisitor) {
v.ScalarLnumber(n)
}
// ScalarMagicConstant node
type ScalarMagicConstant struct {
Node
MagicConstTkn *token.Token
Value []byte
}
func (n *ScalarMagicConstant) Accept(v NodeVisitor) {
v.ScalarMagicConstant(n)
}
// ScalarString node
type ScalarString struct {
Node
MinusTkn *token.Token
StringTkn *token.Token
Value []byte
}
func (n *ScalarString) Accept(v NodeVisitor) {
v.ScalarString(n)
}
// StmtBreak node
type StmtBreak struct {
Node
BreakTkn *token.Token
Expr Vertex
SemiColonTkn *token.Token
}
func (n *StmtBreak) Accept(v NodeVisitor) {
v.StmtBreak(n)
}
// StmtCase node
type StmtCase struct {
Node
CaseTkn *token.Token
Cond Vertex
CaseSeparatorTkn *token.Token
Stmts []Vertex
}
func (n *StmtCase) Accept(v NodeVisitor) {
v.StmtCase(n)
}
// StmtCatch node
type StmtCatch struct {
Node
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) {
v.StmtCatch(n)
}
// StmtClass node
type StmtClass struct {
Node
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) {
v.StmtClass(n)
}
// StmtClassConstList node
type StmtClassConstList struct {
Node
Modifiers []Vertex
ConstTkn *token.Token
Consts []Vertex
SemiColonTkn *token.Token
}
func (n *StmtClassConstList) Accept(v NodeVisitor) {
v.StmtClassConstList(n)
}
// StmtClassExtends node
type StmtClassExtends struct {
Node
ExtendTkn *token.Token
ClassName Vertex
}
func (n *StmtClassExtends) Accept(v NodeVisitor) {
v.StmtClassExtends(n)
}
// StmtClassImplements node
type StmtClassImplements struct {
Node
ImplementsTkn *token.Token
InterfaceNames []Vertex
SeparatorTkns []*token.Token
}
func (n *StmtClassImplements) Accept(v NodeVisitor) {
v.StmtClassImplements(n)
}
// StmtClassMethod node
type StmtClassMethod struct {
Node
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) {
v.StmtClassMethod(n)
}
// StmtConstList node
type StmtConstList struct {
Node
ConstTkn *token.Token
Consts []Vertex
SeparatorTkns []*token.Token
SemiColonTkn *token.Token
}
func (n *StmtConstList) Accept(v NodeVisitor) {
v.StmtConstList(n)
}
// StmtConstant node
type StmtConstant struct {
Node
Name Vertex
EqualTkn *token.Token
Expr Vertex
CommaTkn *token.Token
}
func (n *StmtConstant) Accept(v NodeVisitor) {
v.StmtConstant(n)
}
// StmtContinue node
type StmtContinue struct {
Node
ContinueTkn *token.Token
Expr Vertex
SemiColonTkn *token.Token
}
func (n *StmtContinue) Accept(v NodeVisitor) {
v.StmtContinue(n)
}
// StmtDeclare node
type StmtDeclare struct {
Node
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) {
v.StmtDeclare(n)
}
// StmtDefault node
type StmtDefault struct {
Node
DefaultTkn *token.Token
CaseSeparatorTkn *token.Token
Stmts []Vertex
}
func (n *StmtDefault) Accept(v NodeVisitor) {
v.StmtDefault(n)
}
// StmtDo node
type StmtDo struct {
Node
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) {
v.StmtDo(n)
}
// StmtEcho node
type StmtEcho struct {
Node
EchoTkn *token.Token
Exprs []Vertex
SeparatorTkns []*token.Token
SemiColonTkn *token.Token
}
func (n *StmtEcho) Accept(v NodeVisitor) {
v.StmtEcho(n)
}
// StmtElse node
type StmtElse struct {
Node
Alt bool
ElseTkn *token.Token
ColonTkn *token.Token
Stmt Vertex
}
func (n *StmtElse) Accept(v NodeVisitor) {
v.StmtElse(n)
}
// StmtElseIf node
type StmtElseIf struct {
Node
Alt bool
ElseIfTkn *token.Token
OpenParenthesisTkn *token.Token
Cond Vertex
CloseParenthesisTkn *token.Token
ColonTkn *token.Token
Stmt Vertex
}
func (n *StmtElseIf) Accept(v NodeVisitor) {
v.StmtElseIf(n)
}
// StmtExpression node
type StmtExpression struct {
Node
Expr Vertex
SemiColonTkn *token.Token
}
func (n *StmtExpression) Accept(v NodeVisitor) {
v.StmtExpression(n)
}
// StmtFinally node
type StmtFinally struct {
Node
FinallyTkn *token.Token
OpenCurlyBracketTkn *token.Token
Stmts []Vertex
CloseCurlyBracketTkn *token.Token
}
func (n *StmtFinally) Accept(v NodeVisitor) {
v.StmtFinally(n)
}
// StmtFor node
type StmtFor struct {
Node
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) {
v.StmtFor(n)
}
// StmtForeach node
type StmtForeach struct {
Node
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) {
v.StmtForeach(n)
}
// StmtFunction node
type StmtFunction struct {
Node
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) {
v.StmtFunction(n)
}
// StmtGlobal node
type StmtGlobal struct {
Node
GlobalTkn *token.Token
Vars []Vertex
SeparatorTkns []*token.Token
SemiColonTkn *token.Token
}
func (n *StmtGlobal) Accept(v NodeVisitor) {
v.StmtGlobal(n)
}
// StmtGoto node
type StmtGoto struct {
Node
GotoTkn *token.Token
Label Vertex
SemiColonTkn *token.Token
}
func (n *StmtGoto) Accept(v NodeVisitor) {
v.StmtGoto(n)
}
// StmtHaltCompiler node
type StmtHaltCompiler struct {
Node
HaltCompilerTkn *token.Token
OpenParenthesisTkn *token.Token
CloseParenthesisTkn *token.Token
SemiColonTkn *token.Token
}
func (n *StmtHaltCompiler) Accept(v NodeVisitor) {
v.StmtHaltCompiler(n)
}
// StmtIf node
type StmtIf struct {
Node
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) {
v.StmtIf(n)
}
// StmtInlineHtml node
type StmtInlineHtml struct {
Node
InlineHtmlTkn *token.Token
Value []byte
}
func (n *StmtInlineHtml) Accept(v NodeVisitor) {
v.StmtInlineHtml(n)
}
// StmtInterface node
type StmtInterface struct {
Node
InterfaceTkn *token.Token
InterfaceName Vertex
Extends Vertex
OpenCurlyBracketTkn *token.Token
Stmts []Vertex
CloseCurlyBracketTkn *token.Token
}
func (n *StmtInterface) Accept(v NodeVisitor) {
v.StmtInterface(n)
}
// StmtInterfaceExtends node
type StmtInterfaceExtends struct {
Node
ExtendsTkn *token.Token
InterfaceNames []Vertex
SeparatorTkns []*token.Token
}
func (n *StmtInterfaceExtends) Accept(v NodeVisitor) {
v.StmtInterfaceExtends(n)
}
// StmtLabel node
type StmtLabel struct {
Node
LabelName Vertex
ColonTkn *token.Token
}
func (n *StmtLabel) Accept(v NodeVisitor) {
v.StmtLabel(n)
}
// StmtNamespace node
type StmtNamespace struct {
Node
NsTkn *token.Token
Name Vertex
OpenCurlyBracket *token.Token
Stmts []Vertex
CloseCurlyBracket *token.Token
SemiColonTkn *token.Token
}
func (n *StmtNamespace) Accept(v NodeVisitor) {
v.StmtNamespace(n)
}
// StmtNop node
type StmtNop struct {
Node
SemiColonTkn *token.Token
}
func (n *StmtNop) Accept(v NodeVisitor) {
v.StmtNop(n)
}
// StmtProperty node
type StmtProperty struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *StmtProperty) Accept(v NodeVisitor) {
v.StmtProperty(n)
}
// StmtPropertyList node
type StmtPropertyList struct {
Node
Modifiers []Vertex
Type Vertex
Properties []Vertex
SeparatorTkns []*token.Token
SemiColonTkn *token.Token
}
func (n *StmtPropertyList) Accept(v NodeVisitor) {
v.StmtPropertyList(n)
}
// StmtReturn node
type StmtReturn struct {
Node
ReturnTkn *token.Token
Expr Vertex
SemiColonTkn *token.Token
}
func (n *StmtReturn) Accept(v NodeVisitor) {
v.StmtReturn(n)
}
// StmtStatic node
type StmtStatic struct {
Node
StaticTkn *token.Token
Vars []Vertex
SeparatorTkns []*token.Token
SemiColonTkn *token.Token
}
func (n *StmtStatic) Accept(v NodeVisitor) {
v.StmtStatic(n)
}
// StmtStaticVar node
type StmtStaticVar struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *StmtStaticVar) Accept(v NodeVisitor) {
v.StmtStaticVar(n)
}
// StmtStmtList node
type StmtStmtList struct {
Node
OpenCurlyBracket *token.Token
Stmts []Vertex
CloseCurlyBracket *token.Token
}
func (n *StmtStmtList) Accept(v NodeVisitor) {
v.StmtStmtList(n)
}
// StmtSwitch node
type StmtSwitch struct {
Node
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) {
v.StmtSwitch(n)
}
// StmtThrow node
type StmtThrow struct {
Node
ThrowTkn *token.Token
Expr Vertex
SemiColonTkn *token.Token
}
func (n *StmtThrow) Accept(v NodeVisitor) {
v.StmtThrow(n)
}
// StmtTrait node
type StmtTrait struct {
Node
TraitTkn *token.Token
TraitName Vertex
Extends Vertex
Implements Vertex
OpenCurlyBracket *token.Token
Stmts []Vertex
CloseCurlyBracket *token.Token
}
func (n *StmtTrait) Accept(v NodeVisitor) {
v.StmtTrait(n)
}
// StmtTraitAdaptationList node
type StmtTraitAdaptationList struct {
Node
OpenParenthesisTkn *token.Token
Adaptations []Vertex
CloseParenthesisTkn *token.Token
}
func (n *StmtTraitAdaptationList) Accept(v NodeVisitor) {
v.StmtTraitAdaptationList(n)
}
// StmtTraitMethodRef node
type StmtTraitMethodRef struct {
Node
Trait Vertex
DoubleColonTkn *token.Token
Method Vertex
}
func (n *StmtTraitMethodRef) Accept(v NodeVisitor) {
v.StmtTraitMethodRef(n)
}
// StmtTraitUse node
type StmtTraitUse struct {
Node
UseTkn *token.Token
Traits []Vertex
SeparatorTkns []*token.Token
Adaptations Vertex
}
func (n *StmtTraitUse) Accept(v NodeVisitor) {
v.StmtTraitUse(n)
}
// StmtTraitUseAlias node
type StmtTraitUseAlias struct {
Node
Ref Vertex
AsTkn *token.Token
Modifier Vertex
Alias Vertex
}
func (n *StmtTraitUseAlias) Accept(v NodeVisitor) {
v.StmtTraitUseAlias(n)
}
// StmtTraitUsePrecedence node
type StmtTraitUsePrecedence struct {
Node
Ref Vertex
InsteadofTkn *token.Token
Insteadof []Vertex
SeparatorTkns []*token.Token
}
func (n *StmtTraitUsePrecedence) Accept(v NodeVisitor) {
v.StmtTraitUsePrecedence(n)
}
// StmtTry node
type StmtTry struct {
Node
TryTkn *token.Token
OpenCurlyBracket *token.Token
Stmts []Vertex
CloseCurlyBracket *token.Token
Catches []Vertex
Finally Vertex
}
func (n *StmtTry) Accept(v NodeVisitor) {
v.StmtTry(n)
}
// StmtUnset node
type StmtUnset struct {
Node
UnsetTkn *token.Token
OpenParenthesisTkn *token.Token
Vars []Vertex
SeparatorTkns []*token.Token
CloseParenthesisTkn *token.Token
SemiColonTkn *token.Token
}
func (n *StmtUnset) Accept(v NodeVisitor) {
v.StmtUnset(n)
}
// StmtUse node
type StmtUse struct {
Node
UseTkn *token.Token
Type Vertex
UseDeclarations []Vertex
SemiColonTkn *token.Token
}
func (n *StmtUse) Accept(v NodeVisitor) {
v.StmtUse(n)
}
// StmtGroupUse node
type StmtGroupUse struct {
Node
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 *StmtGroupUse) Accept(v NodeVisitor) {
v.StmtGroupUse(n)
}
// StmtUseDeclaration node
type StmtUseDeclaration struct {
Node
Type Vertex
NsSeparatorTkn *token.Token
Use Vertex
AsTkn *token.Token
Alias Vertex
CommaTkn *token.Token
}
func (n *StmtUseDeclaration) Accept(v NodeVisitor) {
v.StmtUseDeclaration(n)
}
// StmtWhile node
type StmtWhile struct {
Node
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) {
v.StmtWhile(n)
}
// ExprArray node
type ExprArray struct {
Node
ArrayTkn *token.Token
OpenBracketTkn *token.Token
Items []Vertex
SeparatorTkns []*token.Token
CloseBracketTkn *token.Token
}
func (n *ExprArray) Accept(v NodeVisitor) {
v.ExprArray(n)
}
// ExprArrayDimFetch node
type ExprArrayDimFetch struct {
Node
Var Vertex
OpenBracketTkn *token.Token
Dim Vertex
CloseBracketTkn *token.Token
}
func (n *ExprArrayDimFetch) Accept(v NodeVisitor) {
v.ExprArrayDimFetch(n)
}
// ExprArrayItem node
type ExprArrayItem struct {
Node
EllipsisTkn *token.Token
Key Vertex
DoubleArrowTkn *token.Token
Val Vertex
}
func (n *ExprArrayItem) Accept(v NodeVisitor) {
v.ExprArrayItem(n)
}
// ExprArrowFunction node
type ExprArrowFunction struct {
Node
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) {
v.ExprArrowFunction(n)
}
// ExprBitwiseNot node
type ExprBitwiseNot struct {
Node
TildaTkn *token.Token
Expr Vertex
}
func (n *ExprBitwiseNot) Accept(v NodeVisitor) {
v.ExprBitwiseNot(n)
}
// ExprBooleanNot node
type ExprBooleanNot struct {
Node
ExclamationTkn *token.Token
Expr Vertex
}
func (n *ExprBooleanNot) Accept(v NodeVisitor) {
v.ExprBooleanNot(n)
}
// ExprClassConstFetch node
type ExprClassConstFetch struct {
Node
Class Vertex
DoubleColonTkn *token.Token
ConstantName Vertex
}
func (n *ExprClassConstFetch) Accept(v NodeVisitor) {
v.ExprClassConstFetch(n)
}
// ExprClone node
type ExprClone struct {
Node
CloneTkn *token.Token
Expr Vertex
}
func (n *ExprClone) Accept(v NodeVisitor) {
v.ExprClone(n)
}
// ExprClosure node
type ExprClosure struct {
Node
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) {
v.ExprClosure(n)
}
// ExprClosureUse node
type ExprClosureUse struct {
Node
UseTkn *token.Token
OpenParenthesisTkn *token.Token
Uses []Vertex
SeparatorTkns []*token.Token
CloseParenthesisTkn *token.Token
}
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
EmptyTkn *token.Token
OpenParenthesisTkn *token.Token
Expr Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprEmpty) Accept(v NodeVisitor) {
v.ExprEmpty(n)
}
// ExprErrorSuppress node
type ExprErrorSuppress struct {
Node
AtTkn *token.Token
Expr Vertex
}
func (n *ExprErrorSuppress) Accept(v NodeVisitor) {
v.ExprErrorSuppress(n)
}
// ExprEval node
type ExprEval struct {
Node
EvalTkn *token.Token
OpenParenthesisTkn *token.Token
Expr Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprEval) Accept(v NodeVisitor) {
v.ExprEval(n)
}
// ExprExit node
type ExprExit struct {
Node
DieTkn *token.Token
OpenParenthesisTkn *token.Token
Expr Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprExit) Accept(v NodeVisitor) {
v.ExprExit(n)
}
// ExprFunctionCall node
type ExprFunctionCall struct {
Node
Function Vertex
OpenParenthesisTkn *token.Token
Arguments []Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprFunctionCall) Accept(v NodeVisitor) {
v.ExprFunctionCall(n)
}
// ExprInclude node
type ExprInclude struct {
Node
IncludeTkn *token.Token
Expr Vertex
}
func (n *ExprInclude) Accept(v NodeVisitor) {
v.ExprInclude(n)
}
// ExprIncludeOnce node
type ExprIncludeOnce struct {
Node
IncludeTkn *token.Token
Expr Vertex
}
func (n *ExprIncludeOnce) Accept(v NodeVisitor) {
v.ExprIncludeOnce(n)
}
// ExprInstanceOf node
type ExprInstanceOf struct {
Node
Expr Vertex
InstanceOfTkn *token.Token
Class Vertex
}
func (n *ExprInstanceOf) Accept(v NodeVisitor) {
v.ExprInstanceOf(n)
}
// ExprIsset node
type ExprIsset struct {
Node
IssetTkn *token.Token
OpenParenthesisTkn *token.Token
Vars []Vertex
SeparatorTkns []*token.Token
CloseParenthesisTkn *token.Token
}
func (n *ExprIsset) Accept(v NodeVisitor) {
v.ExprIsset(n)
}
// ExprList node
type ExprList struct {
Node
ListTkn *token.Token
OpenBracketTkn *token.Token
Items []Vertex
SeparatorTkns []*token.Token
CloseBracketTkn *token.Token
}
func (n *ExprList) Accept(v NodeVisitor) {
v.ExprList(n)
}
// ExprMethodCall node
type ExprMethodCall struct {
Node
Var Vertex
ObjectOperatorTkn *token.Token
Method Vertex
OpenParenthesisTkn *token.Token
Arguments []Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprMethodCall) Accept(v NodeVisitor) {
v.ExprMethodCall(n)
}
// ExprNew node
type ExprNew struct {
Node
NewTkn *token.Token
Class Vertex
OpenParenthesisTkn *token.Token
Arguments []Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprNew) Accept(v NodeVisitor) {
v.ExprNew(n)
}
// ExprPostDec node
type ExprPostDec struct {
Node
Var Vertex
DecTkn *token.Token
}
func (n *ExprPostDec) Accept(v NodeVisitor) {
v.ExprPostDec(n)
}
// ExprPostInc node
type ExprPostInc struct {
Node
Var Vertex
IncTkn *token.Token
}
func (n *ExprPostInc) Accept(v NodeVisitor) {
v.ExprPostInc(n)
}
// ExprPreDec node
type ExprPreDec struct {
Node
DecTkn *token.Token
Var Vertex
}
func (n *ExprPreDec) Accept(v NodeVisitor) {
v.ExprPreDec(n)
}
// ExprPreInc node
type ExprPreInc struct {
Node
IncTkn *token.Token
Var Vertex
}
func (n *ExprPreInc) Accept(v NodeVisitor) {
v.ExprPreInc(n)
}
// ExprPrint node
type ExprPrint struct {
Node
PrintTkn *token.Token
Expr Vertex
}
func (n *ExprPrint) Accept(v NodeVisitor) {
v.ExprPrint(n)
}
// ExprPropertyFetch node
type ExprPropertyFetch struct {
Node
Var Vertex
ObjectOperatorTkn *token.Token
Property Vertex
}
func (n *ExprPropertyFetch) Accept(v NodeVisitor) {
v.ExprPropertyFetch(n)
}
// ExprReference node
type ExprReference struct {
Node
AmpersandTkn *token.Token
Var Vertex
}
func (n *ExprReference) Accept(v NodeVisitor) {
v.ExprReference(n)
}
// ExprRequire node
type ExprRequire struct {
Node
RequireTkn *token.Token
Expr Vertex
}
func (n *ExprRequire) Accept(v NodeVisitor) {
v.ExprRequire(n)
}
// ExprRequireOnce node
type ExprRequireOnce struct {
Node
RequireOnceTkn *token.Token
Expr Vertex
}
func (n *ExprRequireOnce) Accept(v NodeVisitor) {
v.ExprRequireOnce(n)
}
// ExprShellExec node
type ExprShellExec struct {
Node
OpenBacktickTkn *token.Token
Parts []Vertex
CloseBacktickTkn *token.Token
}
func (n *ExprShellExec) Accept(v NodeVisitor) {
v.ExprShellExec(n)
}
// ExprStaticCall node
type ExprStaticCall struct {
Node
Class Vertex
DoubleColonTkn *token.Token
Call Vertex
OpenParenthesisTkn *token.Token
Arguments []Vertex
CloseParenthesisTkn *token.Token
}
func (n *ExprStaticCall) Accept(v NodeVisitor) {
v.ExprStaticCall(n)
}
// ExprStaticPropertyFetch node
type ExprStaticPropertyFetch struct {
Node
Class Vertex
DoubleColonTkn *token.Token
Property Vertex
}
func (n *ExprStaticPropertyFetch) Accept(v NodeVisitor) {
v.ExprStaticPropertyFetch(n)
}
// ExprTernary node
type ExprTernary struct {
Node
Condition Vertex
QuestionTkn *token.Token
IfTrue Vertex
ColonTkn *token.Token
IfFalse Vertex
}
func (n *ExprTernary) Accept(v NodeVisitor) {
v.ExprTernary(n)
}
// ExprUnaryMinus node
type ExprUnaryMinus struct {
Node
MinusTkn *token.Token
Expr Vertex
}
func (n *ExprUnaryMinus) Accept(v NodeVisitor) {
v.ExprUnaryMinus(n)
}
// ExprUnaryPlus node
type ExprUnaryPlus struct {
Node
PlusTkn *token.Token
Expr Vertex
}
func (n *ExprUnaryPlus) Accept(v NodeVisitor) {
v.ExprUnaryPlus(n)
}
// ExprVariable node
type ExprVariable struct {
Node
DollarTkn *token.Token
VarName Vertex
}
func (n *ExprVariable) Accept(v NodeVisitor) {
v.ExprVariable(n)
}
// ExprYield node
type ExprYield struct {
Node
YieldTkn *token.Token
Key Vertex
DoubleArrowTkn *token.Token
Value Vertex
}
func (n *ExprYield) Accept(v NodeVisitor) {
v.ExprYield(n)
}
// ExprYieldFrom node
type ExprYieldFrom struct {
Node
YieldFromTkn *token.Token
Expr Vertex
}
func (n *ExprYieldFrom) Accept(v NodeVisitor) {
v.ExprYieldFrom(n)
}
// ExprCastArray node
type ExprCastArray struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastArray) Accept(v NodeVisitor) {
v.ExprCastArray(n)
}
// ExprCastBool node
type ExprCastBool struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastBool) Accept(v NodeVisitor) {
v.ExprCastBool(n)
}
// ExprCastDouble node
type ExprCastDouble struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastDouble) Accept(v NodeVisitor) {
v.ExprCastDouble(n)
}
// ExprCastInt node
type ExprCastInt struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastInt) Accept(v NodeVisitor) {
v.ExprCastInt(n)
}
// ExprCastObject node
type ExprCastObject struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastObject) Accept(v NodeVisitor) {
v.ExprCastObject(n)
}
// ExprCastString node
type ExprCastString struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastString) Accept(v NodeVisitor) {
v.ExprCastString(n)
}
// ExprCastUnset node
type ExprCastUnset struct {
Node
CastTkn *token.Token
Expr Vertex
}
func (n *ExprCastUnset) Accept(v NodeVisitor) {
v.ExprCastUnset(n)
}
// ExprAssign node
type ExprAssign struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssign) Accept(v NodeVisitor) {
v.ExprAssign(n)
}
// ExprAssignReference node
type ExprAssignReference struct {
Node
Var Vertex
EqualTkn *token.Token
AmpersandTkn *token.Token
Expr Vertex
}
func (n *ExprAssignReference) Accept(v NodeVisitor) {
v.ExprAssignReference(n)
}
// ExprAssignBitwiseAnd node
type ExprAssignBitwiseAnd struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignBitwiseAnd) Accept(v NodeVisitor) {
v.ExprAssignBitwiseAnd(n)
}
// ExprAssignBitwiseOr node
type ExprAssignBitwiseOr struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignBitwiseOr) Accept(v NodeVisitor) {
v.ExprAssignBitwiseOr(n)
}
// ExprAssignBitwiseXor node
type ExprAssignBitwiseXor struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignBitwiseXor) Accept(v NodeVisitor) {
v.ExprAssignBitwiseXor(n)
}
// ExprAssignCoalesce node
type ExprAssignCoalesce struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignCoalesce) Accept(v NodeVisitor) {
v.ExprAssignCoalesce(n)
}
// ExprAssignConcat node
type ExprAssignConcat struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignConcat) Accept(v NodeVisitor) {
v.ExprAssignConcat(n)
}
// ExprAssignDiv node
type ExprAssignDiv struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignDiv) Accept(v NodeVisitor) {
v.ExprAssignDiv(n)
}
// ExprAssignMinus node
type ExprAssignMinus struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignMinus) Accept(v NodeVisitor) {
v.ExprAssignMinus(n)
}
// ExprAssignMod node
type ExprAssignMod struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignMod) Accept(v NodeVisitor) {
v.ExprAssignMod(n)
}
// ExprAssignMul node
type ExprAssignMul struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignMul) Accept(v NodeVisitor) {
v.ExprAssignMul(n)
}
// ExprAssignPlus node
type ExprAssignPlus struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignPlus) Accept(v NodeVisitor) {
v.ExprAssignPlus(n)
}
// ExprAssignPow node
type ExprAssignPow struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignPow) Accept(v NodeVisitor) {
v.ExprAssignPow(n)
}
// ExprAssignShiftLeft node
type ExprAssignShiftLeft struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignShiftLeft) Accept(v NodeVisitor) {
v.ExprAssignShiftLeft(n)
}
// ExprAssignShiftRight node
type ExprAssignShiftRight struct {
Node
Var Vertex
EqualTkn *token.Token
Expr Vertex
}
func (n *ExprAssignShiftRight) Accept(v NodeVisitor) {
v.ExprAssignShiftRight(n)
}
// ExprBinaryBitwiseAnd node
type ExprBinaryBitwiseAnd struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryBitwiseAnd) Accept(v NodeVisitor) {
v.ExprBinaryBitwiseAnd(n)
}
// ExprBinaryBitwiseOr node
type ExprBinaryBitwiseOr struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryBitwiseOr) Accept(v NodeVisitor) {
v.ExprBinaryBitwiseOr(n)
}
// ExprBinaryBitwiseXor node
type ExprBinaryBitwiseXor struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryBitwiseXor) Accept(v NodeVisitor) {
v.ExprBinaryBitwiseXor(n)
}
// ExprBinaryBooleanAnd node
type ExprBinaryBooleanAnd struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryBooleanAnd) Accept(v NodeVisitor) {
v.ExprBinaryBooleanAnd(n)
}
// ExprBinaryBooleanOr node
type ExprBinaryBooleanOr struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryBooleanOr) Accept(v NodeVisitor) {
v.ExprBinaryBooleanOr(n)
}
// ExprBinaryCoalesce node
type ExprBinaryCoalesce struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryCoalesce) Accept(v NodeVisitor) {
v.ExprBinaryCoalesce(n)
}
// ExprBinaryConcat node
type ExprBinaryConcat struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryConcat) Accept(v NodeVisitor) {
v.ExprBinaryConcat(n)
}
// ExprBinaryDiv node
type ExprBinaryDiv struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryDiv) Accept(v NodeVisitor) {
v.ExprBinaryDiv(n)
}
// ExprBinaryEqual node
type ExprBinaryEqual struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryEqual) Accept(v NodeVisitor) {
v.ExprBinaryEqual(n)
}
// ExprBinaryGreater node
type ExprBinaryGreater struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryGreater) Accept(v NodeVisitor) {
v.ExprBinaryGreater(n)
}
// ExprBinaryGreaterOrEqual node
type ExprBinaryGreaterOrEqual struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryGreaterOrEqual) Accept(v NodeVisitor) {
v.ExprBinaryGreaterOrEqual(n)
}
// ExprBinaryIdentical node
type ExprBinaryIdentical struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryIdentical) Accept(v NodeVisitor) {
v.ExprBinaryIdentical(n)
}
// ExprBinaryLogicalAnd node
type ExprBinaryLogicalAnd struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryLogicalAnd) Accept(v NodeVisitor) {
v.ExprBinaryLogicalAnd(n)
}
// ExprBinaryLogicalOr node
type ExprBinaryLogicalOr struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryLogicalOr) Accept(v NodeVisitor) {
v.ExprBinaryLogicalOr(n)
}
// ExprBinaryLogicalXor node
type ExprBinaryLogicalXor struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryLogicalXor) Accept(v NodeVisitor) {
v.ExprBinaryLogicalXor(n)
}
// ExprBinaryMinus node
type ExprBinaryMinus struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryMinus) Accept(v NodeVisitor) {
v.ExprBinaryMinus(n)
}
// ExprBinaryMod node
type ExprBinaryMod struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryMod) Accept(v NodeVisitor) {
v.ExprBinaryMod(n)
}
// ExprBinaryMul node
type ExprBinaryMul struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryMul) Accept(v NodeVisitor) {
v.ExprBinaryMul(n)
}
// ExprBinaryNotEqual node
type ExprBinaryNotEqual struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryNotEqual) Accept(v NodeVisitor) {
v.ExprBinaryNotEqual(n)
}
// ExprBinaryNotIdentical node
type ExprBinaryNotIdentical struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryNotIdentical) Accept(v NodeVisitor) {
v.ExprBinaryNotIdentical(n)
}
// ExprBinaryPlus node
type ExprBinaryPlus struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryPlus) Accept(v NodeVisitor) {
v.ExprBinaryPlus(n)
}
// ExprBinaryPow node
type ExprBinaryPow struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryPow) Accept(v NodeVisitor) {
v.ExprBinaryPow(n)
}
// ExprBinaryShiftLeft node
type ExprBinaryShiftLeft struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryShiftLeft) Accept(v NodeVisitor) {
v.ExprBinaryShiftLeft(n)
}
// ExprBinaryShiftRight node
type ExprBinaryShiftRight struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinaryShiftRight) Accept(v NodeVisitor) {
v.ExprBinaryShiftRight(n)
}
// ExprBinarySmaller node
type ExprBinarySmaller struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinarySmaller) Accept(v NodeVisitor) {
v.ExprBinarySmaller(n)
}
// ExprBinarySmallerOrEqual node
type ExprBinarySmallerOrEqual struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinarySmallerOrEqual) Accept(v NodeVisitor) {
v.ExprBinarySmallerOrEqual(n)
}
// ExprBinarySpaceship node
type ExprBinarySpaceship struct {
Node
Left Vertex
OpTkn *token.Token
Right Vertex
}
func (n *ExprBinarySpaceship) Accept(v NodeVisitor) {
v.ExprBinarySpaceship(n)
}
type NameName struct {
Node
Parts []Vertex
ListSeparatorTkn *token.Token
}
func (n *NameName) Accept(v NodeVisitor) {
v.NameName(n)
}
type NameFullyQualified struct {
Node
NsSeparatorTkn *token.Token
Parts []Vertex
ListSeparatorTkn *token.Token
}
func (n *NameFullyQualified) Accept(v NodeVisitor) {
v.NameFullyQualified(n)
}
type NameRelative struct {
Node
NsTkn *token.Token
NsSeparatorTkn *token.Token
Parts []Vertex
ListSeparatorTkn *token.Token
}
func (n *NameRelative) Accept(v NodeVisitor) {
v.NameRelative(n)
}
type NameNamePart struct {
Node
NsSeparatorTkn *token.Token
StringTkn *token.Token
Value []byte
}
func (n *NameNamePart) Accept(v NodeVisitor) {
v.NameNamePart(n)
}
// TODO: move to private section
type ParserBrackets struct {
Node
OpenBracketTkn *token.Token
Child Vertex
CloseBracketTkn *token.Token
}
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)
}
// 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
Type Vertex
}
func (n *ReturnType) Accept(v NodeVisitor) {
// do nothing
}