diff --git a/.travis.yml b/.travis.yml index 58f9465..25bc627 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,7 @@ services: - docker before_script: - - go get -v gopkg.in/bblfsh/sdk.v1/... + - go get -v gopkg.in/bblfsh/sdk.v2/... - bblfsh-sdk prepare-build . - go get -v -t ./driver/... diff --git a/Makefile b/Makefile index ef0f3de..9241e5b 100644 --- a/Makefile +++ b/Makefile @@ -13,4 +13,3 @@ build-native-internal: rm $(BUILD_PATH)/bin/native || true ln -s /opt/driver/src/ast $(BUILD_PATH)/bin/native - diff --git a/README.md b/README.md index d11770d..b890422 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# php-driver ![Driver Status](https://img.shields.io/badge/status-beta-dbd25c.svg) [![Build Status](https://travis-ci.org/bblfsh/php-driver.svg?branch=master)](https://travis-ci.org/bblfsh/php-driver) ![Native Version](https://img.shields.io/badge/php%20version-7.1.15--r0-aa93ea.svg) ![Go Version](https://img.shields.io/badge/go%20version-1.9-63afbf.svg) +# php-driver ![Driver Status](https://img.shields.io/badge/status-beta-dbd25c.svg) [![Build Status](https://travis-ci.org/bblfsh/php-driver.svg?branch=master)](https://travis-ci.org/bblfsh/php-driver) ![Native Version](https://img.shields.io/badge/php%20version-7.1.17--r0-aa93ea.svg) ![Go Version](https://img.shields.io/badge/go%20version-1.9-63afbf.svg) php driver for [babelfish](https://github.com/bblfsh/bblfshd). @@ -8,7 +8,7 @@ Development Environment Requirements: - `docker` -- [`bblfsh-sdk`](https://github.com/bblfsh/sdk) _(go get -u gopkg.in/bblfsh/sdk.v1/...)_ +- [`bblfsh-sdk`](https://github.com/bblfsh/sdk) _(go get -u gopkg.in/bblfsh/sdk.v2/...)_ - UAST converter dependencies _(go get -t -v ./...)_ To initialize the build system execute: `bblfsh-sdk prepare-build`, at the root of the project. This will install the SDK at `.sdk` for this driver. diff --git a/driver/fixtures/fixtures_test.go b/driver/fixtures/fixtures_test.go new file mode 100644 index 0000000..b1c76ed --- /dev/null +++ b/driver/fixtures/fixtures_test.go @@ -0,0 +1,34 @@ +package fixtures + +import ( + "path/filepath" + "testing" + + "github.com/bblfsh/php-driver/driver/normalizer" + "gopkg.in/bblfsh/sdk.v2/sdk/driver" + "gopkg.in/bblfsh/sdk.v2/sdk/driver/fixtures" +) + +const projectRoot = "../../" + +var Suite = &fixtures.Suite{ + Lang: "php", + Ext: ".php", + Path: filepath.Join(projectRoot, fixtures.Dir), + NewDriver: func() driver.BaseDriver { + return driver.NewExecDriverAt(filepath.Join(projectRoot, "native/ast")) + }, + Transforms: driver.Transforms{ + Native: normalizer.Native, + Code: normalizer.Code, + }, + BenchName: "complex", +} + +func TestPHPDriver(t *testing.T) { + Suite.RunTests(t) +} + +func BenchmarkPHPDriver(b *testing.B) { + Suite.RunBenchmarks(b) +} diff --git a/driver/impl/impl.go b/driver/impl/impl.go new file mode 100644 index 0000000..552b5c8 --- /dev/null +++ b/driver/impl/impl.go @@ -0,0 +1,8 @@ +package impl + +import "gopkg.in/bblfsh/sdk.v2/sdk/driver" + +func init() { + // Can be overridden to link a native driver into a Go driver server. + driver.DefaultDriver = driver.NewExecDriver() +} diff --git a/driver/main.go b/driver/main.go index 1b88467..6157d92 100644 --- a/driver/main.go +++ b/driver/main.go @@ -1,11 +1,15 @@ package main import ( + _ "github.com/bblfsh/php-driver/driver/impl" "github.com/bblfsh/php-driver/driver/normalizer" - "gopkg.in/bblfsh/sdk.v1/sdk/driver" + "gopkg.in/bblfsh/sdk.v2/sdk/driver" ) func main() { - driver.Run(normalizer.ToNode, normalizer.Transformers) + driver.Run(driver.Transforms{ + Native: normalizer.Native, + Code: normalizer.Code, + }) } diff --git a/driver/normalizer/annotation.go b/driver/normalizer/annotation.go index df8e129..3ccecd8 100644 --- a/driver/normalizer/annotation.go +++ b/driver/normalizer/annotation.go @@ -1,319 +1,522 @@ package normalizer import ( - "errors" + "strings" - "github.com/bblfsh/php-driver/driver/normalizer/phpast" + php "github.com/bblfsh/php-driver/driver/normalizer/phpast" - "gopkg.in/bblfsh/sdk.v1/uast" - . "gopkg.in/bblfsh/sdk.v1/uast/ann" - "gopkg.in/bblfsh/sdk.v1/uast/transformer" - "gopkg.in/bblfsh/sdk.v1/uast/transformer/annotatter" - "gopkg.in/bblfsh/sdk.v1/uast/transformer/positioner" + "gopkg.in/bblfsh/sdk.v2/uast" + "gopkg.in/bblfsh/sdk.v2/uast/role" + . "gopkg.in/bblfsh/sdk.v2/uast/transformer" + "gopkg.in/bblfsh/sdk.v2/uast/transformer/positioner" ) -// Transformers is the list of `transformer.Transfomer` to apply to a UAST, to -// learn more about the Transformers and the available ones take a look to: -// https://godoc.org/gopkg.in/bblfsh/sdk.v1/uast/transformers -var Transformers = []transformer.Tranformer{ - annotatter.NewAnnotatter(AnnotationRules), - positioner.NewFillLineColFromOffset(), -} +func parts2str(arr uast.Array) (uast.String, error) { + l := make([]string, len(arr)) -// AnnotationRules describes how a UAST should be annotated with `uast.Role`. -// -// https://godoc.org/gopkg.in/bblfsh/sdk.v1/uast/ann - -var someAssignOp = Or(phpast.AssignOpPlus, - phpast.AssignOpMinus, - phpast.AssignOpMul, - phpast.AssignOpDiv, - phpast.AssignOpMod) - -// AnnotationRules for the PHP language -var AnnotationRules = On(Any).Self( - On(Not(phpast.File)).Error(errors.New("root must be uast.File")), - On(phpast.File).Roles(uast.File, uast.Module).Descendants( - // Misc - On(phpast.Alias).Roles(uast.Statement, uast.Alias), - On(phpast.Arg).Roles(uast.Argument), - On(phpast.Array).Roles(uast.Expression, uast.Literal, uast.List), - On(phpast.ArrayDimFetch).Roles(uast.Expression, uast.List, uast.Value, - uast.Entry), - On(phpast.ArrayItem).Roles(uast.Expression, uast.List, uast.Entry), - On(phpast.Variable).Roles(uast.Identifier, uast.Variable), - On(phpast.Name).Roles(uast.Expression, uast.Identifier).Self( - On(HasInternalRole("class")).Roles(uast.Qualified), - ), - On(phpast.NameRelative).Roles(uast.Expression, uast.Identifier, uast.Qualified, uast.Incomplete), - On(phpast.Comment).Roles(uast.Noop, uast.Comment), - On(phpast.Doc).Roles(uast.Noop, uast.Comment, uast.Documentation), - On(phpast.Nop).Roles(uast.Noop), - On(phpast.Echo).Roles(uast.Statement, uast.Call), - On(phpast.Print).Roles(uast.Statement, uast.Call), - On(phpast.Empty).Roles(uast.Expression, uast.Call), - On(phpast.Isset).Roles(uast.Expression, uast.Call), - On(phpast.Unset).Roles(uast.Expression, uast.Call), - On(HasInternalRole("stmts")).Roles(uast.Expression, uast.Body), - On(phpast.PropertyFetch).Roles(uast.Expression, uast.Map, uast.Identifier, - uast.Entry, uast.Value), - // no static in UAST - On(phpast.StaticPropertyFetch).Roles(uast.Expression, uast.Map, - uast.Identifier, uast.Entry, uast.Value, uast.Incomplete), - // no error supress in UAST - On(phpast.ErrorSuppress).Roles(uast.Expression, uast.Incomplete), - On(phpast.Eval).Roles(uast.Expression, uast.Call), - On(phpast.Exit).Roles(uast.Expression, uast.Call), - On(phpast.Namespace).Roles(uast.Block), - // no const in UAST - On(phpast.Const).Roles(uast.Expression, uast.Variable, uast.Incomplete), - On(phpast.ConstFetch).Roles(uast.Expression, uast.Variable, uast.Incomplete), - On(phpast.FullyQualified).Roles(uast.Expression, uast.Variable, uast.Incomplete), - On(phpast.ClassConstFetch).Roles(uast.Expression, uast.Type, uast.Incomplete), - On(phpast.Clone).Roles(uast.Expression, uast.Call, uast.Incomplete), - On(phpast.Param).Roles(uast.Argument), - On(phpast.Closure).Roles(uast.Function, uast.Declaration, uast.Expression, - uast.Anonymous), - On(phpast.ClosureUse).Roles(uast.Visibility, uast.Incomplete), - On(phpast.Coalesce).Roles(uast.Expression, uast.Incomplete), - On(HasInternalRole("cond")).Roles(uast.Condition), - On(Or(phpast.Use, phpast.UseUse)).Roles(uast.Alias), - On(Or(phpast.Yield, phpast.YieldFrom)).Roles(uast.Return, uast.Incomplete), - - // Control flow - On(phpast.Break).Roles(uast.Statement, uast.Break), - On(phpast.Continue).Roles(uast.Statement, uast.Continue), - On(phpast.Return).Roles(uast.Statement, uast.Return), - On(phpast.Throw).Roles(uast.Statement, uast.Throw), - On(phpast.Goto).Roles(uast.Statement, uast.Goto), - // no UAST role for goto target labels - On(phpast.Label).Roles(uast.Statement, uast.Goto, uast.Incomplete), - - On(Or(phpast.Assign, someAssignOp)).Roles(uast.Expression, uast.Assignment).Children( - On(HasInternalRole("var")).Roles(uast.Left), - On(HasInternalRole("expr")).Roles(uast.Right), - ), + for i, v := range arr { + s, ok := v.(uast.String) + if !ok { + return uast.String(""), ErrExpectedValue.New(s) + } + l[i] = string(s) + } - On(HasInternalRole("left")).Roles(uast.Left), - On(HasInternalRole("right")).Roles(uast.Right), - On(phpast.Name).Self(On(HasToken("null")).Roles(uast.Null)), - // no Nullable/Optional in UAST - On(phpast.NullableType).Roles(uast.Type, uast.Incomplete), - On(phpast.Global).Roles(uast.Visibility, uast.World), - // no Static in UAST - On(phpast.Static).Roles(uast.Visibility, uast.Type), - On(phpast.StaticVar).Roles(uast.Expression, uast.Identifier, uast.Variable, uast.Visibility, uast.Type), - On(phpast.InlineHTML).Roles(uast.String, uast.Literal, uast.Incomplete), - On(phpast.List).Roles(uast.Call, uast.List), - - // Operators - On(phpast.BinaryOpPlus).Roles(uast.Expression, uast.Operator, uast.Add), - On(phpast.BinaryOpMinus).Roles(uast.Expression, uast.Operator, uast.Substract), - On(phpast.BinaryOpMul).Roles(uast.Expression, uast.Operator, uast.Multiply), - On(phpast.BinaryOpDiv).Roles(uast.Expression, uast.Operator, uast.Divide), - On(phpast.BinaryOpMod).Roles(uast.Expression, uast.Operator, uast.Modulo), - On(phpast.BinaryOpPow).Roles(uast.Expression, uast.Operator, uast.Incomplete), - - On(phpast.AssignOpPlus).Roles(uast.Expression, uast.Operator, uast.Add), - On(phpast.AssignOpMinus).Roles(uast.Expression, uast.Operator, uast.Substract), - On(phpast.AssignOpMul).Roles(uast.Expression, uast.Operator, uast.Multiply), - On(phpast.AssignOpDiv).Roles(uast.Expression, uast.Operator, uast.Divide), - On(phpast.AssignOpMod).Roles(uast.Expression, uast.Operator, uast.Modulo), - - On(phpast.BitwiseAnd).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Bitwise, uast.And), - On(phpast.BitwiseOr).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Bitwise, uast.Or), - On(phpast.BitwiseXor).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Bitwise, uast.Xor), - On(phpast.BitwiseNot).Roles(uast.Expression, uast.Unary, uast.Operator, - uast.Bitwise, uast.Not), - - On(phpast.BooleanAnd).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Boolean, uast.And), - On(phpast.BooleanOr).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Boolean, uast.Or), - On(phpast.BooleanXor).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Boolean, uast.Xor), - On(phpast.BooleanNot).Roles(uast.Expression, uast.Operator, uast.Boolean, - uast.Not), - - On(phpast.UnaryPlus).Roles(uast.Expression, uast.Unary, uast.Incomplete), - On(phpast.UnaryMinus).Roles(uast.Expression, uast.Unary, uast.Incomplete), - On(phpast.PreInc).Roles(uast.Expression, uast.Unary, uast.Increment), - On(phpast.PostInc).Roles(uast.Expression, uast.Unary, uast.Increment, uast.Postfix), - On(phpast.PreDec).Roles(uast.Expression, uast.Unary, uast.Decrement), - On(phpast.PostDec).Roles(uast.Expression, uast.Unary, uast.Decrement, uast.Postfix), - - // no join/concatenation role in UAST - On(phpast.Concat).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Add, uast.Incomplete), - - On(phpast.ShiftLeft).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Bitwise, uast.LeftShift), - On(phpast.ShiftRight).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Bitwise, uast.RightShift), - - On(phpast.Equal).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.Equal), - On(phpast.Identical).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.Identical), - On(phpast.NotEqual).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.Not, uast.Equal), - On(phpast.NotIdentical).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.Not, uast.Identical), - On(phpast.GreaterOrEqual).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.GreaterThanOrEqual), - On(phpast.SmallerOrEqual).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.LessThanOrEqual), - On(phpast.Greater).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.GreaterThan), - On(phpast.Smaller).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.LessThan), - On(phpast.Spaceship).Roles(uast.Expression, uast.Binary, uast.Operator, - uast.Relational, uast.GreaterThanOrEqual, uast.LessThanOrEqual), - - // Scalars - On(phpast.ScalarString).Roles(uast.Expression, uast.Literal, uast.String), - On(Or(phpast.ScalarLNumber, phpast.ScalarDNumber)).Roles(uast.Expression, - uast.Literal, uast.Number), - // __CLASS__ and similar constants. Also mising a Const role in the UAST. - On(Or(phpast.ScalarMagicClass, - phpast.ScalarMagicDir, - phpast.ScalarMagicFile, - phpast.ScalarMagicFunction, - phpast.ScalarMagicLine, - phpast.ScalarMagicMethod, - phpast.ScalarMagicNamespace, - phpast.ScalarMagicTrait)).Roles(uast.Expression, uast.Literal, - uast.Incomplete), - - - // Switch - On(phpast.Switch).Roles(uast.Statement, uast.Switch).Children( - On(HasInternalRole("cond")).Roles(uast.Switch), - ), - On(phpast.Case).Roles(uast.Statement, uast.Case).Self( - On(Not(HasChild(HasInternalRole("cond")))).Roles(uast.Default), - ).Children( - On(HasInternalRole("cond")).Roles(uast.Case), - ), + return uast.String(strings.Join(l, "\\")), nil +} - // Casts... no Cast in the UAST - On(phpast.CastArray).Roles(uast.Expression, uast.List, uast.Incomplete), - On(phpast.CastBool).Roles(uast.Expression, uast.Boolean, uast.Incomplete), - On(phpast.CastDouble).Roles(uast.Expression, uast.Number, uast.Incomplete), - On(phpast.CastInt).Roles(uast.Expression, uast.Number, uast.Incomplete), - On(phpast.CastObject).Roles(uast.Expression, uast.Type, uast.Incomplete), - On(phpast.CastString).Roles(uast.Expression, uast.String, uast.Incomplete), - On(phpast.CastUnset).Roles(uast.Expression, uast.Incomplete), - - // TryCatch - On(phpast.TryCatch).Roles(uast.Statement, uast.Try), - On(phpast.Catch).Roles(uast.Statement, uast.Catch).Children( - On(HasInternalRole("types")).Roles(uast.Catch, uast.Type), - ), - On(phpast.Finally).Roles(uast.Statement, uast.Finally), - - // Class - On(phpast.Class).Roles(uast.Statement, uast.Declaration, uast.Type), - On(HasInternalRole("extends")).Roles(uast.Base), - On(HasInternalRole("implements")).Roles(uast.Implements), - // FIXME: php-parser doesn't give Visibility information (public, private, etc) - // no const in UAST - On(phpast.ClassConst).Roles(uast.Type, uast.Variable, uast.Incomplete), - // no member role in UAST - On(Or(phpast.Property, phpast.PropertyProperty)).Roles(uast.Type, - uast.Variable, uast.Incomplete), - // ditto - On(phpast.ClassMethod).Roles(uast.Type, uast.Function), - - // If + Ternary - On(phpast.Ternary).Roles(uast.Expression, uast.If).Children( - On(HasInternalRole("if")).Roles(uast.Then), - On(HasInternalRole("else")).Roles(uast.Else), - ), - On(phpast.If).Roles(uast.Statement, uast.If), - On(phpast.ElseIf).Roles(uast.Statement, uast.If, uast.Else), - On(phpast.Else).Roles(uast.Statement, uast.Else), - - // Declare, we interpret it as an assignment-ish - On(phpast.Declare).Roles(uast.Expression, uast.Assignment, uast.Incomplete).Children( - On(HasInternalRole("declares")).Roles(uast.Identifier, uast.Left).Children( - On(HasInternalRole("value")).Roles(uast.Right), - ), - ), +type opParts2Str struct { + orig Op + str Op +} - // While and DoWhile - On(phpast.Do).Roles(uast.Statement, uast.DoWhile), - On(phpast.While).Roles(uast.Statement, uast.While), - - // Encapsed; incomplete: no encapsed/ string varsubst in UAST - On(phpast.Encapsed).Roles(uast.Expression, uast.Literal, uast.String, - uast.Incomplete), - On(phpast.EncapsedStringPart).Roles(uast.Expression, uast.Identifier, - uast.Value), - - // For - On(phpast.For).Roles(uast.Statement, uast.For).Children( - On(HasInternalRole("init")).Roles(uast.Expression, uast.For, uast.Initialization), - On(HasInternalRole("cond")).Roles(uast.For), // Condition role added elsewhere - On(HasInternalRole("loop")).Roles(uast.Expression, uast.For, uast.Update), - ), +func (op opParts2Str) Check(st *State, n uast.Node) (bool, error) { + v, ok := n.(uast.Array) + if !ok { + return false, nil + } + + nv, err := parts2str(v) + if err != nil { + return false, nil + } + res2, err := op.str.Check(st, nv) + if err != nil { + return false, nil + } + + res1, err := op.orig.Check(st, v) + if err != nil { + return false, nil + } + + return res1 && res2, nil +} - // Foreach - On(phpast.Foreach).Roles(uast.Statement, uast.For, uast.Incomplete).Children( - On(HasInternalRole("valueVar")).Roles(uast.Iterator), - ), +func (op opParts2Str) Construct(st *State, n uast.Node) (uast.Node, error) { + return op.orig.Construct(st, n) +} - // FuncCalls, StaticCalls and MethodCalls - On(phpast.FuncCall).Roles(uast.Expression, uast.Call).Children( - On(HasInternalRole("name")).Roles(uast.Function, uast.Name), - ), - On(phpast.StaticCall).Roles(uast.Expression, uast.Call, uast.Identifier).Children( - On(HasInternalRole("class")).Roles(uast.Type, uast.Receiver), - ), - On(phpast.MethodCall).Roles(uast.Expression, uast.Call, uast.Identifier).Children( - On(HasInternalRole("var")).Roles(uast.Receiver, uast.Receiver, uast.Identifier), - ), +type isString struct{} - // Function declarations - On(phpast.Function).Roles(uast.Function, uast.Declaration).Children( - On(phpast.Param).Self( - // No reference/value in the UAST - On(HasProperty("byRef", "true")).Roles(uast.Incomplete), - On(HasProperty("variadic", "true")).Roles(uast.ArgsList), - ).Children( - On(HasInternalRole("default")).Roles(uast.Default), - ), - On(phpast.FunctionReturn).Roles(uast.Return, uast.Type), - ), +func (isString) Check(st *State, n uast.Node) (bool, error) { + _, ok := n.(uast.String) + return ok, nil +} - // Include and require - On(phpast.Include).Roles(uast.Import).Children( - On(Any).Roles(uast.Import, uast.Pathname), +var Native = Transformers([][]Transformer{ + { + ResponseMetadata{ + TopLevelIsRootNode: true, + }, + }, + {Mappings( + Map("name field as string value", + Part("_", Obj{ + "name": Check(isString{}, Var("name")), + }), + Part("_", Obj{ + "name": Obj{ + uast.KeyType: String("Name"), + uast.KeyToken: Var("name"), + }, + }), ), + )}, + {Mappings(Annotations...)}, + {RolesDedup()}, +}...) - // Instanceof - On(phpast.Instanceof).Roles(uast.Expression, uast.Call).Children( - On(Any).Roles(uast.Argument), - On(HasInternalRole("class")).Roles(uast.Type), - ), +var Code = []CodeTransformer{ + positioner.NewFillLineColFromOffset(), +} - // Interface - On(phpast.Interface).Roles(uast.Type, uast.Declaration).Children( - On(HasInternalRole("extends")).Roles(uast.Type, uast.Base), - ), +// FIXME: move to the SDK and remove from here and the python driver +func annotateTypeToken(typ, token string, roles ...role.Role) Mapping { + return AnnotateType(typ, + FieldRoles{ + uast.KeyToken: {Add: true, Op: String(token)}, + }, roles...) +} - // Traits - On(phpast.Trait).Roles(uast.Type, uast.Declaration), - On(phpast.TraitUse).Roles(uast.Base), - On(phpast.TraitPrecedence).Roles(uast.Base, uast.Alias, uast.Incomplete), - On(HasInternalRole("insteadof")).Roles(uast.Alias, uast.Incomplete), +func mapInternalProperty(key string, roles ...role.Role) Mapping { + return Map(key, + Part("other", Obj{ + key: ObjectRoles(key), + }), + Part("other", Obj{ + key: ObjectRoles(key, roles...), + }), + ) +} - // New - On(phpast.New).Roles(uast.Expression, uast.Initialization, uast.Call).Children( - On(HasInternalRole("class")).Roles(uast.Type), - ), +func annAssign(typ string, opRoles ...role.Role) Mapping { + return AnnotateType(typ, ObjRoles{ + "var": {role.Left}, + "expr": {role.Right}, + }, opRoles...) +} + +var Annotations = []Mapping{ + + //The native AST puts positions and comments inside an "attribute" node. Here + //we reparent them to the current node. + Map("x", + Part("root", Obj{ + "attributes": Part("attrs", Fields{ + // Ignore those because they're wrong in the native AST; we instead + // compute line and col from the offset + + //{Name: "startLine", Op: Var("sline")}, + //{Name: "endLine", Op: Var("eline")}, + //{Name: "startTokenPos", Op: Var("stoken")}, + //{Name: "endTokenPos", Op: Var("etoken")}, + {Name: "startFilePos", Op: Var("sfile")}, + {Name: "endFilePos", Op: Var("efile")}, + {Name: "comments", Op: Var("comments"), Optional: "comments_exists"}, + }), + }), + + Part("root", Fields{ + {Name: uast.KeyStart, Op: Obj{ + uast.KeyType: String(uast.TypePosition), + // Ditto + //uast.KeyPosLine: Var("sline"), + //uast.KeyPosCol: Var("stoken"), + uast.KeyPosOff: Var("sfile"), + }}, + {Name: uast.KeyEnd, Op: Obj{ + uast.KeyType: String(uast.TypePosition), + //uast.KeyPosLine: Var("eline"), + //uast.KeyPosCol: Var("etoken"), + uast.KeyPosOff: Var("efile"), + }}, + {Name: "comments", Op: Var("comments"), Optional: "comments_exists"}, + }), ), -) + + ObjectToNode{ + InternalTypeKey: "nodeType", + }.Mapping(), + + MapAST(php.Comment, Obj{ + "text": UncommentCLike("text"), + "filePos": Var("fp"), + "line": Var("ln"), + }, Obj{ + uast.KeyToken: Var("text"), + uast.KeyStart: Obj{ + uast.KeyType: String("ast:Position"), + uast.KeyPosCol: Var("fp"), + uast.KeyPosLine: Var("ln"), + }, + }, role.Comment, role.Noop), + + MapAST(php.Doc, Obj{ + "text": UncommentCLike("text"), + "filePos": Var("fp"), + "line": Var("ln"), + }, Obj{ + uast.KeyToken: Var("text"), + uast.KeyStart: Obj{ + uast.KeyType: String("ast:Position"), + uast.KeyPosCol: Var("fp"), + uast.KeyPosLine: Var("ln"), + }, + }, role.Comment, role.Noop, role.Documentation), + + mapInternalProperty("left", role.Left), + mapInternalProperty("right", role.Right), + mapInternalProperty("default", role.Default), + + AnnotateType(php.File, nil, role.File), + + // Name; the actual tokens are in the "parts" children, we join + // them into a single string + MapAST(php.Name, Obj{ + "parts": opParts2Str{orig: Var("parts"), str: Var("parts_str")}, + }, Obj{ + uast.KeyToken: Var("parts_str"), + }, role.Expression, role.Identifier), + AnnotateType(php.Name, nil, role.Expression, role.Identifier), + + annAssign(php.Assign, role.Expression, role.Assignment), + annAssign(php.AssignOpMinus, role.Expression, role.Assignment, role.Operator, role.Substract), + annAssign(php.AssignOpPlus, role.Expression, role.Assignment, role.Operator, role.Add), + annAssign(php.AssignOpMul, role.Expression, role.Assignment, role.Operator, role.Multiply), + annAssign(php.AssignOpDiv, role.Expression, role.Assignment, role.Operator, role.Divide), + annAssign(php.AssignOpMod, role.Expression, role.Assignment, role.Operator, role.Modulo), + + // __CLASS__ and similar constants. Also mising a Const role in the UAST. + AnnotateType(php.ScalarMagicClass, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicDir, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicFile, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicFunction, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicLine, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicMethod, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicNamespace, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.ScalarMagicTrait, nil, role.Expression, role.Literal, role.Incomplete), + AnnotateType(php.Alias, FieldRoles{ + "newName": {Rename: uast.KeyToken}, + }, role.Statement, role.Alias), + AnnotateType(php.Arg, nil, role.Argument), + AnnotateType(php.Array, nil, role.Expression, role.Literal, role.List), + AnnotateType(php.ArrayDimFetch, nil, role.Expression, role.List, role.Value, role.Entry), + AnnotateType(php.ArrayItem, nil, role.Expression, role.List, role.Entry), + AnnotateType(php.Variable, nil, role.Identifier, role.Variable), + AnnotateType(php.NameRelative, nil, role.Expression, role.Identifier, role.Qualified, role.Incomplete), + AnnotateType(php.Nop, nil, role.Noop), + AnnotateType(php.Echo, nil, role.Statement, role.Call), + AnnotateType(php.GroupUse, nil, role.Block, role.Incomplete), + AnnotateType(php.Print, nil, role.Statement, role.Call), + AnnotateType(php.Empty, nil, role.Expression, role.Call), + AnnotateType(php.Isset, nil, role.Expression, role.Call), + AnnotateType(php.Unset, nil, role.Expression, role.Call), + AnnotateType(php.PropertyFetch, nil, role.Expression, role.Map, role.Identifier, role.Entry, role.Value), + + // no static in UAST + AnnotateType(php.StaticPropertyFetch, nil, role.Expression, role.Map, role.Identifier, + role.Entry, role.Value, role.Incomplete), + + // no error supress in UAST + AnnotateType(php.ErrorSuppress, nil, role.Expression, role.Incomplete), + AnnotateType(php.Eval, nil, role.Expression, role.Call), + AnnotateType(php.Exit, nil, role.Expression, role.Call), + AnnotateType(php.Namespace, nil, role.Block), + // no const in UAST + AnnotateType(php.Const, nil, role.Expression, role.Variable, role.Incomplete), + AnnotateType(php.StmtConst, nil, role.Expression, role.Variable, role.Incomplete), + AnnotateType(php.ConstFetch, nil, role.Expression, role.Variable, role.Incomplete), + AnnotateType(php.FullyQualified, nil, role.Expression, role.Variable, role.Incomplete), + AnnotateType(php.ClassConstFetch, nil, role.Expression, role.Type, role.Incomplete), + AnnotateType(php.Clone, nil, role.Expression, role.Call, role.Incomplete), + AnnotateType(php.Closure, nil, role.Function, role.Declaration, role.Expression, role.Anonymous), + AnnotateType(php.ClosureUse, nil, role.Visibility, role.Incomplete), + AnnotateType(php.Coalesce, nil, role.Expression, role.Incomplete), + AnnotateType(php.Use, nil, role.Alias), + AnnotateType(php.UseUse, nil, role.Alias), + AnnotateType(php.Yield, nil, role.Return, role.Incomplete), + AnnotateType(php.YieldFrom, nil, role.Return, role.Incomplete), + + // Control flow + AnnotateType(php.Break, nil, role.Statement, role.Break), + AnnotateType(php.Continue, nil, role.Statement, role.Continue), + AnnotateType(php.Return, nil, role.Statement, role.Return), + AnnotateType(php.Throw, nil, role.Statement, role.Throw), + AnnotateType(php.Goto, nil, role.Statement, role.Goto), + + // no role role for goto target labels + AnnotateType(php.Label, nil, role.Statement, role.Goto, role.Incomplete), + + // no Nullable/Optional in UAST + AnnotateType(php.NullableType, nil, role.Type, role.Incomplete), + AnnotateType(php.Global, nil, role.Visibility, role.World), + + // no Static in UAST + AnnotateType(php.Static, nil, role.Visibility, role.Type), + AnnotateType(php.StaticVar, nil, role.Expression, role.Identifier, role.Variable, + role.Visibility, role.Type), + AnnotateType(php.InlineHTML, FieldRoles{ + "value": {Rename: uast.KeyToken}, + }, role.String, role.Literal, role.Incomplete), + AnnotateType(php.List, nil, role.Call, role.List), + + // Operators + AnnotateType(php.BinaryOpPlus, nil, role.Expression, role.Operator, role.Add), + AnnotateType(php.BinaryOpMinus, nil, role.Expression, role.Operator, role.Substract), + AnnotateType(php.BinaryOpMul, nil, role.Expression, role.Operator, role.Multiply), + AnnotateType(php.BinaryOpDiv, nil, role.Expression, role.Operator, role.Divide), + AnnotateType(php.BinaryOpMod, nil, role.Expression, role.Operator, role.Modulo), + AnnotateType(php.BinaryOpPow, nil, role.Expression, role.Operator, role.Incomplete), + + AnnotateType(php.AssignOpPlus, nil, role.Expression, role.Operator, role.Add), + AnnotateType(php.AssignOpMinus, nil, role.Expression, role.Operator, role.Substract), + AnnotateType(php.AssignOpMul, nil, role.Expression, role.Operator, role.Multiply), + AnnotateType(php.AssignOpDiv, nil, role.Expression, role.Operator, role.Divide), + AnnotateType(php.AssignOpMod, nil, role.Expression, role.Operator, role.Modulo), + + AnnotateType(php.BitwiseAnd, nil, role.Expression, role.Binary, role.Operator, role.Bitwise, role.And), + AnnotateType(php.BitwiseOr, nil, role.Expression, role.Binary, role.Operator, role.Bitwise, role.Or), + AnnotateType(php.BitwiseXor, nil, role.Expression, role.Binary, role.Operator, role.Bitwise, role.Xor), + AnnotateType(php.BitwiseNot, nil, role.Expression, role.Unary, role.Operator, role.Bitwise, role.Not), + + AnnotateType(php.BooleanAnd, nil, role.Expression, role.Binary, role.Operator, role.Boolean, role.And), + AnnotateType(php.LogicalAnd, nil, role.Expression, role.Binary, role.Operator, role.Boolean, role.And), + AnnotateType(php.BooleanOr, nil, role.Expression, role.Binary, role.Operator, role.Boolean, role.Or), + AnnotateType(php.LogicalOr, nil, role.Expression, role.Binary, role.Operator, role.Boolean, role.Or), + AnnotateType(php.BooleanXor, nil, role.Expression, role.Binary, role.Operator, role.Boolean, role.Xor), + AnnotateType(php.LogicalXor, nil, role.Expression, role.Binary, role.Operator, role.Boolean, role.Xor), + AnnotateType(php.BooleanNot, nil, role.Expression, role.Operator, role.Boolean, role.Not), + + AnnotateType(php.UnaryPlus, nil, role.Expression, role.Unary, role.Incomplete), + AnnotateType(php.UnaryMinus, nil, role.Expression, role.Unary, role.Incomplete), + AnnotateType(php.PreInc, nil, role.Expression, role.Unary, role.Increment), + AnnotateType(php.PostInc, nil, role.Expression, role.Unary, role.Increment, role.Postfix), + AnnotateType(php.PreDec, nil, role.Expression, role.Unary, role.Decrement), + AnnotateType(php.PostDec, nil, role.Expression, role.Unary, role.Decrement, role.Postfix), + + // no join/concatenation role in UAST + AnnotateType(php.Concat, nil, role.Expression, role.Binary, role.Operator, role.Add, role.Incomplete), + + AnnotateType(php.ShiftLeft, nil, role.Expression, role.Binary, role.Operator, role.Bitwise, role.LeftShift), + AnnotateType(php.ShiftRight, nil, role.Expression, role.Binary, role.Operator, role.Bitwise, role.RightShift), + + AnnotateType("Module", nil, role.Module), + AnnotateType(php.Equal, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.Equal), + AnnotateType(php.Identical, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.Identical), + AnnotateType(php.NotEqual, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.Not, role.Equal), + AnnotateType(php.NotIdentical, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.Not, role.Identical), + AnnotateType(php.GreaterOrEqual, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.GreaterThanOrEqual), + AnnotateType(php.SmallerOrEqual, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.LessThanOrEqual), + AnnotateType(php.Greater, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.GreaterThan), + AnnotateType(php.Smaller, nil, role.Expression, role.Binary, role.Operator, role.Relational, role.LessThan), + AnnotateType(php.Spaceship, nil, role.Expression, role.Binary, role.Operator, role.Relational, + role.GreaterThanOrEqual, role.LessThanOrEqual), + + // Scalars + AnnotateType(php.ScalarString, FieldRoles{ + "value": {Rename: uast.KeyToken}, + }, role.Expression, role.Literal, role.String), + AnnotateType(php.ScalarLNumber, FieldRoles{ + "value": {Rename: uast.KeyToken}, + }, role.Expression, role.Literal, role.Number), + AnnotateType(php.ScalarDNumber, FieldRoles{ + "value": {Rename: uast.KeyToken}, + }, role.Expression, role.Literal, role.Number), + + // Casts... no Cast in the UAST + AnnotateType(php.CastArray, nil, role.Expression, role.List, role.Incomplete), + AnnotateType(php.CastBool, nil, role.Expression, role.Boolean, role.Incomplete), + AnnotateType(php.CastDouble, nil, role.Expression, role.Number, role.Incomplete), + AnnotateType(php.CastInt, nil, role.Expression, role.Number, role.Incomplete), + AnnotateType(php.CastObject, nil, role.Expression, role.Type, role.Incomplete), + AnnotateType(php.CastString, nil, role.Expression, role.String, role.Incomplete), + AnnotateType(php.CastUnset, nil, role.Expression, role.Incomplete), + + // TryCatch + AnnotateType(php.TryCatch, nil, role.Statement, role.Try), + AnnotateType(php.Catch, FieldRoles{ + "types": {Arr: true, Roles: role.Roles{role.Catch, role.Type}}, + "var": {Rename: uast.KeyToken}, + "stmts": {Arr: true, Roles: role.Roles{role.Catch, role.Body}}, + }, role.Catch, role.Type), + + AnnotateType(php.Finally, nil, role.Statement, role.Finally), + + // Class + // FIXME: php-parser doesn't give Visibility information (public, private, etc) + AnnotateType(php.Class, FieldRoles{ + "extends": {Roles: role.Roles{role.Base}, Opt: true}, + "implements": {Arr: true, Roles: role.Roles{role.Implements}}, + "stmts": {Arr: true, Roles: role.Roles{role.Type, role.Body}}, + }, role.Statement, role.Declaration, role.Type), + + // plus no const in UAST + AnnotateType(php.ClassConst, nil, role.Type, role.Variable, role.Incomplete), + + // no member role in UAST + AnnotateType(php.Property, nil, role.Type, role.Variable, role.Incomplete), + AnnotateType(php.PropertyProperty, nil, role.Type, role.Variable, role.Incomplete), + + // ditto + AnnotateType(php.ClassMethod, nil, role.Type, role.Function), + + // If + Ternary + AnnotateType(php.Ternary, ObjRoles{ + "if": {role.Then}, + "else": {role.Else}, + "cond": {role.If, role.Condition}, + }, role.Expression, role.If), + + AnnotateType(php.If, nil, role.Statement, role.If), + AnnotateType(php.ElseIf, nil, role.Statement, role.If, role.Else), + AnnotateType(php.Else, nil, role.Statement, role.Else), + + // Declare, we interpret it as an assignment-ish + MapAST(php.Declare, Obj{ + "stmts": Var("body_stmts"), + "declares": Var("declares"), + }, Obj{ + "stmts": Obj{ + uast.KeyType: String("Declare.stmts"), + uast.KeyRoles: Roles(role.Assignment, role.Body), + "stmts": Var("body_stmts"), + }, + "declares": Var("declares"), + }, role.Expression, role.Assignment, role.Incomplete), + + AnnotateType(php.DeclareDeclare, FieldRoles{ + "key": {Rename: uast.KeyToken}, + "value": {Roles: role.Roles{role.Right}}, + }, role.Identifier, role.Left), + + // While and DoWhile + AnnotateType(php.Do, nil, role.Statement, role.DoWhile), + AnnotateType(php.While, nil, role.Statement, role.While), + + // Encapsed; incomplete: no encapsed/ string varsubst in UAST + AnnotateType(php.Encapsed, nil, role.Expression, role.Literal, role.String, role.Incomplete), + AnnotateType(php.EncapsedStringPart, FieldRoles{ + "value": {Rename: uast.KeyToken}, + }, role.Expression, role.Identifier, role.Value), + + // For + AnnotateType(php.For, FieldRoles{ + "init": {Arr: true, Roles: role.Roles{role.Expression, role.For, role.Initialization}}, + "cond": {Arr: true, Roles: role.Roles{role.For, role.Condition}}, + "loop": {Arr: true, Roles: role.Roles{role.Expression, role.For, role.Update}}, + "stmts": {Arr: true, Roles: role.Roles{role.For, role.Body}}, + }, role.Statement, role.For), + + // Foreach + AnnotateType(php.Foreach, ObjRoles{ + "valueVar": {role.Iterator}, + }, role.Statement, role.For, role.Incomplete), + + // FuncCalls, StaticCalls and MethodCalls + AnnotateType(php.FuncCall, nil, role.Expression, role.Call), + + AnnotateType(php.StaticCall, ObjRoles{ + "class": {role.Type, role.Receiver}, + }, role.Expression, role.Call, role.Identifier), + + AnnotateType(php.MethodCall, FieldRoles{ + "var": {Roles: role.Roles{role.Receiver, role.Identifier}}, + }, role.Expression, role.Call, role.Identifier), + + // Function declarations + MapAST(php.Function, Obj{ + "returnType": Var("returnType"), + "stmts": Var("stmts"), + "name": Var("name"), + }, Obj{ + "returnType": Obj{ + uast.KeyType: String("Function.returnType"), + uast.KeyRoles: Roles(role.Function, role.Declaration, role.Return, role.Type), + uast.KeyToken: Var("returnType"), + }, + "stmts": Obj{ + uast.KeyType: String("Function.body"), + uast.KeyRoles: Roles(role.Function, role.Declaration, role.Body), + "body": Var("stmts"), + }, + }, role.Function, role.Declaration), + + AnnotateType(php.Param, FieldRoles{ + "byRef": {Op: Is(uast.Bool(false))}, + "variadic": {Op: Is(uast.Bool(false))}, + }, role.Argument), + AnnotateType(php.Param, FieldRoles{ + "byRef": {Op: Is(uast.Bool(false))}, + "variadic": {Op: Is(uast.Bool(true))}, + }, role.Argument, role.ArgsList), + AnnotateType(php.Param, FieldRoles{ + "byRef": {Op: Is(uast.Bool(true))}, + "variadic": {Op: Is(uast.Bool(false))}, + }, role.Argument, role.Incomplete), + AnnotateType(php.Param, FieldRoles{ + "byRef": {Op: Is(uast.Bool(true))}, + "variadic": {Op: Is(uast.Bool(true))}, + }, role.Argument, role.Incomplete, role.ArgsList), + + // Include and require + AnnotateType(php.Include, ObjRoles{ + "expr": {role.Import, role.Pathname}, + }, role.Import), + + // Instanceof + AnnotateType(php.Instanceof, FieldRoles{ + "class": {Roles: role.Roles{role.Call, role.Argument, role.Type, role.Identifier}}, + "expr": {Roles: role.Roles{role.Call, role.Argument, role.Type, role.Identifier}}, + uast.KeyToken: {Add: true, Op: String("instanceof")}, + }, role.Expression, role.Call), + + // Interface + AnnotateType(php.Interface, nil, role.Type, role.Declaration), + AnnotateType(php.Interface, ObjRoles{ + "extends": {role.Receiver, role.Identifier}, + }, role.Type, role.Declaration), + + // Traits + AnnotateType(php.Trait, nil, role.Type, role.Declaration), + AnnotateType(php.TraitUse, nil, role.Base), + AnnotateType(php.TraitPrecedence, FieldRoles{ + "insteadof": {Arr: true, Roles: role.Roles{role.Alias, role.Incomplete}}, + }, role.Base, role.Alias, role.Incomplete), + + // New + AnnotateType(php.New, ObjRoles{ + "class": {role.Type}, + }, role.Expression, role.Initialization, role.Call), + + //Switch + AnnotateType(php.Switch, nil, role.Switch), + AnnotateType(php.Case, FieldRoles{ + "cond": {Opt: true, Roles: role.Roles{role.Case, role.Condition}}, + "stmts": {Arr: true, Roles: role.Roles{role.Case, role.Body}}, + }, role.Case), + AnnotateType(php.Case, FieldRoles{ + "cond": {Op: Is(nil)}, + "stmts": {Arr: true, Roles: role.Roles{role.Case, role.Body}}, + }, role.Case, role.Default), +} diff --git a/driver/normalizer/phpast/phpast.go b/driver/normalizer/phpast/phpast.go index be9a70e..5b79426 100644 --- a/driver/normalizer/phpast/phpast.go +++ b/driver/normalizer/phpast/phpast.go @@ -1,152 +1,152 @@ // Package phpast defines constants for PHP-Parser lib nodes package phpast -import . "gopkg.in/bblfsh/sdk.v1/uast/ann" - var ( - Alias = HasInternalType("Stmt_TraitUseAdaptation_Alias") - Arg = HasInternalType("Arg") - Array = HasInternalType("Expr_Array") - ArrayDimFetch = HasInternalType("Expr_ArrayDimFetch") - ArrayItem = HasInternalType("Expr_ArrayItem") - Assign = HasInternalType("Expr_Assign") - AssignOpDiv = HasInternalType("Expr_AssignOp_Div") - AssignOpMinus = HasInternalType("Expr_AssignOp_Minus") - AssignOpMod = HasInternalType("Expr_AssignOp_Mod") - AssignOpMul = HasInternalType("Expr_AssignOp_Mul") - AssignOpPlus = HasInternalType("Expr_AssignOp_Plus") - BinaryOpDiv = HasInternalType("Expr_BinaryOp_Div") - BinaryOpMinus = HasInternalType("Expr_BinaryOp_Minus") - BinaryOpMod = HasInternalType("Expr_BinaryOp_Mod") - BinaryOpMul = HasInternalType("Expr_BinaryOp_Mul") - BinaryOpPlus = HasInternalType("Expr_BinaryOp_Plus") - BinaryOpPow = HasInternalType("Expr_BinaryOp_Pow") - BitwiseAnd = HasInternalType("Expr_BinaryOp_BitwiseAnd") - BitwiseNot = HasInternalType("Expr_BitwiseNot") - BitwiseOr = HasInternalType("Expr_BinaryOp_BitwiseOr") - BitwiseXor = HasInternalType("Expr_BinaryOp_BitwiseXor") - BooleanAnd = Or(HasInternalType("Expr_BinaryOp_BooleanAnd"), HasInternalType("Expr_BinaryOp_LogicalAnd")) - BooleanNot = Or(HasInternalType("Expr_BooleanNot"), HasInternalType("Expr_LogicalNot")) - BooleanOr = Or(HasInternalType("Expr_BinaryOp_BooleanOr"), HasInternalType("Expr_BinaryOp_LogicalOr")) - BooleanXor = Or(HasInternalType("Expr_BinaryOp_BooleanXor"), HasInternalType("Expr_BinaryOp_LogicalXor")) - Break = HasInternalType("Stmt_Break") - Case = HasInternalType("Stmt_Case") - CastArray = HasInternalType("Expr_Cast_Array") - CastBool = HasInternalType("Expr_Cast_Bool") - CastDouble = HasInternalType("Expr_Cast_Double") - CastInt = HasInternalType("Expr_Cast_Int") - CastObject = HasInternalType("Expr_Cast_Object") - CastString = HasInternalType("Expr_Cast_String") - CastUnset = HasInternalType("Expr_Cast_Unset") - Catch = HasInternalType("Stmt_Catch") - Class = HasInternalType("Stmt_Class") - ClassConst = HasInternalType("Stmt_ClassConst") - ClassConstFetch = HasInternalType("Expr_ClassConstFetch") - ClassMethod = HasInternalType("Stmt_ClassMethod") - Clone = HasInternalType("Expr_Clone") - Closure = HasInternalType("Expr_Closure") - ClosureUse = HasInternalType("Expr_ClosureUse") - Coalesce = HasInternalType("Expr_BinaryOp_Coalesce") - Comment = HasInternalType("Comment") - Concat = HasInternalType("Expr_BinaryOp_Concat") - Const = Or(HasInternalType("Const"), HasInternalType("Stmt_Const")) - ConstFetch = HasInternalType("Expr_ConstFetch") - Continue = HasInternalType("Stmt_Continue") - Declare = HasInternalType("Stmt_Declare") - DeclareDeclare = HasInternalType("Stmt_DeclareDeclare") - Do = HasInternalType("Stmt_Do") - Doc = HasInternalType("Comment_Doc") - Echo = HasInternalType("Stmt_Echo") - Else = HasInternalType("Stmt_Else") - ElseIf = HasInternalType("Stmt_ElseIf") - Empty = HasInternalType("Expr_Empty") - Encapsed = HasInternalType("Scalar_Encapsed") - EncapsedStringPart = HasInternalType("Scalar_EncapsedStringPart") - Equal = HasInternalType("Expr_BinaryOp_Equal") - ErrorSuppress = HasInternalType("Expr_ErrorSuppress") - Eval = HasInternalType("Expr_Eval") - Exit = HasInternalType("Expr_Exit") - File = HasInternalType("File") - Finally = HasInternalType("Stmt_Finally") - For = HasInternalType("Stmt_For") - Foreach = HasInternalType("Stmt_Foreach") - FullyQualified = HasInternalType("Name_FullyQualified") - FuncCall = HasInternalType("Expr_FuncCall") - Function = HasInternalType("Stmt_Function") - FunctionReturn = HasInternalType("Stmt_Function.returnType") - Global = HasInternalType("Stmt_Global") - Goto = HasInternalType("Stmt_Goto") - Greater = HasInternalType("Expr_BinaryOp_Greater") - GreaterOrEqual = HasInternalType("Expr_BinaryOp_GreaterOrEqual") - Identical = HasInternalType("Expr_BinaryOp_Identical") - Identifier = HasInternalType("Identifier") - If = HasInternalType("Stmt_If") - Include = HasInternalType("Expr_Include") - InlineHTML = HasInternalType("Stmt_InlineHTML") - Instanceof = HasInternalType("Expr_Instanceof") - Interface = HasInternalType("Stmt_Interface") - Isset = HasInternalType("Expr_Isset") - Label = HasInternalType("Stmt_Label") - List = HasInternalType("Expr_List") - LogicalAnd = HasInternalType("Expr_BinaryOp_LogicalAnd") - LogicalOr = HasInternalType("Expr_BinaryOp_LogicalOr") - LogitcalXor = HasInternalType("Expr_BinaryOp_LogitcalXor") - MethodCall = HasInternalType("Expr_MethodCall") - Mod = HasInternalType("Expr_BinaryOp_Mod") - Mul = HasInternalType("Expr_BinaryOp_Mul") - Name = HasInternalType("Name") - Namespace = HasInternalType("Stmt_Namespace") - New = HasInternalType("Expr_New") - Nop = HasInternalType("Stmt_Nop") - NotEqual = HasInternalType("Expr_BinaryOp_NotEqual") - NotIdentical = HasInternalType("Expr_BinaryOp_NotIdentical") - NullableType = HasInternalType("NullableType") - Param = HasInternalType("Param") - PostDec = HasInternalType("Expr_PostDec") - PostInc = HasInternalType("Expr_PostInc") - Pow = HasInternalType("Expr_BinaryOp_Pow") - PreDec = HasInternalType("Expr_PreDec") - PreInc = HasInternalType("Expr_PreInc") - TraitPrecedence = HasInternalType("Stmt_TraitUseAdaptation_Precedence") - Print = HasInternalType("Expr_Print") - Property = HasInternalType("Stmt_Property") - PropertyFetch = HasInternalType("Expr_PropertyFetch") - PropertyProperty = HasInternalType("Stmt_PropertyProperty") - NameRelative = HasInternalType("Name_Relative") - Return = HasInternalType("Stmt_Return") - ScalarDNumber = HasInternalType("Scalar_DNumber") - ScalarLNumber = HasInternalType("Scalar_LNumber") - ScalarMagicClass = HasInternalType("Scalar_MagicConst_Class") - ScalarMagicDir = HasInternalType("Scalar_MagicConst_Dir") - ScalarMagicFile = HasInternalType("Scalar_MagicConst_File") - ScalarMagicFunction = HasInternalType("Scalar_MagicConst_Function") - ScalarMagicLine = HasInternalType("Scalar_MagicConst_Line") - ScalarMagicMethod = HasInternalType("Scalar_MagicConst_Method") - ScalarMagicNamespace = HasInternalType("Scalar_MagicConst_Namespace") - ScalarMagicTrait = HasInternalType("Scalar_MagicConst_Trait") - ScalarString = HasInternalType("Scalar_String") - ShiftLeft = HasInternalType("Expr_BinaryOp_ShiftLeft") - ShiftRight = HasInternalType("Expr_BinaryOp_ShiftRight") - Smaller = HasInternalType("Expr_BinaryOp_Smaller") - SmallerOrEqual = HasInternalType("Expr_BinaryOp_SmallerOrEqual") - Spaceship = HasInternalType("Expr_BinaryOp_Spaceship") - Static = HasInternalType("Stmt_Static") - StaticCall = HasInternalType("Expr_StaticCall") - StaticPropertyFetch = HasInternalType("Expr_StaticPropertyFetch") - StaticVar = HasInternalType("Stmt_StaticVar") - Switch = HasInternalType("Stmt_Switch") - Ternary = HasInternalType("Expr_Ternary") - Throw = HasInternalType("Stmt_Throw") - Trait = HasInternalType("Stmt_Trait") - TraitUse = HasInternalType("Stmt_TraitUse") - TryCatch = HasInternalType("Stmt_TryCatch") - UnaryMinus = HasInternalType("Expr_UnaryMinus") - UnaryPlus = HasInternalType("Expr_UnaryPlus") - Unset = HasInternalType("Stmt_Unset") - Use = HasInternalType("Stmt_Use") - UseUse = HasInternalType("Stmt_UseUse") - Variable = HasInternalType("Expr_Variable") - While = HasInternalType("Stmt_While") - Yield = HasInternalType("Expr_Yield") - YieldFrom = HasInternalType("Expr_YieldFrom") + Alias = "Stmt_TraitUseAdaptation_Alias" + Arg = "Arg" + Array = "Expr_Array" + ArrayDimFetch = "Expr_ArrayDimFetch" + ArrayItem = "Expr_ArrayItem" + Assign = "Expr_Assign" + AssignOpDiv = "Expr_AssignOp_Div" + AssignOpMinus = "Expr_AssignOp_Minus" + AssignOpMod = "Expr_AssignOp_Mod" + AssignOpMul = "Expr_AssignOp_Mul" + AssignOpPlus = "Expr_AssignOp_Plus" + BinaryOpDiv = "Expr_BinaryOp_Div" + BinaryOpMinus = "Expr_BinaryOp_Minus" + BinaryOpMod = "Expr_BinaryOp_Mod" + BinaryOpMul = "Expr_BinaryOp_Mul" + BinaryOpPlus = "Expr_BinaryOp_Plus" + BinaryOpPow = "Expr_BinaryOp_Pow" + BitwiseAnd = "Expr_BinaryOp_BitwiseAnd" + BitwiseNot = "Expr_BitwiseNot" + BitwiseOr = "Expr_BinaryOp_BitwiseOr" + BitwiseXor = "Expr_BinaryOp_BitwiseXor" + BooleanAnd = "Expr_BinaryOp_BooleanAnd" + BooleanNot = "Expr_BooleanNot" + BooleanOr = "Expr_BinaryOp_BooleanOr" + BooleanXor = "Expr_BinaryOp_BooleanXor" + Break = "Stmt_Break" + Case = "Stmt_Case" + CastArray = "Expr_Cast_Array" + CastBool = "Expr_Cast_Bool" + CastDouble = "Expr_Cast_Double" + CastInt = "Expr_Cast_Int" + CastObject = "Expr_Cast_Object" + CastString = "Expr_Cast_String" + CastUnset = "Expr_Cast_Unset" + Catch = "Stmt_Catch" + Class = "Stmt_Class" + ClassConst = "Stmt_ClassConst" + ClassConstFetch = "Expr_ClassConstFetch" + ClassMethod = "Stmt_ClassMethod" + Clone = "Expr_Clone" + Closure = "Expr_Closure" + ClosureUse = "Expr_ClosureUse" + Coalesce = "Expr_BinaryOp_Coalesce" + Comment = "Comment" + Concat = "Expr_BinaryOp_Concat" + Const = "Const" + ConstFetch = "Expr_ConstFetch" + Continue = "Stmt_Continue" + Declare = "Stmt_Declare" + DeclareDeclare = "Stmt_DeclareDeclare" + Do = "Stmt_Do" + Doc = "Comment_Doc" + Echo = "Stmt_Echo" + Else = "Stmt_Else" + ElseIf = "Stmt_ElseIf" + Empty = "Expr_Empty" + Encapsed = "Scalar_Encapsed" + EncapsedStringPart = "Scalar_EncapsedStringPart" + Equal = "Expr_BinaryOp_Equal" + ErrorSuppress = "Expr_ErrorSuppress" + Eval = "Expr_Eval" + Exit = "Expr_Exit" + File = "File" + Finally = "Stmt_Finally" + For = "Stmt_For" + Foreach = "Stmt_Foreach" + FullyQualified = "Name_FullyQualified" + FuncCall = "Expr_FuncCall" + Function = "Stmt_Function" + FunctionReturn = "Stmt_Function.returnType" + Global = "Stmt_Global" + Goto = "Stmt_Goto" + Greater = "Expr_BinaryOp_Greater" + GreaterOrEqual = "Expr_BinaryOp_GreaterOrEqual" + GroupUse = "Stmt_GroupUse" + Identical = "Expr_BinaryOp_Identical" + Identifier = "Identifier" + If = "Stmt_If" + Include = "Expr_Include" + InlineHTML = "Stmt_InlineHTML" + Instanceof = "Expr_Instanceof" + Interface = "Stmt_Interface" + Isset = "Expr_Isset" + Label = "Stmt_Label" + List = "Expr_List" + LogicalAnd = "Expr_BinaryOp_LogicalAnd" + LogicalOr = "Expr_BinaryOp_LogicalOr" + LogicalXor = "Expr_BinaryOp_LogicalXor" + MethodCall = "Expr_MethodCall" + Mod = "Expr_BinaryOp_Mod" + Mul = "Expr_BinaryOp_Mul" + Name = "Name" + NameRelative = "Name_Relative" + Namespace = "Stmt_Namespace" + New = "Expr_New" + Nop = "Stmt_Nop" + NotEqual = "Expr_BinaryOp_NotEqual" + NotIdentical = "Expr_BinaryOp_NotIdentical" + NullableType = "NullableType" + Param = "Param" + PostDec = "Expr_PostDec" + PostInc = "Expr_PostInc" + Pow = "Expr_BinaryOp_Pow" + PreDec = "Expr_PreDec" + PreInc = "Expr_PreInc" + Print = "Expr_Print" + Property = "Stmt_Property" + PropertyFetch = "Expr_PropertyFetch" + PropertyProperty = "Stmt_PropertyProperty" + Return = "Stmt_Return" + ScalarDNumber = "Scalar_DNumber" + ScalarLNumber = "Scalar_LNumber" + ScalarMagicClass = "Scalar_MagicConst_Class" + ScalarMagicDir = "Scalar_MagicConst_Dir" + ScalarMagicFile = "Scalar_MagicConst_File" + ScalarMagicFunction = "Scalar_MagicConst_Function" + ScalarMagicLine = "Scalar_MagicConst_Line" + ScalarMagicMethod = "Scalar_MagicConst_Method" + ScalarMagicNamespace = "Scalar_MagicConst_Namespace" + ScalarMagicTrait = "Scalar_MagicConst_Trait" + ScalarString = "Scalar_String" + ShiftLeft = "Expr_BinaryOp_ShiftLeft" + ShiftRight = "Expr_BinaryOp_ShiftRight" + Smaller = "Expr_BinaryOp_Smaller" + SmallerOrEqual = "Expr_BinaryOp_SmallerOrEqual" + Spaceship = "Expr_BinaryOp_Spaceship" + Static = "Stmt_Static" + StaticCall = "Expr_StaticCall" + StaticPropertyFetch = "Expr_StaticPropertyFetch" + StaticVar = "Stmt_StaticVar" + StmtConst = "Stmt_Const" + Switch = "Stmt_Switch" + Ternary = "Expr_Ternary" + Throw = "Stmt_Throw" + Trait = "Stmt_Trait" + TraitPrecedence = "Stmt_TraitUseAdaptation_Precedence" + TraitUse = "Stmt_TraitUse" + TryCatch = "Stmt_TryCatch" + UnaryMinus = "Expr_UnaryMinus" + UnaryPlus = "Expr_UnaryPlus" + Unset = "Stmt_Unset" + Use = "Stmt_Use" + UseUse = "Stmt_UseUse" + Variable = "Expr_Variable" + While = "Stmt_While" + Yield = "Expr_Yield" + YieldFrom = "Expr_YieldFrom" ) diff --git a/driver/normalizer/tonode.go b/driver/normalizer/tonode.go deleted file mode 100644 index 9b18941..0000000 --- a/driver/normalizer/tonode.go +++ /dev/null @@ -1,116 +0,0 @@ -package normalizer - -import ( - "strings" - - "gopkg.in/bblfsh/sdk.v1/uast" -) - -// ToNode is an instance of `uast.ObjectToNode`, defining how to transform an -// into a UAST (`uast.Node`). -// -// https://godoc.org/gopkg.in/bblfsh/sdk.v1/uast#ObjectToNode -var ToNode = &uast.ObjectToNode{ - InternalTypeKey: "nodeType", - LineKey: "attributes.startLine", - ColumnKey: "attributes.startTokenPos", - OffsetKey: "attributes.startFilePos", - EndLineKey: "attributes.endLine", - EndColumnKey: "attributes.endTokenPos", - SyntheticTokens: map[string]string{ - "Expr_Clone": "clone", - "Expr_Empty": "empty", - "Expr_Isset": "isset", - "Stmt_Echo": "echo", - "Stmt_Print": "print", - "Stmt_Unset": "unset", - "Expr_Eval": "eval", - "Expr_Exit": "exit", - "Expr_Instanceof": "instanceof", - "Expr_List": "list", - "Expr_New": "new", - }, - EndOffsetKey: "attributes.endFilePos", - TokenKeys: map[string]bool{ - "name": true, - "text": true, // for comments - "value": true, // Scalars - "var": true, // catch list - "key": true, // declare - "newName": true, // trait alias - }, - PromotedPropertyStrings: map[string]map[string]bool{ - "Stmt_Function": {"returnType": true}, - }, - // PHP AST includes a map called attributes with several properties, should - // be ignored, otherwise fake nodes are created. - IsNode: func(v map[string]interface{}) bool { - _, ok := v["nodeType"] - return ok - }, - // The parser returns multiple nodes instead of a single node, a fake node - // root node with the type "File" is created. - OnToNode: func(n interface{}) (interface{}, error) { - return map[string]interface{}{ - "root": map[string]interface{}{ - "nodeType": "File", - "children": n, - }, - }, nil - }, - Modifier: func(n map[string]interface{}) error { - // Sometimes, if the name includes namespaces, it's given as an array in - // several parts. The parts are imploded into the name key. - if parts, ok := n["parts"].([]interface{}); ok { - deleteParts := false - n["name"], deleteParts = sliceInterfaceToString(parts, "\\") - if deleteParts { - delete(n, "parts") - } - } - - // Positions in comments don't follow the same schema as the other - // nodes, the position info is moved to the same place. - if pos, ok := n["filePos"].(float64); ok { - n["attributes.startFilePos"] = pos - n["attributes.endFilePos"] = pos + float64(len(n["text"].(string))) - n["attributes.startLine"] = n["line"] - delete(n, "filePos") - delete(n, "line") - } - - // Remove //, /*...*/ and /**..*/ from comment nodes - if t, ok := n["nodeType"]; ok { - if t == "Comment" { - if text, ok := n["text"].(string); ok { - if strings.HasPrefix(text, "//") { - n["text"] = text[2:]; - } else if strings.HasPrefix(text, "/*") { - n["text"] = text[2:len(text)-2] - } - } - } else if t == "Comment_Doc" { - if text, ok := n["text"].(string); ok { - if strings.HasPrefix(text, "/**") { - n["text"] = text[3:len(text)-2] - } - } - } - } - - return nil - }, -} - -func sliceInterfaceToString(s []interface{}, sep string) (string, bool) { - deleteParts := false - l := make([]string, len(s)) - for i, v := range s { - if part, ok := v.(string); ok { - l[i] = part - deleteParts = true - } - } - - return strings.Join(l, sep), deleteParts -} diff --git a/driver/normalizer/tonode_test.go b/driver/normalizer/tonode_test.go deleted file mode 100644 index c9ae330..0000000 --- a/driver/normalizer/tonode_test.go +++ /dev/null @@ -1,43 +0,0 @@ -package normalizer - -import ( - "encoding/json" - "os" - "path/filepath" - "testing" - - "github.com/stretchr/testify/require" -) - -func TestNativeToNoder(t *testing.T) { - require := require.New(t) - - f, err := getFixture("return.json") - require.NoError(err) - n, err := ToNode.ToNode(f) - require.NoError(err) - require.NotNil(n) -} - -const fixtureDir = "fixtures" - -func getFixture(name string) (interface{}, error) { - path := filepath.Join(fixtureDir, name) - f, err := os.Open(path) - if err != nil { - return nil, err - } - - d := json.NewDecoder(f) - var data interface{} - if err := d.Decode(&data); err != nil { - _ = f.Close() - return nil, err - } - - if err := f.Close(); err != nil { - return nil, err - } - - return data, nil -} diff --git a/fixtures/alias.php.native b/fixtures/alias.php.native index 3abe29a..50cf955 100644 --- a/fixtures/alias.php.native +++ b/fixtures/alias.php.native @@ -2,30 +2,22 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 7, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "B", - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 11, - "startLine": 3, - "startTokenPos": 4 - }, - "name": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 7, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "B", "attributes": { "endFilePos": 13, "endLine": 3, @@ -34,110 +26,110 @@ "startLine": 3, "startTokenPos": 4 }, - "nodeType": "Name", - "parts": [ - "A", - "B" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 9 + "name": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 11, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Name", + "parts": [ + "A", + "B" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "E", - "attributes": { - "endFilePos": 27, - "endLine": 4, - "endTokenPos": 17, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 11 - }, - "name": { + { + "attributes": { + "endFilePos": 28, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 9 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "E", "attributes": { - "endFilePos": 22, + "endFilePos": 27, "endLine": 4, - "endTokenPos": 13, + "endTokenPos": 17, "startFilePos": 20, "startLine": 4, "startTokenPos": 11 }, - "nodeType": "Name", - "parts": [ - "C", - "D" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 45, - "endLine": 5, - "endTokenPos": 32, - "startFilePos": 30, - "startLine": 5, - "startTokenPos": 20 + "name": { + "attributes": { + "endFilePos": 22, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 20, + "startLine": 4, + "startTokenPos": 11 + }, + "nodeType": "Name", + "parts": [ + "C", + "D" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "H", - "attributes": { - "endFilePos": 41, - "endLine": 5, - "endTokenPos": 28, - "startFilePos": 34, - "startLine": 5, - "startTokenPos": 22 - }, - "name": { + { + "attributes": { + "endFilePos": 45, + "endLine": 5, + "endTokenPos": 32, + "startFilePos": 30, + "startLine": 5, + "startTokenPos": 20 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "H", "attributes": { - "endFilePos": 36, + "endFilePos": 41, "endLine": 5, - "endTokenPos": 24, + "endTokenPos": 28, "startFilePos": 34, "startLine": 5, "startTokenPos": 22 }, - "nodeType": "Name", - "parts": [ - "F", - "G" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - }, - { - "alias": "J", - "attributes": { - "endFilePos": 44, - "endLine": 5, - "endTokenPos": 31, - "startFilePos": 44, - "startLine": 5, - "startTokenPos": 31 + "name": { + "attributes": { + "endFilePos": 36, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 34, + "startLine": 5, + "startTokenPos": 22 + }, + "nodeType": "Name", + "parts": [ + "F", + "G" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 }, - "name": { + { + "alias": "J", "attributes": { "endFilePos": 44, "endLine": 5, @@ -146,39 +138,39 @@ "startLine": 5, "startTokenPos": 31 }, - "nodeType": "Name", - "parts": [ - "J" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 68, - "endLine": 7, - "endTokenPos": 41, - "startFilePos": 48, - "startLine": 7, - "startTokenPos": 34 + "name": { + "attributes": { + "endFilePos": 44, + "endLine": 5, + "endTokenPos": 31, + "startFilePos": 44, + "startLine": 5, + "startTokenPos": 31 + }, + "nodeType": "Name", + "parts": [ + "J" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 2, - "uses": [ - { - "alias": "bar", - "attributes": { - "endFilePos": 67, - "endLine": 7, - "endTokenPos": 40, - "startFilePos": 61, - "startLine": 7, - "startTokenPos": 38 - }, - "name": { + { + "attributes": { + "endFilePos": 68, + "endLine": 7, + "endTokenPos": 41, + "startFilePos": 48, + "startLine": 7, + "startTokenPos": 34 + }, + "nodeType": "Stmt_Use", + "type": 2, + "uses": [ + { + "alias": "bar", "attributes": { "endFilePos": 67, "endLine": 7, @@ -187,82 +179,82 @@ "startLine": 7, "startTokenPos": 38 }, - "nodeType": "Name", - "parts": [ - "foo", - "bar" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 97, - "endLine": 8, - "endTokenPos": 54, - "startFilePos": 70, - "startLine": 8, - "startTokenPos": 43 + "name": { + "attributes": { + "endFilePos": 67, + "endLine": 7, + "endTokenPos": 40, + "startFilePos": 61, + "startLine": 7, + "startTokenPos": 38 + }, + "nodeType": "Name", + "parts": [ + "foo", + "bar" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 2, - "uses": [ - { - "alias": "baz", - "attributes": { - "endFilePos": 96, - "endLine": 8, - "endTokenPos": 53, - "startFilePos": 83, - "startLine": 8, - "startTokenPos": 47 - }, - "name": { + { + "attributes": { + "endFilePos": 97, + "endLine": 8, + "endTokenPos": 54, + "startFilePos": 70, + "startLine": 8, + "startTokenPos": 43 + }, + "nodeType": "Stmt_Use", + "type": 2, + "uses": [ + { + "alias": "baz", "attributes": { - "endFilePos": 89, + "endFilePos": 96, "endLine": 8, - "endTokenPos": 49, + "endTokenPos": 53, "startFilePos": 83, "startLine": 8, "startTokenPos": 47 }, - "nodeType": "Name", - "parts": [ - "foo", - "bar" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 116, - "endLine": 9, - "endTokenPos": 63, - "startFilePos": 99, - "startLine": 9, - "startTokenPos": 56 + "name": { + "attributes": { + "endFilePos": 89, + "endLine": 8, + "endTokenPos": 49, + "startFilePos": 83, + "startLine": 8, + "startTokenPos": 47 + }, + "nodeType": "Name", + "parts": [ + "foo", + "bar" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 3, - "uses": [ - { - "alias": "BAR", - "attributes": { - "endFilePos": 115, - "endLine": 9, - "endTokenPos": 62, - "startFilePos": 109, - "startLine": 9, - "startTokenPos": 60 - }, - "name": { + { + "attributes": { + "endFilePos": 116, + "endLine": 9, + "endTokenPos": 63, + "startFilePos": 99, + "startLine": 9, + "startTokenPos": 56 + }, + "nodeType": "Stmt_Use", + "type": 3, + "uses": [ + { + "alias": "BAR", "attributes": { "endFilePos": 115, "endLine": 9, @@ -271,58 +263,69 @@ "startLine": 9, "startTokenPos": 60 }, - "nodeType": "Name", - "parts": [ - "foo", - "BAR" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 142, - "endLine": 10, - "endTokenPos": 76, - "startFilePos": 118, - "startLine": 10, - "startTokenPos": 65 + "name": { + "attributes": { + "endFilePos": 115, + "endLine": 9, + "endTokenPos": 62, + "startFilePos": 109, + "startLine": 9, + "startTokenPos": 60 + }, + "nodeType": "Name", + "parts": [ + "foo", + "BAR" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 3, - "uses": [ - { - "alias": "BAZ", - "attributes": { - "endFilePos": 141, - "endLine": 10, - "endTokenPos": 75, - "startFilePos": 128, - "startLine": 10, - "startTokenPos": 69 - }, - "name": { + { + "attributes": { + "endFilePos": 142, + "endLine": 10, + "endTokenPos": 76, + "startFilePos": 118, + "startLine": 10, + "startTokenPos": 65 + }, + "nodeType": "Stmt_Use", + "type": 3, + "uses": [ + { + "alias": "BAZ", "attributes": { - "endFilePos": 134, + "endFilePos": 141, "endLine": 10, - "endTokenPos": 71, + "endTokenPos": 75, "startFilePos": 128, "startLine": 10, "startTokenPos": 69 }, - "nodeType": "Name", - "parts": [ - "foo", - "BAR" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 134, + "endLine": 10, + "endTokenPos": 71, + "startFilePos": 128, + "startLine": 10, + "startTokenPos": 69 + }, + "nodeType": "Name", + "parts": [ + "foo", + "BAR" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/alias.php.uast b/fixtures/alias.php.uast index 368d602..cceb1b2 100644 --- a/fixtures/alias.php.uast +++ b/fixtures/alias.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Use { . . . Roles: Alias diff --git a/fixtures/args.php.native b/fixtures/args.php.native index 013cfd6..86b33d1 100644 --- a/fixtures/args.php.native +++ b/fixtures/args.php.native @@ -2,48 +2,37 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [], - "attributes": { - "endFilePos": 9, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { + "args": [], "attributes": { - "endFilePos": 7, + "endFilePos": 9, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 4, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "f" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { + "name": { "attributes": { - "endFilePos": 15, - "endLine": 4, - "endTokenPos": 9, - "startFilePos": 14, - "startLine": 4, - "startTokenPos": 9 + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "f" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "args": [ + { "attributes": { "endFilePos": 15, "endLine": 4, @@ -52,50 +41,50 @@ "startLine": 4, "startTokenPos": 9 }, - "name": "a", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 15, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 14, + "startLine": 4, + "startTokenPos": 9 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 16, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 12, - "startLine": 4, - "startTokenPos": 7 - }, - "name": { + ], "attributes": { - "endFilePos": 12, + "endFilePos": 16, "endLine": 4, - "endTokenPos": 7, + "endTokenPos": 10, "startFilePos": 12, "startLine": 4, "startTokenPos": 7 }, - "nodeType": "Name", - "parts": [ - "f" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { + "name": { "attributes": { - "endFilePos": 22, - "endLine": 5, - "endTokenPos": 15, - "startFilePos": 21, - "startLine": 5, - "startTokenPos": 15 + "endFilePos": 12, + "endLine": 4, + "endTokenPos": 7, + "startFilePos": 12, + "startLine": 4, + "startTokenPos": 7 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "f" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "args": [ + { "attributes": { "endFilePos": 22, "endLine": 5, @@ -104,23 +93,23 @@ "startLine": 5, "startTokenPos": 15 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 26, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 25, - "startLine": 5, - "startTokenPos": 18 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 22, + "endLine": 5, + "endTokenPos": 15, + "startFilePos": 21, + "startLine": 5, + "startTokenPos": 15 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 26, "endLine": 5, @@ -129,50 +118,50 @@ "startLine": 5, "startTokenPos": 18 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 26, + "endLine": 5, + "endTokenPos": 18, + "startFilePos": 25, + "startLine": 5, + "startTokenPos": 18 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 27, - "endLine": 5, - "endTokenPos": 19, - "startFilePos": 19, - "startLine": 5, - "startTokenPos": 13 - }, - "name": { + ], "attributes": { - "endFilePos": 19, + "endFilePos": 27, "endLine": 5, - "endTokenPos": 13, + "endTokenPos": 19, "startFilePos": 19, "startLine": 5, "startTokenPos": 13 }, - "nodeType": "Name", - "parts": [ - "f" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { + "name": { "attributes": { - "endFilePos": 33, - "endLine": 6, - "endTokenPos": 24, - "startFilePos": 32, - "startLine": 6, - "startTokenPos": 24 + "endFilePos": 19, + "endLine": 5, + "endTokenPos": 13, + "startFilePos": 19, + "startLine": 5, + "startTokenPos": 13 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "f" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "args": [ + { "attributes": { "endFilePos": 33, "endLine": 6, @@ -181,59 +170,73 @@ "startLine": 6, "startTokenPos": 24 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 40, - "endLine": 6, - "endTokenPos": 28, - "startFilePos": 36, - "startLine": 6, - "startTokenPos": 27 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 33, + "endLine": 6, + "endTokenPos": 24, + "startFilePos": 32, + "startLine": 6, + "startTokenPos": 24 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": true, - "value": { + { "attributes": { "endFilePos": 40, "endLine": 6, "endTokenPos": 28, - "startFilePos": 39, + "startFilePos": 36, "startLine": 6, - "startTokenPos": 28 + "startTokenPos": 27 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": true, + "value": { + "attributes": { + "endFilePos": 40, + "endLine": 6, + "endTokenPos": 28, + "startFilePos": 39, + "startLine": 6, + "startTokenPos": 28 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 41, - "endLine": 6, - "endTokenPos": 29, - "startFilePos": 30, - "startLine": 6, - "startTokenPos": 22 - }, - "name": { + ], "attributes": { - "endFilePos": 30, + "endFilePos": 41, "endLine": 6, - "endTokenPos": 22, + "endTokenPos": 29, "startFilePos": 30, "startLine": 6, "startTokenPos": 22 }, - "nodeType": "Name", - "parts": [ - "f" - ] - }, - "nodeType": "Expr_FuncCall" - } - ] + "name": { + "attributes": { + "endFilePos": 30, + "endLine": 6, + "endTokenPos": 22, + "startFilePos": 30, + "startLine": 6, + "startTokenPos": 22 + }, + "nodeType": "Name", + "parts": [ + "f" + ] + }, + "nodeType": "Expr_FuncCall" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/args.php.uast b/fixtures/args.php.uast index a4303c6..7a559a3 100644 --- a/fixtures/args.php.uast +++ b/fixtures/args.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 7 @@ -41,7 +41,7 @@ File { . . . } . . } . . 1: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 12 . . . . Line: 4 @@ -57,7 +57,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 12 @@ -93,7 +93,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 14 . . . . . . . . Line: 4 @@ -107,13 +106,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 2: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 19 . . . . Line: 5 @@ -129,7 +137,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 19 @@ -165,7 +173,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 21 . . . . . . . . Line: 5 @@ -179,6 +186,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -202,7 +218,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "b" . . . . . . . StartPosition: { . . . . . . . . Offset: 25 . . . . . . . . Line: 5 @@ -216,13 +231,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 3: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 30 . . . . Line: 6 @@ -238,7 +262,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 30 @@ -274,7 +298,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 32 . . . . . . . . Line: 6 @@ -288,6 +311,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -311,7 +343,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "b" . . . . . . . StartPosition: { . . . . . . . . Offset: 39 . . . . . . . . Line: 6 @@ -325,6 +356,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/aritmeticops.php.native b/fixtures/aritmeticops.php.native index f2b7fef..226efcc 100644 --- a/fixtures/aritmeticops.php.native +++ b/fixtures/aritmeticops.php.native @@ -2,222 +2,225 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "left": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 12, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 6, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 6, - "kind": 10, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 + "left": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 20, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 15, - "startLine": 4, - "startTokenPos": 9 + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 6, + "kind": 10, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "left": { + { "attributes": { - "endFilePos": 16, + "endFilePos": 20, "endLine": 4, - "endTokenPos": 9, + "endTokenPos": 13, "startFilePos": 15, "startLine": 4, "startTokenPos": 9 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Minus", - "right": { - "attributes": { - "endFilePos": 20, - "endLine": 4, - "endTokenPos": 13, - "kind": 10, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 13 + "left": { + "attributes": { + "endFilePos": 16, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 15, + "startLine": 4, + "startTokenPos": 9 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 23, - "startLine": 5, - "startTokenPos": 16 + "nodeType": "Expr_BinaryOp_Minus", + "right": { + "attributes": { + "endFilePos": 20, + "endLine": 4, + "endTokenPos": 13, + "kind": 10, + "startFilePos": 20, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "left": { + { "attributes": { - "endFilePos": 24, + "endFilePos": 28, "endLine": 5, - "endTokenPos": 16, + "endTokenPos": 20, "startFilePos": 23, "startLine": 5, "startTokenPos": 16 }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { - "attributes": { - "endFilePos": 28, - "endLine": 5, - "endTokenPos": 20, - "kind": 10, - "startFilePos": 28, - "startLine": 5, - "startTokenPos": 20 + "left": { + "attributes": { + "endFilePos": 24, + "endLine": 5, + "endTokenPos": 16, + "startFilePos": 23, + "startLine": 5, + "startTokenPos": 16 + }, + "name": "c", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 36, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 31, - "startLine": 6, - "startTokenPos": 23 + "nodeType": "Expr_BinaryOp_Mul", + "right": { + "attributes": { + "endFilePos": 28, + "endLine": 5, + "endTokenPos": 20, + "kind": 10, + "startFilePos": 28, + "startLine": 5, + "startTokenPos": 20 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "left": { + { "attributes": { - "endFilePos": 32, + "endFilePos": 36, "endLine": 6, - "endTokenPos": 23, + "endTokenPos": 27, "startFilePos": 31, "startLine": 6, "startTokenPos": 23 }, - "name": "d", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Div", - "right": { - "attributes": { - "endFilePos": 36, - "endLine": 6, - "endTokenPos": 27, - "kind": 10, - "startFilePos": 36, - "startLine": 6, - "startTokenPos": 27 + "left": { + "attributes": { + "endFilePos": 32, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 31, + "startLine": 6, + "startTokenPos": 23 + }, + "name": "d", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 7, - "endTokenPos": 34, - "startFilePos": 39, - "startLine": 7, - "startTokenPos": 30 + "nodeType": "Expr_BinaryOp_Div", + "right": { + "attributes": { + "endFilePos": 36, + "endLine": 6, + "endTokenPos": 27, + "kind": 10, + "startFilePos": 36, + "startLine": 6, + "startTokenPos": 27 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "left": { + { "attributes": { - "endFilePos": 40, + "endFilePos": 44, "endLine": 7, - "endTokenPos": 30, + "endTokenPos": 34, "startFilePos": 39, "startLine": 7, "startTokenPos": 30 }, - "name": "f", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Mod", - "right": { - "attributes": { - "endFilePos": 44, - "endLine": 7, - "endTokenPos": 34, - "kind": 10, - "startFilePos": 44, - "startLine": 7, - "startTokenPos": 34 + "left": { + "attributes": { + "endFilePos": 40, + "endLine": 7, + "endTokenPos": 30, + "startFilePos": 39, + "startLine": 7, + "startTokenPos": 30 + }, + "name": "f", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 8, - "endTokenPos": 41, - "startFilePos": 47, - "startLine": 8, - "startTokenPos": 37 + "nodeType": "Expr_BinaryOp_Mod", + "right": { + "attributes": { + "endFilePos": 44, + "endLine": 7, + "endTokenPos": 34, + "kind": 10, + "startFilePos": 44, + "startLine": 7, + "startTokenPos": 34 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "left": { + { "attributes": { - "endFilePos": 48, + "endFilePos": 53, "endLine": 8, - "endTokenPos": 37, + "endTokenPos": 41, "startFilePos": 47, "startLine": 8, "startTokenPos": 37 }, - "name": "g", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Pow", - "right": { - "attributes": { - "endFilePos": 53, - "endLine": 8, - "endTokenPos": 41, - "kind": 10, - "startFilePos": 53, - "startLine": 8, - "startTokenPos": 41 + "left": { + "attributes": { + "endFilePos": 48, + "endLine": 8, + "endTokenPos": 37, + "startFilePos": 47, + "startLine": 8, + "startTokenPos": 37 + }, + "name": "g", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_BinaryOp_Pow", + "right": { + "attributes": { + "endFilePos": 53, + "endLine": 8, + "endTokenPos": 41, + "kind": 10, + "startFilePos": 53, + "startLine": 8, + "startTokenPos": 41 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/aritmeticops.php.uast b/fixtures/aritmeticops.php.uast index 5b8d487..71bc659 100644 --- a/fixtures/aritmeticops.php.uast +++ b/fixtures/aritmeticops.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_BinaryOp_Plus { -. . . Roles: Expression,Operator,Add +. . . Roles: Add,Expression,Operator . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,9 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 12 @@ -74,8 +82,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 4 @@ -89,9 +96,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 20 @@ -110,7 +126,7 @@ File { . . . } . . } . . 2: Expr_BinaryOp_Mul { -. . . Roles: Expression,Operator,Multiply +. . . Roles: Expression,Multiply,Operator . . . StartPosition: { . . . . Offset: 23 . . . . Line: 5 @@ -126,8 +142,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 5 @@ -141,9 +156,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 28 @@ -162,7 +186,7 @@ File { . . . } . . } . . 3: Expr_BinaryOp_Div { -. . . Roles: Expression,Operator,Divide +. . . Roles: Divide,Expression,Operator . . . StartPosition: { . . . . Offset: 31 . . . . Line: 6 @@ -178,8 +202,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "d" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 6 @@ -193,9 +216,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 36 @@ -214,7 +246,7 @@ File { . . . } . . } . . 4: Expr_BinaryOp_Mod { -. . . Roles: Expression,Operator,Modulo +. . . Roles: Expression,Modulo,Operator . . . StartPosition: { . . . . Offset: 39 . . . . Line: 7 @@ -230,8 +262,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "f" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 39 . . . . . . Line: 7 @@ -245,9 +276,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 44 @@ -266,7 +306,7 @@ File { . . . } . . } . . 5: Expr_BinaryOp_Pow { -. . . Roles: Expression,Operator,Incomplete +. . . Roles: Expression,Incomplete,Operator . . . StartPosition: { . . . . Offset: 47 . . . . Line: 8 @@ -282,8 +322,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "g" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 8 @@ -297,9 +336,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "g" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 53 diff --git a/fixtures/array_access.php.native b/fixtures/array_access.php.native index be62c24..c58ac88 100644 --- a/fixtures/array_access.php.native +++ b/fixtures/array_access.php.native @@ -2,232 +2,235 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "dim": { - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 4, - "kind": 1, - "startFilePos": 10, - "startLine": 3, - "startTokenPos": 4 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 13, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 5, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 27, - "endLine": 4, - "endTokenPos": 14, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 8 - }, - "dim": { - "attributes": { - "endFilePos": 26, - "endLine": 4, - "endTokenPos": 13, - "kind": 1, - "startFilePos": 24, - "startLine": 4, - "startTokenPos": 13 + "dim": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 4, + "kind": 1, + "startFilePos": 10, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "b" }, - "nodeType": "Scalar_String", - "value": "c" + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 22, + "endFilePos": 27, "endLine": 4, - "endTokenPos": 11, + "endTokenPos": 14, "startFilePos": 16, "startLine": 4, "startTokenPos": 8 }, "dim": { "attributes": { - "endFilePos": 21, + "endFilePos": 26, "endLine": 4, - "endTokenPos": 10, + "endTokenPos": 13, "kind": 1, - "startFilePos": 19, + "startFilePos": 24, "startLine": 4, - "startTokenPos": 10 + "startTokenPos": 13 }, "nodeType": "Scalar_String", - "value": "b" + "value": "c" }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 17, + "endFilePos": 22, "endLine": 4, - "endTokenPos": 8, + "endTokenPos": 11, "startFilePos": 16, "startLine": 4, "startTokenPos": 8 }, - "name": "a", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 10, + "kind": 1, + "startFilePos": 19, + "startLine": 4, + "startTokenPos": 10 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 17, + "endLine": 4, + "endTokenPos": 8, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 8 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 38, - "endLine": 5, - "endTokenPos": 23, - "startFilePos": 30, - "startLine": 5, - "startTokenPos": 17 }, - "expr": { + { "attributes": { "endFilePos": 38, "endLine": 5, "endTokenPos": 23, - "startFilePos": 37, - "startLine": 5, - "startTokenPos": 23 - }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 33, - "endLine": 5, - "endTokenPos": 19, "startFilePos": 30, "startLine": 5, "startTokenPos": 17 }, - "dim": null, - "nodeType": "Expr_ArrayDimFetch", + "expr": { + "attributes": { + "endFilePos": 38, + "endLine": 5, + "endTokenPos": 23, + "startFilePos": 37, + "startLine": 5, + "startTokenPos": 23 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", "var": { "attributes": { - "endFilePos": 31, + "endFilePos": 33, "endLine": 5, - "endTokenPos": 17, + "endTokenPos": 19, "startFilePos": 30, "startLine": 5, "startTokenPos": 17 }, - "name": "a", - "nodeType": "Expr_Variable" + "dim": null, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 31, + "endLine": 5, + "endTokenPos": 17, + "startFilePos": 30, + "startLine": 5, + "startTokenPos": 17 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 47, - "endLine": 6, - "endTokenPos": 29, - "startFilePos": 41, - "startLine": 6, - "startTokenPos": 26 }, - "dim": { + { "attributes": { - "endFilePos": 46, + "endFilePos": 47, "endLine": 6, - "endTokenPos": 28, - "kind": 1, - "startFilePos": 44, - "startLine": 6, - "startTokenPos": 28 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "attributes": { - "endFilePos": 42, - "endLine": 6, - "endTokenPos": 26, + "endTokenPos": 29, "startFilePos": 41, "startLine": 6, "startTokenPos": 26 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 59, - "endLine": 7, - "endTokenPos": 38, - "startFilePos": 50, - "startLine": 7, - "startTokenPos": 32 - }, - "dim": { - "attributes": { - "endFilePos": 58, - "endLine": 7, - "endTokenPos": 37, - "kind": 1, - "startFilePos": 56, - "startLine": 7, - "startTokenPos": 37 + "dim": { + "attributes": { + "endFilePos": 46, + "endLine": 6, + "endTokenPos": 28, + "kind": 1, + "startFilePos": 44, + "startLine": 6, + "startTokenPos": 28 + }, + "nodeType": "Scalar_String", + "value": "b" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 42, + "endLine": 6, + "endTokenPos": 26, + "startFilePos": 41, + "startLine": 6, + "startTokenPos": 26 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 54, + "endFilePos": 59, "endLine": 7, - "endTokenPos": 35, + "endTokenPos": 38, "startFilePos": 50, "startLine": 7, "startTokenPos": 32 }, - "name": { + "dim": { "attributes": { - "endFilePos": 53, + "endFilePos": 58, "endLine": 7, - "endTokenPos": 34, - "startFilePos": 52, + "endTokenPos": 37, + "kind": 1, + "startFilePos": 56, "startLine": 7, - "startTokenPos": 34 + "startTokenPos": 37 }, - "name": "a", - "nodeType": "Expr_Variable" + "nodeType": "Scalar_String", + "value": "b" }, - "nodeType": "Expr_Variable" + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 54, + "endLine": 7, + "endTokenPos": 35, + "startFilePos": 50, + "startLine": 7, + "startTokenPos": 32 + }, + "name": { + "attributes": { + "endFilePos": 53, + "endLine": 7, + "endTokenPos": 34, + "startFilePos": 52, + "startLine": 7, + "startTokenPos": 34 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/array_access.php.uast b/fixtures/array_access.php.uast index 98d5ba1..ef56709 100644 --- a/fixtures/array_access.php.uast +++ b/fixtures/array_access.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,6 +36,15 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_String { . . . . . Roles: Expression,Literal,String @@ -58,7 +66,7 @@ File { . . . } . . } . . 1: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 16 . . . . Line: 4 @@ -74,7 +82,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 4 @@ -91,7 +99,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 16 . . . . . . . . Line: 4 @@ -105,6 +112,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -145,7 +161,7 @@ File { . . . } . . } . . 2: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 30 . . . . Line: 5 @@ -161,7 +177,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Left +. . . . . Roles: Entry,Expression,Left,List,Value . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 5 @@ -178,7 +194,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 30 . . . . . . . . Line: 5 @@ -192,12 +207,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 37 . . . . . . Line: 5 @@ -211,11 +234,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 41 . . . . Line: 6 @@ -232,7 +264,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 41 . . . . . . Line: 6 @@ -246,6 +277,15 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_String { . . . . . Roles: Expression,Literal,String @@ -267,7 +307,7 @@ File { . . . } . . } . . 4: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 50 . . . . Line: 7 @@ -300,7 +340,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 52 . . . . . . . . Line: 7 @@ -314,6 +353,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/array_def.php.native b/fixtures/array_def.php.native index 4aeb64f..3a57168 100644 --- a/fixtures/array_def.php.native +++ b/fixtures/array_def.php.native @@ -2,470 +2,473 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 4, - "kind": 1, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "items": [], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "endFilePos": 25, - "endLine": 4, - "endTokenPos": 10, - "kind": 1, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 7 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 4, + "kind": 1, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "items": [], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 4, - "endTokenPos": 9, - "startFilePos": 22, - "startLine": 4, - "startTokenPos": 9 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { + "attributes": { + "endFilePos": 25, + "endLine": 4, + "endTokenPos": 10, + "kind": 1, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 7 + }, + "items": [ + { "attributes": { "endFilePos": 24, "endLine": 4, "endTokenPos": 9, - "kind": 1, "startFilePos": 22, "startLine": 4, "startTokenPos": 9 }, - "nodeType": "Scalar_String", - "value": "a" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 24, + "endLine": 4, + "endTokenPos": 9, + "kind": 1, + "startFilePos": 22, + "startLine": 4, + "startTokenPos": 9 + }, + "nodeType": "Scalar_String", + "value": "a" + } } - } - ], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "endFilePos": 39, - "endLine": 5, - "endTokenPos": 18, - "kind": 1, - "startFilePos": 28, - "startLine": 5, - "startTokenPos": 13 + ], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 5, - "endTokenPos": 15, - "startFilePos": 34, - "startLine": 5, - "startTokenPos": 15 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { + "attributes": { + "endFilePos": 39, + "endLine": 5, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 28, + "startLine": 5, + "startTokenPos": 13 + }, + "items": [ + { "attributes": { "endFilePos": 36, "endLine": 5, "endTokenPos": 15, - "kind": 1, "startFilePos": 34, "startLine": 5, "startTokenPos": 15 }, - "nodeType": "Scalar_String", - "value": "a" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 36, + "endLine": 5, + "endTokenPos": 15, + "kind": 1, + "startFilePos": 34, + "startLine": 5, + "startTokenPos": 15 + }, + "nodeType": "Scalar_String", + "value": "a" + } } - } - ], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "endFilePos": 56, - "endLine": 6, - "endTokenPos": 27, - "kind": 1, - "startFilePos": 42, - "startLine": 6, - "startTokenPos": 21 + ], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 50, - "endLine": 6, - "endTokenPos": 23, - "startFilePos": 48, - "startLine": 6, - "startTokenPos": 23 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { + "attributes": { + "endFilePos": 56, + "endLine": 6, + "endTokenPos": 27, + "kind": 1, + "startFilePos": 42, + "startLine": 6, + "startTokenPos": 21 + }, + "items": [ + { "attributes": { "endFilePos": 50, "endLine": 6, "endTokenPos": 23, - "kind": 1, "startFilePos": 48, "startLine": 6, "startTokenPos": 23 }, - "nodeType": "Scalar_String", - "value": "a" - } - }, - { - "attributes": { - "endFilePos": 55, - "endLine": 6, - "endTokenPos": 26, - "startFilePos": 53, - "startLine": 6, - "startTokenPos": 26 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 50, + "endLine": 6, + "endTokenPos": 23, + "kind": 1, + "startFilePos": 48, + "startLine": 6, + "startTokenPos": 23 + }, + "nodeType": "Scalar_String", + "value": "a" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 55, "endLine": 6, "endTokenPos": 26, - "kind": 1, "startFilePos": 53, "startLine": 6, "startTokenPos": 26 }, - "nodeType": "Scalar_String", - "value": "b" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 55, + "endLine": 6, + "endTokenPos": 26, + "kind": 1, + "startFilePos": 53, + "startLine": 6, + "startTokenPos": 26 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - ], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "endFilePos": 97, - "endLine": 7, - "endTokenPos": 52, - "kind": 1, - "startFilePos": 59, - "startLine": 7, - "startTokenPos": 30 + ], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 67, - "endLine": 7, - "endTokenPos": 32, - "startFilePos": 65, - "startLine": 7, - "startTokenPos": 32 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { + "attributes": { + "endFilePos": 97, + "endLine": 7, + "endTokenPos": 52, + "kind": 1, + "startFilePos": 59, + "startLine": 7, + "startTokenPos": 30 + }, + "items": [ + { "attributes": { "endFilePos": 67, "endLine": 7, "endTokenPos": 32, - "kind": 1, "startFilePos": 65, "startLine": 7, "startTokenPos": 32 }, - "nodeType": "Scalar_String", - "value": "a" - } - }, - { - "attributes": { - "endFilePos": 72, - "endLine": 7, - "endTokenPos": 36, - "startFilePos": 70, - "startLine": 7, - "startTokenPos": 35 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 67, + "endLine": 7, + "endTokenPos": 32, + "kind": 1, + "startFilePos": 65, + "startLine": 7, + "startTokenPos": 32 + }, + "nodeType": "Scalar_String", + "value": "a" + } }, - "byRef": true, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 72, "endLine": 7, "endTokenPos": 36, - "startFilePos": 71, + "startFilePos": 70, "startLine": 7, - "startTokenPos": 36 + "startTokenPos": 35 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 84, - "endLine": 7, - "endTokenPos": 43, - "startFilePos": 75, - "startLine": 7, - "startTokenPos": 39 + "byRef": true, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 72, + "endLine": 7, + "endTokenPos": 36, + "startFilePos": 71, + "startLine": 7, + "startTokenPos": 36 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": { + { "attributes": { - "endFilePos": 77, + "endFilePos": 84, "endLine": 7, - "endTokenPos": 39, - "kind": 1, + "endTokenPos": 43, "startFilePos": 75, "startLine": 7, "startTokenPos": 39 }, - "nodeType": "Scalar_String", - "value": "c" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 84, - "endLine": 7, - "endTokenPos": 43, - "kind": 1, - "startFilePos": 82, - "startLine": 7, - "startTokenPos": 43 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 77, + "endLine": 7, + "endTokenPos": 39, + "kind": 1, + "startFilePos": 75, + "startLine": 7, + "startTokenPos": 39 + }, + "nodeType": "Scalar_String", + "value": "c" }, - "nodeType": "Scalar_String", - "value": "d" - } - }, - { - "attributes": { - "endFilePos": 96, - "endLine": 7, - "endTokenPos": 51, - "startFilePos": 87, - "startLine": 7, - "startTokenPos": 46 + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 84, + "endLine": 7, + "endTokenPos": 43, + "kind": 1, + "startFilePos": 82, + "startLine": 7, + "startTokenPos": 43 + }, + "nodeType": "Scalar_String", + "value": "d" + } }, - "byRef": true, - "key": { + { "attributes": { - "endFilePos": 89, + "endFilePos": 96, "endLine": 7, - "endTokenPos": 46, - "kind": 1, + "endTokenPos": 51, "startFilePos": 87, "startLine": 7, "startTokenPos": 46 }, - "nodeType": "Scalar_String", - "value": "e" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 96, - "endLine": 7, - "endTokenPos": 51, - "startFilePos": 95, - "startLine": 7, - "startTokenPos": 51 + "byRef": true, + "key": { + "attributes": { + "endFilePos": 89, + "endLine": 7, + "endTokenPos": 46, + "kind": 1, + "startFilePos": 87, + "startLine": 7, + "startTokenPos": 46 + }, + "nodeType": "Scalar_String", + "value": "e" }, - "name": "f", - "nodeType": "Expr_Variable" - } - } - ], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "comments": [ - { - "filePos": 101, - "line": 9, - "nodeType": "Comment", - "text": "// short array syntax\n" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 96, + "endLine": 7, + "endTokenPos": 51, + "startFilePos": 95, + "startLine": 7, + "startTokenPos": 51 + }, + "name": "f", + "nodeType": "Expr_Variable" + } } ], - "endFilePos": 124, - "endLine": 10, - "endTokenPos": 57, - "kind": 2, - "startFilePos": 123, - "startLine": 10, - "startTokenPos": 56 + "nodeType": "Expr_Array" }, - "items": [], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "endFilePos": 135, - "endLine": 11, - "endTokenPos": 68, - "kind": 2, - "startFilePos": 127, - "startLine": 11, - "startTokenPos": 60 + { + "attributes": { + "comments": [ + { + "filePos": 101, + "line": 9, + "nodeType": "Comment", + "text": "// short array syntax\n" + } + ], + "endFilePos": 124, + "endLine": 10, + "endTokenPos": 57, + "kind": 2, + "startFilePos": 123, + "startLine": 10, + "startTokenPos": 56 + }, + "items": [], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 128, - "endLine": 11, - "endTokenPos": 61, - "startFilePos": 128, - "startLine": 11, - "startTokenPos": 61 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { + "attributes": { + "endFilePos": 135, + "endLine": 11, + "endTokenPos": 68, + "kind": 2, + "startFilePos": 127, + "startLine": 11, + "startTokenPos": 60 + }, + "items": [ + { "attributes": { "endFilePos": 128, "endLine": 11, "endTokenPos": 61, - "kind": 10, "startFilePos": 128, "startLine": 11, "startTokenPos": 61 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 131, - "endLine": 11, - "endTokenPos": 64, - "startFilePos": 131, - "startLine": 11, - "startTokenPos": 64 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 128, + "endLine": 11, + "endTokenPos": 61, + "kind": 10, + "startFilePos": 128, + "startLine": 11, + "startTokenPos": 61 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 131, "endLine": 11, "endTokenPos": 64, - "kind": 10, "startFilePos": 131, "startLine": 11, "startTokenPos": 64 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 134, - "endLine": 11, - "endTokenPos": 67, - "startFilePos": 134, - "startLine": 11, - "startTokenPos": 67 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 131, + "endLine": 11, + "endTokenPos": 64, + "kind": 10, + "startFilePos": 131, + "startLine": 11, + "startTokenPos": 64 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 134, "endLine": 11, "endTokenPos": 67, - "kind": 10, "startFilePos": 134, "startLine": 11, "startTokenPos": 67 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 134, + "endLine": 11, + "endTokenPos": 67, + "kind": 10, + "startFilePos": 134, + "startLine": 11, + "startTokenPos": 67 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" - }, - { - "attributes": { - "endFilePos": 149, - "endLine": 12, - "endTokenPos": 77, - "kind": 2, - "startFilePos": 138, - "startLine": 12, - "startTokenPos": 71 + ], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 148, - "endLine": 12, - "endTokenPos": 76, - "startFilePos": 139, - "startLine": 12, - "startTokenPos": 72 - }, - "byRef": false, - "key": { + { + "attributes": { + "endFilePos": 149, + "endLine": 12, + "endTokenPos": 77, + "kind": 2, + "startFilePos": 138, + "startLine": 12, + "startTokenPos": 71 + }, + "items": [ + { "attributes": { - "endFilePos": 141, + "endFilePos": 148, "endLine": 12, - "endTokenPos": 72, - "kind": 1, + "endTokenPos": 76, "startFilePos": 139, "startLine": 12, "startTokenPos": 72 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 148, - "endLine": 12, - "endTokenPos": 76, - "kind": 1, - "startFilePos": 146, - "startLine": 12, - "startTokenPos": 76 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 141, + "endLine": 12, + "endTokenPos": 72, + "kind": 1, + "startFilePos": 139, + "startLine": 12, + "startTokenPos": 72 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 148, + "endLine": 12, + "endTokenPos": 76, + "kind": 1, + "startFilePos": 146, + "startLine": 12, + "startTokenPos": 76 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - ], - "nodeType": "Expr_Array" - } - ] + ], + "nodeType": "Expr_Array" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/array_def.php.uast b/fixtures/array_def.php.uast index 9231855..b2ef878 100644 --- a/fixtures/array_def.php.uast +++ b/fixtures/array_def.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . } . . 1: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 16 . . . . Line: 4 @@ -38,7 +38,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 22 . . . . . . Line: 4 @@ -76,7 +76,7 @@ File { . . . } . . } . . 2: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 28 . . . . Line: 5 @@ -92,7 +92,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 34 . . . . . . Line: 5 @@ -130,7 +130,7 @@ File { . . . } . . } . . 3: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 42 . . . . Line: 6 @@ -146,7 +146,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 48 . . . . . . Line: 6 @@ -182,7 +182,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 53 . . . . . . Line: 6 @@ -220,7 +220,7 @@ File { . . . } . . } . . 4: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 59 . . . . Line: 7 @@ -236,7 +236,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 65 . . . . . . Line: 7 @@ -272,7 +272,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 70 . . . . . . Line: 7 @@ -290,7 +290,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "b" . . . . . . . StartPosition: { . . . . . . . . Offset: 71 . . . . . . . . Line: 7 @@ -304,11 +303,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 75 . . . . . . Line: 7 @@ -361,7 +369,7 @@ File { . . . . . } . . . . } . . . . 3: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 87 . . . . . . Line: 7 @@ -396,7 +404,6 @@ File { . . . . . . } . . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "f" . . . . . . . StartPosition: { . . . . . . . . Offset: 95 . . . . . . . . Line: 7 @@ -410,13 +417,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "f" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 5: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 123 . . . . Line: 10 @@ -432,27 +448,22 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " short array syntax " . . . . . StartPosition: { -. . . . . . Offset: 101 -. . . . . . Line: 9 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 123 -. . . . . . Line: 10 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . } . . } . . 6: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 127 . . . . Line: 11 @@ -468,7 +479,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 128 . . . . . . Line: 11 @@ -504,7 +515,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 131 . . . . . . Line: 11 @@ -540,7 +551,7 @@ File { . . . . . } . . . . } . . . . 2: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 134 . . . . . . Line: 11 @@ -578,7 +589,7 @@ File { . . . } . . } . . 7: Expr_Array { -. . . Roles: Expression,Literal,List +. . . Roles: Expression,List,Literal . . . StartPosition: { . . . . Offset: 138 . . . . Line: 12 @@ -594,7 +605,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayItem { -. . . . . Roles: Expression,List,Entry +. . . . . Roles: Entry,Expression,List . . . . . StartPosition: { . . . . . . Offset: 139 . . . . . . Line: 12 diff --git a/fixtures/array_destructuring.php.native b/fixtures/array_destructuring.php.native index c36bf75..9a8850d 100644 --- a/fixtures/array_destructuring.php.native +++ b/fixtures/array_destructuring.php.native @@ -2,40 +2,29 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 25, "endLine": 3, "endTokenPos": 16, - "kind": 2, - "startFilePos": 18, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 11 + "startTokenPos": 2 }, - "items": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 3, - "endTokenPos": 12, - "startFilePos": 19, - "startLine": 3, - "startTokenPos": 12 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "expr": { + "attributes": { + "endFilePos": 25, + "endLine": 3, + "endTokenPos": 16, + "kind": 2, + "startFilePos": 18, + "startLine": 3, + "startTokenPos": 11 + }, + "items": [ + { "attributes": { "endFilePos": 20, "endLine": 3, @@ -44,23 +33,23 @@ "startLine": 3, "startTokenPos": 12 }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 23, - "startLine": 3, - "startTokenPos": 15 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 20, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 19, + "startLine": 3, + "startTokenPos": 12 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 24, "endLine": 3, @@ -69,38 +58,38 @@ "startLine": 3, "startTokenPos": 15 }, - "name": "d", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 15, + "startFilePos": 23, + "startLine": 3, + "startTokenPos": 15 + }, + "name": "d", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_Array" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 7, - "kind": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + ], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 9, - "endLine": 3, - "endTokenPos": 3, - "startFilePos": 8, - "startLine": 3, - "startTokenPos": 3 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 7, + "kind": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "items": [ + { "attributes": { "endFilePos": 9, "endLine": 3, @@ -109,23 +98,23 @@ "startLine": 3, "startTokenPos": 3 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 9, + "endLine": 3, + "endTokenPos": 3, + "startFilePos": 8, + "startLine": 3, + "startTokenPos": 3 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 13, "endLine": 3, @@ -134,61 +123,61 @@ "startLine": 3, "startTokenPos": 6 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 51, - "endLine": 4, - "endTokenPos": 37, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 19 + ], + "nodeType": "Expr_Array" + } }, - "expr": { + { "attributes": { "endFilePos": 51, "endLine": 4, "endTokenPos": 37, - "startFilePos": 48, - "startLine": 4, - "startTokenPos": 37 - }, - "name": "foo", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 44, - "endLine": 4, - "endTokenPos": 33, - "kind": 2, "startFilePos": 28, "startLine": 4, "startTokenPos": 19 }, - "items": [ - null, - { - "attributes": { - "endFilePos": 32, - "endLine": 4, - "endTokenPos": 22, - "startFilePos": 31, - "startLine": 4, - "startTokenPos": 22 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "expr": { + "attributes": { + "endFilePos": 51, + "endLine": 4, + "endTokenPos": 37, + "startFilePos": 48, + "startLine": 4, + "startTokenPos": 37 + }, + "name": "foo", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 44, + "endLine": 4, + "endTokenPos": 33, + "kind": 2, + "startFilePos": 28, + "startLine": 4, + "startTokenPos": 19 + }, + "items": [ + null, + { "attributes": { "endFilePos": 32, "endLine": 4, @@ -197,25 +186,25 @@ "startLine": 4, "startTokenPos": 22 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - null, - null, - { - "attributes": { - "endFilePos": 40, - "endLine": 4, - "endTokenPos": 29, - "startFilePos": 39, - "startLine": 4, - "startTokenPos": 29 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 32, + "endLine": 4, + "endTokenPos": 22, + "startFilePos": 31, + "startLine": 4, + "startTokenPos": 22 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + null, + null, + { "attributes": { "endFilePos": 40, "endLine": 4, @@ -224,108 +213,108 @@ "startLine": 4, "startTokenPos": 29 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - null - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 74, - "endLine": 5, - "endTokenPos": 55, - "startFilePos": 54, - "startLine": 5, - "startTokenPos": 40 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 40, + "endLine": 4, + "endTokenPos": 29, + "startFilePos": 39, + "startLine": 4, + "startTokenPos": 29 + }, + "name": "b", + "nodeType": "Expr_Variable" + } + }, + null + ], + "nodeType": "Expr_Array" + } }, - "expr": { + { "attributes": { "endFilePos": 74, "endLine": 5, "endTokenPos": 55, - "startFilePos": 71, - "startLine": 5, - "startTokenPos": 55 - }, - "name": "bar", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 67, - "endLine": 5, - "endTokenPos": 51, - "kind": 2, "startFilePos": 54, "startLine": 5, "startTokenPos": 40 }, - "items": [ - null, - { - "attributes": { - "endFilePos": 62, - "endLine": 5, - "endTokenPos": 47, - "startFilePos": 57, - "startLine": 5, - "startTokenPos": 43 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "expr": { + "attributes": { + "endFilePos": 74, + "endLine": 5, + "endTokenPos": 55, + "startFilePos": 71, + "startLine": 5, + "startTokenPos": 55 + }, + "name": "bar", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 67, + "endLine": 5, + "endTokenPos": 51, + "kind": 2, + "startFilePos": 54, + "startLine": 5, + "startTokenPos": 40 + }, + "items": [ + null, + { "attributes": { "endFilePos": 62, "endLine": 5, "endTokenPos": 47, - "kind": 2, "startFilePos": 57, "startLine": 5, "startTokenPos": 43 }, - "items": [ - { - "attributes": { - "endFilePos": 61, - "endLine": 5, - "endTokenPos": 46, - "startFilePos": 58, - "startLine": 5, - "startTokenPos": 44 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 62, + "endLine": 5, + "endTokenPos": 47, + "kind": 2, + "startFilePos": 57, + "startLine": 5, + "startTokenPos": 43 + }, + "items": [ + { "attributes": { "endFilePos": 61, "endLine": 5, "endTokenPos": 46, - "kind": 2, "startFilePos": 58, "startLine": 5, "startTokenPos": 44 }, - "items": [ - { - "attributes": { - "endFilePos": 60, - "endLine": 5, - "endTokenPos": 45, - "startFilePos": 59, - "startLine": 5, - "startTokenPos": 45 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 61, + "endLine": 5, + "endTokenPos": 46, + "kind": 2, + "startFilePos": 58, + "startLine": 5, + "startTokenPos": 44 + }, + "items": [ + { "attributes": { "endFilePos": 60, "endLine": 5, @@ -334,31 +323,31 @@ "startLine": 5, "startTokenPos": 45 }, - "name": "a", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 60, + "endLine": 5, + "endTokenPos": 45, + "startFilePos": 59, + "startLine": 5, + "startTokenPos": 45 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 66, - "endLine": 5, - "endTokenPos": 50, - "startFilePos": 65, - "startLine": 5, - "startTokenPos": 50 + ], + "nodeType": "Expr_Array" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 66, "endLine": 5, @@ -367,124 +356,138 @@ "startLine": 5, "startTokenPos": 50 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 66, + "endLine": 5, + "endTokenPos": 50, + "startFilePos": 65, + "startLine": 5, + "startTokenPos": 50 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 105, - "endLine": 6, - "endTokenPos": 75, - "startFilePos": 77, - "startLine": 6, - "startTokenPos": 58 + ], + "nodeType": "Expr_Array" + } }, - "expr": { + { "attributes": { "endFilePos": 105, "endLine": 6, "endTokenPos": 75, - "startFilePos": 102, - "startLine": 6, - "startTokenPos": 75 - }, - "name": "baz", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 98, - "endLine": 6, - "endTokenPos": 71, - "kind": 2, "startFilePos": 77, "startLine": 6, "startTokenPos": 58 }, - "items": [ - { - "attributes": { - "endFilePos": 86, - "endLine": 6, - "endTokenPos": 63, - "startFilePos": 78, - "startLine": 6, - "startTokenPos": 59 - }, - "byRef": false, - "key": { + "expr": { + "attributes": { + "endFilePos": 105, + "endLine": 6, + "endTokenPos": 75, + "startFilePos": 102, + "startLine": 6, + "startTokenPos": 75 + }, + "name": "baz", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 98, + "endLine": 6, + "endTokenPos": 71, + "kind": 2, + "startFilePos": 77, + "startLine": 6, + "startTokenPos": 58 + }, + "items": [ + { "attributes": { - "endFilePos": 80, + "endFilePos": 86, "endLine": 6, - "endTokenPos": 59, - "kind": 1, + "endTokenPos": 63, "startFilePos": 78, "startLine": 6, "startTokenPos": 59 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 86, - "endLine": 6, - "endTokenPos": 63, - "startFilePos": 85, - "startLine": 6, - "startTokenPos": 63 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 80, + "endLine": 6, + "endTokenPos": 59, + "kind": 1, + "startFilePos": 78, + "startLine": 6, + "startTokenPos": 59 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 97, - "endLine": 6, - "endTokenPos": 70, - "startFilePos": 89, - "startLine": 6, - "startTokenPos": 66 + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 86, + "endLine": 6, + "endTokenPos": 63, + "startFilePos": 85, + "startLine": 6, + "startTokenPos": 63 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": { + { "attributes": { - "endFilePos": 91, + "endFilePos": 97, "endLine": 6, - "endTokenPos": 66, - "kind": 1, + "endTokenPos": 70, "startFilePos": 89, "startLine": 6, "startTokenPos": 66 }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 97, - "endLine": 6, - "endTokenPos": 70, - "startFilePos": 96, - "startLine": 6, - "startTokenPos": 70 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 91, + "endLine": 6, + "endTokenPos": 66, + "kind": 1, + "startFilePos": 89, + "startLine": 6, + "startTokenPos": 66 + }, + "nodeType": "Scalar_String", + "value": "b" }, - "name": "a", - "nodeType": "Expr_Variable" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 97, + "endLine": 6, + "endTokenPos": 70, + "startFilePos": 96, + "startLine": 6, + "startTokenPos": 70 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/array_destructuring.php.uast b/fixtures/array_destructuring.php.uast index 491636c..8289ca8 100644 --- a/fixtures/array_destructuring.php.uast +++ b/fixtures/array_destructuring.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List,Left +. . . . . Roles: Expression,Left,List,Literal . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -38,7 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 8 . . . . . . . . Line: 3 @@ -56,7 +56,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 8 . . . . . . . . . . Line: 3 @@ -70,11 +69,20 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 12 . . . . . . . . Line: 3 @@ -92,7 +100,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 12 . . . . . . . . . . Line: 3 @@ -106,13 +113,22 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Array { -. . . . . Roles: Expression,Literal,List,Right +. . . . . Roles: Expression,List,Literal,Right . . . . . StartPosition: { . . . . . . Offset: 18 . . . . . . Line: 3 @@ -128,7 +144,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 19 . . . . . . . . Line: 3 @@ -146,7 +162,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "c" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 19 . . . . . . . . . . Line: 3 @@ -160,11 +175,20 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 23 . . . . . . . . Line: 3 @@ -182,7 +206,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "d" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 23 . . . . . . . . . . Line: 3 @@ -196,6 +219,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "d" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -204,7 +236,7 @@ File { . . . } . . } . . 1: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 28 . . . . Line: 4 @@ -220,7 +252,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List,Left +. . . . . Roles: Expression,Left,List,Literal . . . . . StartPosition: { . . . . . . Offset: 28 . . . . . . Line: 4 @@ -233,12 +265,100 @@ File { . . . . . } . . . . . Properties: { . . . . . . internalRole: var -. . . . . . items: [null,{"attributes":{"endFilePos":32,"endLine":4,"endTokenPos":22,"startFilePos":31,"startLine":4,"startTokenPos":22},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":32,"endLine":4,"endTokenPos":22,"startFilePos":31,"startLine":4,"startTokenPos":22},"name":"a","nodeType":"Expr_Variable"}},null,null,{"attributes":{"endFilePos":40,"endLine":4,"endTokenPos":29,"startFilePos":39,"startLine":4,"startTokenPos":29},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":40,"endLine":4,"endTokenPos":29,"startFilePos":39,"startLine":4,"startTokenPos":29},"name":"b","nodeType":"Expr_Variable"}},null] +. . . . . } +. . . . . Children: { +. . . . . . 0: Expr_ArrayItem { +. . . . . . . Roles: Entry,Expression,List +. . . . . . . StartPosition: { +. . . . . . . . Offset: 31 +. . . . . . . . Line: 4 +. . . . . . . . Col: 4 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 32 +. . . . . . . . Line: 4 +. . . . . . . . Col: 5 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: items +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 31 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 4 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 32 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ArrayItem { +. . . . . . . Roles: Entry,Expression,List +. . . . . . . StartPosition: { +. . . . . . . . Offset: 39 +. . . . . . . . Line: 4 +. . . . . . . . Col: 12 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 40 +. . . . . . . . Line: 4 +. . . . . . . . Col: 13 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: items +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 39 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 40 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 13 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "foo" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 48 . . . . . . Line: 4 @@ -252,11 +372,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "foo" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 54 . . . . Line: 5 @@ -272,7 +401,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List,Left +. . . . . Roles: Expression,Left,List,Literal . . . . . StartPosition: { . . . . . . Offset: 54 . . . . . . Line: 5 @@ -285,12 +414,174 @@ File { . . . . . } . . . . . Properties: { . . . . . . internalRole: var -. . . . . . items: [null,{"attributes":{"endFilePos":62,"endLine":5,"endTokenPos":47,"startFilePos":57,"startLine":5,"startTokenPos":43},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":62,"endLine":5,"endTokenPos":47,"kind":2,"startFilePos":57,"startLine":5,"startTokenPos":43},"items":[{"attributes":{"endFilePos":61,"endLine":5,"endTokenPos":46,"startFilePos":58,"startLine":5,"startTokenPos":44},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":61,"endLine":5,"endTokenPos":46,"kind":2,"startFilePos":58,"startLine":5,"startTokenPos":44},"items":[{"attributes":{"endFilePos":60,"endLine":5,"endTokenPos":45,"startFilePos":59,"startLine":5,"startTokenPos":45},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":60,"endLine":5,"endTokenPos":45,"startFilePos":59,"startLine":5,"startTokenPos":45},"name":"a","nodeType":"Expr_Variable"}}],"nodeType":"Expr_Array"}}],"nodeType":"Expr_Array"}},{"attributes":{"endFilePos":66,"endLine":5,"endTokenPos":50,"startFilePos":65,"startLine":5,"startTokenPos":50},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":66,"endLine":5,"endTokenPos":50,"startFilePos":65,"startLine":5,"startTokenPos":50},"name":"b","nodeType":"Expr_Variable"}}] +. . . . . } +. . . . . Children: { +. . . . . . 0: Expr_ArrayItem { +. . . . . . . Roles: Entry,Expression,List +. . . . . . . StartPosition: { +. . . . . . . . Offset: 57 +. . . . . . . . Line: 5 +. . . . . . . . Col: 4 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 62 +. . . . . . . . Line: 5 +. . . . . . . . Col: 9 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: items +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Array { +. . . . . . . . . Roles: Expression,List,Literal +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 57 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 4 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 62 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 9 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_ArrayItem { +. . . . . . . . . . . Roles: Entry,Expression,List +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 58 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 5 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 61 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 8 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . byRef: false +. . . . . . . . . . . . internalRole: items +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Array { +. . . . . . . . . . . . . Roles: Expression,List,Literal +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 58 +. . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . Col: 5 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 61 +. . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . Col: 8 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Expr_ArrayItem { +. . . . . . . . . . . . . . . Roles: Entry,Expression,List +. . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . Offset: 59 +. . . . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . . . Col: 6 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . Offset: 60 +. . . . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . . . Col: 7 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . byRef: false +. . . . . . . . . . . . . . . . internalRole: items +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . Offset: 59 +. . . . . . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . . . . . Col: 6 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . Offset: 60 +. . . . . . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . . . . . Col: 7 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ArrayItem { +. . . . . . . Roles: Entry,Expression,List +. . . . . . . StartPosition: { +. . . . . . . . Offset: 65 +. . . . . . . . Line: 5 +. . . . . . . . Col: 12 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 66 +. . . . . . . . Line: 5 +. . . . . . . . Col: 13 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: items +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 65 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 66 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 13 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "bar" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 71 . . . . . . Line: 5 @@ -304,11 +595,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "bar" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 77 . . . . Line: 6 @@ -324,7 +624,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List,Left +. . . . . Roles: Expression,Left,List,Literal . . . . . StartPosition: { . . . . . . Offset: 77 . . . . . . Line: 6 @@ -340,7 +640,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 78 . . . . . . . . Line: 6 @@ -375,7 +675,6 @@ File { . . . . . . . . } . . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 85 . . . . . . . . . . Line: 6 @@ -389,11 +688,20 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 89 . . . . . . . . Line: 6 @@ -428,7 +736,6 @@ File { . . . . . . . . } . . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 96 . . . . . . . . . . Line: 6 @@ -442,14 +749,22 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "baz" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 102 . . . . . . Line: 6 @@ -463,6 +778,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "baz" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/assign.php.native b/fixtures/assign.php.native index 1a30462..fe1b271 100644 --- a/fixtures/assign.php.native +++ b/fixtures/assign.php.native @@ -2,222 +2,225 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 12, "endLine": 3, "endTokenPos": 6, - "kind": 10, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 8, - "endLine": 3, - "endTokenPos": 2, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 21, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 15, - "startLine": 4, - "startTokenPos": 9 + "expr": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 6, + "kind": 10, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 21, "endLine": 4, "endTokenPos": 13, - "kind": 10, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 13 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_AssignOp_Plus", - "var": { - "attributes": { - "endFilePos": 16, - "endLine": 4, - "endTokenPos": 9, "startFilePos": 15, "startLine": 4, "startTokenPos": 9 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 30, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 24, - "startLine": 5, - "startTokenPos": 16 + "expr": { + "attributes": { + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 13, + "kind": 10, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_AssignOp_Plus", + "var": { + "attributes": { + "endFilePos": 16, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 15, + "startLine": 4, + "startTokenPos": 9 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 30, "endLine": 5, "endTokenPos": 20, - "kind": 10, - "startFilePos": 30, - "startLine": 5, - "startTokenPos": 20 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_AssignOp_Minus", - "var": { - "attributes": { - "endFilePos": 25, - "endLine": 5, - "endTokenPos": 16, "startFilePos": 24, "startLine": 5, "startTokenPos": 16 }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 39, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 33, - "startLine": 6, - "startTokenPos": 23 + "expr": { + "attributes": { + "endFilePos": 30, + "endLine": 5, + "endTokenPos": 20, + "kind": 10, + "startFilePos": 30, + "startLine": 5, + "startTokenPos": 20 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_AssignOp_Minus", + "var": { + "attributes": { + "endFilePos": 25, + "endLine": 5, + "endTokenPos": 16, + "startFilePos": 24, + "startLine": 5, + "startTokenPos": 16 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 39, "endLine": 6, "endTokenPos": 27, - "kind": 10, - "startFilePos": 39, - "startLine": 6, - "startTokenPos": 27 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_AssignOp_Mul", - "var": { - "attributes": { - "endFilePos": 34, - "endLine": 6, - "endTokenPos": 23, "startFilePos": 33, "startLine": 6, "startTokenPos": 23 }, - "name": "d", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 48, - "endLine": 7, - "endTokenPos": 34, - "startFilePos": 42, - "startLine": 7, - "startTokenPos": 30 + "expr": { + "attributes": { + "endFilePos": 39, + "endLine": 6, + "endTokenPos": 27, + "kind": 10, + "startFilePos": 39, + "startLine": 6, + "startTokenPos": 27 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_AssignOp_Mul", + "var": { + "attributes": { + "endFilePos": 34, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 33, + "startLine": 6, + "startTokenPos": 23 + }, + "name": "d", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 48, "endLine": 7, "endTokenPos": 34, - "kind": 10, - "startFilePos": 48, - "startLine": 7, - "startTokenPos": 34 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_AssignOp_Div", - "var": { - "attributes": { - "endFilePos": 43, - "endLine": 7, - "endTokenPos": 30, "startFilePos": 42, "startLine": 7, "startTokenPos": 30 }, - "name": "f", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 57, - "endLine": 8, - "endTokenPos": 41, - "startFilePos": 51, - "startLine": 8, - "startTokenPos": 37 + "expr": { + "attributes": { + "endFilePos": 48, + "endLine": 7, + "endTokenPos": 34, + "kind": 10, + "startFilePos": 48, + "startLine": 7, + "startTokenPos": 34 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_AssignOp_Div", + "var": { + "attributes": { + "endFilePos": 43, + "endLine": 7, + "endTokenPos": 30, + "startFilePos": 42, + "startLine": 7, + "startTokenPos": 30 + }, + "name": "f", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 57, "endLine": 8, "endTokenPos": 41, - "kind": 10, - "startFilePos": 57, - "startLine": 8, - "startTokenPos": 41 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_AssignOp_Mod", - "var": { - "attributes": { - "endFilePos": 52, - "endLine": 8, - "endTokenPos": 37, "startFilePos": 51, "startLine": 8, "startTokenPos": 37 }, - "name": "g", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 57, + "endLine": 8, + "endTokenPos": 41, + "kind": 10, + "startFilePos": 57, + "startLine": 8, + "startTokenPos": 41 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_AssignOp_Mod", + "var": { + "attributes": { + "endFilePos": 52, + "endLine": 8, + "endTokenPos": 37, + "startFilePos": 51, + "startLine": 8, + "startTokenPos": 37 + }, + "name": "g", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/assign.php.uast b/fixtures/assign.php.uast index cf05393..0bad9f8 100644 --- a/fixtures/assign.php.uast +++ b/fixtures/assign.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,9 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 12 @@ -58,7 +66,7 @@ File { . . . } . . } . . 1: Expr_AssignOp_Plus { -. . . Roles: Expression,Assignment,Operator,Add +. . . Roles: Add,Assignment,Expression,Operator . . . StartPosition: { . . . . Offset: 15 . . . . Line: 4 @@ -74,8 +82,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 4 @@ -89,9 +96,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 21 @@ -110,7 +126,7 @@ File { . . . } . . } . . 2: Expr_AssignOp_Minus { -. . . Roles: Expression,Assignment,Operator,Substract +. . . Roles: Assignment,Expression,Operator,Substract . . . StartPosition: { . . . . Offset: 24 . . . . Line: 5 @@ -126,8 +142,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 24 . . . . . . Line: 5 @@ -141,9 +156,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 30 @@ -162,7 +186,7 @@ File { . . . } . . } . . 3: Expr_AssignOp_Mul { -. . . Roles: Expression,Assignment,Operator,Multiply +. . . Roles: Assignment,Expression,Multiply,Operator . . . StartPosition: { . . . . Offset: 33 . . . . Line: 6 @@ -178,8 +202,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "d" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 33 . . . . . . Line: 6 @@ -193,9 +216,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 39 @@ -214,7 +246,7 @@ File { . . . } . . } . . 4: Expr_AssignOp_Div { -. . . Roles: Expression,Assignment,Operator,Divide +. . . Roles: Assignment,Divide,Expression,Operator . . . StartPosition: { . . . . Offset: 42 . . . . Line: 7 @@ -230,8 +262,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "f" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 42 . . . . . . Line: 7 @@ -245,9 +276,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 48 @@ -266,7 +306,7 @@ File { . . . } . . } . . 5: Expr_AssignOp_Mod { -. . . Roles: Expression,Assignment,Operator,Modulo +. . . Roles: Assignment,Expression,Modulo,Operator . . . StartPosition: { . . . . Offset: 51 . . . . Line: 8 @@ -282,8 +322,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "g" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 51 . . . . . . Line: 8 @@ -297,9 +336,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "g" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_LNumber { -. . . . . Roles: Right,Expression,Literal,Number +. . . . . Roles: Expression,Literal,Number,Right . . . . . TOKEN "1" . . . . . StartPosition: { . . . . . . Offset: 57 diff --git a/fixtures/bitwise.php.native b/fixtures/bitwise.php.native index dcc727c..ca8b6f4 100644 --- a/fixtures/bitwise.php.native +++ b/fixtures/bitwise.php.native @@ -2,204 +2,207 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "left": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 13, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 6, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BitwiseAnd", - "right": { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 + "left": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 9 + "nodeType": "Expr_BinaryOp_BitwiseAnd", + "right": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 17, + "endFilePos": 22, "endLine": 4, - "endTokenPos": 9, + "endTokenPos": 13, "startFilePos": 16, "startLine": 4, "startTokenPos": 9 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BitwiseOr", - "right": { - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 13 + "left": { + "attributes": { + "endFilePos": 17, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 9 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 25, - "startLine": 5, - "startTokenPos": 16 + "nodeType": "Expr_BinaryOp_BitwiseOr", + "right": { + "attributes": { + "endFilePos": 22, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 13 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 26, + "endFilePos": 31, "endLine": 5, - "endTokenPos": 16, + "endTokenPos": 20, "startFilePos": 25, "startLine": 5, "startTokenPos": 16 }, - "name": "d", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BitwiseXor", - "right": { - "attributes": { - "endFilePos": 31, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 30, - "startLine": 5, - "startTokenPos": 20 + "left": { + "attributes": { + "endFilePos": 26, + "endLine": 5, + "endTokenPos": 16, + "startFilePos": 25, + "startLine": 5, + "startTokenPos": 16 + }, + "name": "d", + "nodeType": "Expr_Variable" }, - "name": "e", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 37, - "endLine": 6, - "endTokenPos": 25, - "startFilePos": 34, - "startLine": 6, - "startTokenPos": 23 + "nodeType": "Expr_BinaryOp_BitwiseXor", + "right": { + "attributes": { + "endFilePos": 31, + "endLine": 5, + "endTokenPos": 20, + "startFilePos": 30, + "startLine": 5, + "startTokenPos": 20 + }, + "name": "e", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 37, "endLine": 6, "endTokenPos": 25, - "startFilePos": 36, + "startFilePos": 34, "startLine": 6, - "startTokenPos": 25 + "startTokenPos": 23 }, - "name": "f", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BitwiseNot" - }, - { - "attributes": { - "endFilePos": 47, - "endLine": 7, - "endTokenPos": 32, - "startFilePos": 40, - "startLine": 7, - "startTokenPos": 28 - }, - "left": { - "attributes": { - "endFilePos": 41, - "endLine": 7, - "endTokenPos": 28, - "startFilePos": 40, - "startLine": 7, - "startTokenPos": 28 + "expr": { + "attributes": { + "endFilePos": 37, + "endLine": 6, + "endTokenPos": 25, + "startFilePos": 36, + "startLine": 6, + "startTokenPos": 25 + }, + "name": "f", + "nodeType": "Expr_Variable" }, - "name": "g", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BitwiseNot" }, - "nodeType": "Expr_BinaryOp_ShiftLeft", - "right": { + { "attributes": { "endFilePos": 47, "endLine": 7, "endTokenPos": 32, - "startFilePos": 46, + "startFilePos": 40, "startLine": 7, - "startTokenPos": 32 + "startTokenPos": 28 }, - "name": "h", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 57, - "endLine": 8, - "endTokenPos": 39, - "startFilePos": 50, - "startLine": 8, - "startTokenPos": 35 - }, - "left": { - "attributes": { - "endFilePos": 51, - "endLine": 8, - "endTokenPos": 35, - "startFilePos": 50, - "startLine": 8, - "startTokenPos": 35 + "left": { + "attributes": { + "endFilePos": 41, + "endLine": 7, + "endTokenPos": 28, + "startFilePos": 40, + "startLine": 7, + "startTokenPos": 28 + }, + "name": "g", + "nodeType": "Expr_Variable" }, - "name": "i", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BinaryOp_ShiftLeft", + "right": { + "attributes": { + "endFilePos": 47, + "endLine": 7, + "endTokenPos": 32, + "startFilePos": 46, + "startLine": 7, + "startTokenPos": 32 + }, + "name": "h", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_ShiftRight", - "right": { + { "attributes": { "endFilePos": 57, "endLine": 8, "endTokenPos": 39, - "startFilePos": 56, + "startFilePos": 50, "startLine": 8, - "startTokenPos": 39 + "startTokenPos": 35 + }, + "left": { + "attributes": { + "endFilePos": 51, + "endLine": 8, + "endTokenPos": 35, + "startFilePos": 50, + "startLine": 8, + "startTokenPos": 35 + }, + "name": "i", + "nodeType": "Expr_Variable" }, - "name": "j", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BinaryOp_ShiftRight", + "right": { + "attributes": { + "endFilePos": 57, + "endLine": 8, + "endTokenPos": 39, + "startFilePos": 56, + "startLine": 8, + "startTokenPos": 39 + }, + "name": "j", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/bitwise.php.uast b/fixtures/bitwise.php.uast index 2224a17..40b9ae0 100644 --- a/fixtures/bitwise.php.uast +++ b/fixtures/bitwise.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_BinaryOp_BitwiseAnd { -. . . Roles: Expression,Binary,Operator,Bitwise,And +. . . Roles: And,Binary,Bitwise,Expression,Operator . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,10 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 3 @@ -54,11 +61,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_BinaryOp_BitwiseOr { -. . . Roles: Expression,Binary,Operator,Bitwise,Or +. . . Roles: Binary,Bitwise,Expression,Operator,Or . . . StartPosition: { . . . . Offset: 16 . . . . Line: 4 @@ -74,8 +90,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 4 @@ -89,10 +104,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 4 @@ -106,11 +129,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_BinaryOp_BitwiseXor { -. . . Roles: Expression,Binary,Operator,Bitwise,Xor +. . . Roles: Binary,Bitwise,Expression,Operator,Xor . . . StartPosition: { . . . . Offset: 25 . . . . Line: 5 @@ -126,8 +158,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "d" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 25 . . . . . . Line: 5 @@ -141,10 +172,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "e" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 5 @@ -158,11 +197,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_BitwiseNot { -. . . Roles: Expression,Unary,Operator,Bitwise,Not +. . . Roles: Bitwise,Expression,Not,Operator,Unary . . . StartPosition: { . . . . Offset: 34 . . . . Line: 6 @@ -179,7 +227,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 36 . . . . . . Line: 6 @@ -193,11 +240,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_BinaryOp_ShiftLeft { -. . . Roles: Expression,Binary,Operator,Bitwise,LeftShift +. . . Roles: Binary,Bitwise,Expression,LeftShift,Operator . . . StartPosition: { . . . . Offset: 40 . . . . Line: 7 @@ -213,8 +269,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "g" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 40 . . . . . . Line: 7 @@ -228,10 +283,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "g" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "h" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 46 . . . . . . Line: 7 @@ -245,11 +308,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "h" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Expr_BinaryOp_ShiftRight { -. . . Roles: Expression,Binary,Operator,Bitwise,RightShift +. . . Roles: Binary,Bitwise,Expression,Operator,RightShift . . . StartPosition: { . . . . Offset: 50 . . . . Line: 8 @@ -265,8 +337,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "i" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 50 . . . . . . Line: 8 @@ -280,10 +351,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "i" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "j" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 56 . . . . . . Line: 8 @@ -297,6 +376,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "j" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/block_comments.php.native b/fixtures/block_comments.php.native index 6134578..c8e3712 100644 --- a/fixtures/block_comments.php.native +++ b/fixtures/block_comments.php.native @@ -2,51 +2,54 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 7, - "line": 3, - "nodeType": "Comment", - "text": "// foo\n" - }, - { - "filePos": 20, - "line": 5, - "nodeType": "Comment", - "text": "// bar\n" - }, - { - "filePos": 41, - "line": 7, - "nodeType": "Comment", - "text": "// baz\n" - } - ], - "endFilePos": 57, - "endLine": 8, - "endTokenPos": 11, - "startFilePos": 56, - "startLine": 8, - "startTokenPos": 11 + "ast": { + "children": [ + { + "attributes": { + "comments": [ + { + "filePos": 7, + "line": 3, + "nodeType": "Comment", + "text": "// foo\n" + }, + { + "filePos": 20, + "line": 5, + "nodeType": "Comment", + "text": "// bar\n" + }, + { + "filePos": 41, + "line": 7, + "nodeType": "Comment", + "text": "// baz\n" + } + ], + "endFilePos": 57, + "endLine": 8, + "endTokenPos": 11, + "startFilePos": 56, + "startLine": 8, + "startTokenPos": 11 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "a", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "comments": [ - { - "filePos": 69, - "line": 12, - "nodeType": "Comment", - "text": "// empty\n" - } - ] - }, - "nodeType": "Stmt_Nop" - } - ] + { + "attributes": { + "comments": [ + { + "filePos": 69, + "line": 12, + "nodeType": "Comment", + "text": "// empty\n" + } + ] + }, + "nodeType": "Stmt_Nop" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/block_comments.php.uast b/fixtures/block_comments.php.uast index 223ece9..2eff9e5 100644 --- a/fixtures/block_comments.php.uast +++ b/fixtures/block_comments.php.uast @@ -2,12 +2,39 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { -. . 0: Expr_Variable { +. . 0: Stmt_Nop { +. . . Roles: Noop +. . . Properties: { +. . . . internalRole: children +. . . } +. . . Children: { +. . . . 0: { +. . . . . Properties: { +. . . . . . internalRole: attributes +. . . . . } +. . . . . Children: { +. . . . . . 0: Comment { +. . . . . . . Roles: Comment,Noop +. . . . . . . TOKEN " empty +" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . } +. . . . } +. . . } +. . } +. . 1: Expr_Variable { . . . Roles: Identifier,Variable -. . . TOKEN "a" . . . StartPosition: { . . . . Offset: 56 . . . . Line: 8 @@ -22,84 +49,50 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " foo -" -. . . . . StartPosition: { -. . . . . . Offset: 7 -. . . . . . Line: 3 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 14 -. . . . . . Line: 4 -. . . . . . Col: 1 -. . . . . } +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "a" . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: name . . . . . } . . . . } . . . . 1: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " bar +. . . . . Roles: Comment,Noop +. . . . . TOKEN " foo " . . . . . StartPosition: { -. . . . . . Offset: 20 -. . . . . . Line: 5 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 27 -. . . . . . Line: 6 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 2: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " baz +. . . . . Roles: Comment,Noop +. . . . . TOKEN " bar " . . . . . StartPosition: { -. . . . . . Offset: 41 -. . . . . . Line: 7 -. . . . . . Col: 9 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 48 -. . . . . . Line: 8 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } -. . . } -. . } -. . 1: Stmt_Nop { -. . . Roles: Noop -. . . Properties: { -. . . . internalRole: children -. . . } -. . . Children: { -. . . . 0: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " empty +. . . . 3: Comment { +. . . . . Roles: Comment,Noop +. . . . . TOKEN " baz " . . . . . StartPosition: { -. . . . . . Offset: 69 -. . . . . . Line: 12 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 78 -. . . . . . Line: 13 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . } diff --git a/fixtures/blockless_statements.php.native b/fixtures/blockless_statements.php.native index 833ce9c..f44d4ab 100644 --- a/fixtures/blockless_statements.php.native +++ b/fixtures/blockless_statements.php.native @@ -2,312 +2,315 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 42, - "endLine": 5, - "endTokenPos": 23, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 11, - "startLine": 3, - "startTokenPos": 5 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 42, "endLine": 5, "endTokenPos": 23, - "startFilePos": 35, - "startLine": 5, - "startTokenPos": 20 + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - "nodeType": "Stmt_Else", - "stmts": [ - { - "attributes": { - "endFilePos": 41, - "endLine": 5, - "endTokenPos": 22, - "startFilePos": 40, - "startLine": 5, - "startTokenPos": 22 - }, - "name": "C", - "nodeType": "Expr_Variable" - } - ] - }, - "elseifs": [ - { + "cond": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 11, + "startLine": 3, + "startTokenPos": 5 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "else": { "attributes": { - "endFilePos": 33, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 19, - "startLine": 4, - "startTokenPos": 11 + "endFilePos": 42, + "endLine": 5, + "endTokenPos": 23, + "startFilePos": 35, + "startLine": 5, + "startTokenPos": 20 }, - "cond": { + "nodeType": "Stmt_Else", + "stmts": [ + { + "attributes": { + "endFilePos": 41, + "endLine": 5, + "endTokenPos": 22, + "startFilePos": 40, + "startLine": 5, + "startTokenPos": 22 + }, + "name": "C", + "nodeType": "Expr_Variable" + } + ] + }, + "elseifs": [ + { "attributes": { - "endFilePos": 28, + "endFilePos": 33, "endLine": 4, - "endTokenPos": 14, - "startFilePos": 27, + "endTokenPos": 18, + "startFilePos": 19, "startLine": 4, - "startTokenPos": 14 + "startTokenPos": 11 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_ElseIf", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 32, + "endFilePos": 28, "endLine": 4, - "endTokenPos": 17, - "startFilePos": 31, + "endTokenPos": 14, + "startFilePos": 27, "startLine": 4, - "startTokenPos": 17 + "startTokenPos": 14 }, - "name": "B", + "name": "b", "nodeType": "Expr_Variable" - } - ] - } - ], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 16, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 15, - "startLine": 3, - "startTokenPos": 8 - }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 58, - "endLine": 7, - "endTokenPos": 33, - "startFilePos": 45, - "startLine": 7, - "startTokenPos": 25 + }, + "nodeType": "Stmt_ElseIf", + "stmts": [ + { + "attributes": { + "endFilePos": 32, + "endLine": 4, + "endTokenPos": 17, + "startFilePos": 31, + "startLine": 4, + "startTokenPos": 17 + }, + "name": "B", + "nodeType": "Expr_Variable" + } + ] + } + ], + "nodeType": "Stmt_If", + "stmts": [ + { + "attributes": { + "endFilePos": 16, + "endLine": 3, + "endTokenPos": 8, + "startFilePos": 15, + "startLine": 3, + "startTokenPos": 8 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] }, - "cond": [], - "init": [], - "loop": [], - "nodeType": "Stmt_For", - "stmts": [ - { - "attributes": { - "endFilePos": 57, - "endLine": 7, - "endTokenPos": 32, - "startFilePos": 54, - "startLine": 7, - "startTokenPos": 32 - }, - "name": "foo", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 83, - "endLine": 9, - "endTokenPos": 46, - "startFilePos": 61, - "startLine": 9, - "startTokenPos": 35 + { + "attributes": { + "endFilePos": 58, + "endLine": 7, + "endTokenPos": 33, + "startFilePos": 45, + "startLine": 7, + "startTokenPos": 25 + }, + "cond": [], + "init": [], + "loop": [], + "nodeType": "Stmt_For", + "stmts": [ + { + "attributes": { + "endFilePos": 57, + "endLine": 7, + "endTokenPos": 32, + "startFilePos": 54, + "startLine": 7, + "startTokenPos": 32 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + ] }, - "byRef": false, - "expr": { + { "attributes": { - "endFilePos": 71, + "endFilePos": 83, "endLine": 9, - "endTokenPos": 38, - "startFilePos": 70, + "endTokenPos": 46, + "startFilePos": 61, "startLine": 9, - "startTokenPos": 38 + "startTokenPos": 35 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": null, - "nodeType": "Stmt_Foreach", - "stmts": [ - { + "byRef": false, + "expr": { "attributes": { - "endFilePos": 82, + "endFilePos": 71, "endLine": 9, - "endTokenPos": 45, - "startFilePos": 80, + "endTokenPos": 38, + "startFilePos": 70, "startLine": 9, - "startTokenPos": 45 + "startTokenPos": 38 }, - "name": "AB", + "name": "a", "nodeType": "Expr_Variable" - } - ], - "valueVar": { - "attributes": { - "endFilePos": 77, - "endLine": 9, - "endTokenPos": 42, - "startFilePos": 76, - "startLine": 9, - "startTokenPos": 42 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 99, - "endLine": 11, - "endTokenPos": 55, - "startFilePos": 86, - "startLine": 11, - "startTokenPos": 48 + "keyVar": null, + "nodeType": "Stmt_Foreach", + "stmts": [ + { + "attributes": { + "endFilePos": 82, + "endLine": 9, + "endTokenPos": 45, + "startFilePos": 80, + "startLine": 9, + "startTokenPos": 45 + }, + "name": "AB", + "nodeType": "Expr_Variable" + } + ], + "valueVar": { + "attributes": { + "endFilePos": 77, + "endLine": 9, + "endTokenPos": 42, + "startFilePos": 76, + "startLine": 9, + "startTokenPos": 42 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "cond": { + { "attributes": { - "endFilePos": 94, + "endFilePos": 99, "endLine": 11, - "endTokenPos": 51, - "startFilePos": 93, + "endTokenPos": 55, + "startFilePos": 86, "startLine": 11, - "startTokenPos": 51 + "startTokenPos": 48 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_While", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 98, + "endFilePos": 94, "endLine": 11, - "endTokenPos": 54, - "startFilePos": 97, + "endTokenPos": 51, + "startFilePos": 93, "startLine": 11, - "startTokenPos": 54 + "startTokenPos": 51 }, - "name": "A", + "name": "a", "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 119, - "endLine": 13, - "endTokenPos": 67, - "startFilePos": 102, - "startLine": 13, - "startTokenPos": 57 + }, + "nodeType": "Stmt_While", + "stmts": [ + { + "attributes": { + "endFilePos": 98, + "endLine": 11, + "endTokenPos": 54, + "startFilePos": 97, + "startLine": 11, + "startTokenPos": 54 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] }, - "cond": { + { "attributes": { - "endFilePos": 117, + "endFilePos": 119, "endLine": 13, - "endTokenPos": 65, - "startFilePos": 116, + "endTokenPos": 67, + "startFilePos": 102, "startLine": 13, - "startTokenPos": 65 + "startTokenPos": 57 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Do", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 106, + "endFilePos": 117, "endLine": 13, - "endTokenPos": 59, - "startFilePos": 105, + "endTokenPos": 65, + "startFilePos": 116, "startLine": 13, - "startTokenPos": 59 + "startTokenPos": 65 }, - "name": "A", + "name": "a", "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 140, - "endLine": 15, - "endTokenPos": 78, - "startFilePos": 122, - "startLine": 15, - "startTokenPos": 69 + }, + "nodeType": "Stmt_Do", + "stmts": [ + { + "attributes": { + "endFilePos": 106, + "endLine": 13, + "endTokenPos": 59, + "startFilePos": 105, + "startLine": 13, + "startTokenPos": 59 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] }, - "declares": [ - { - "attributes": { - "endFilePos": 135, - "endLine": 15, - "endTokenPos": 74, - "startFilePos": 131, - "startLine": 15, - "startTokenPos": 72 - }, - "key": "a", - "nodeType": "Stmt_DeclareDeclare", - "value": { + { + "attributes": { + "endFilePos": 140, + "endLine": 15, + "endTokenPos": 78, + "startFilePos": 122, + "startLine": 15, + "startTokenPos": 69 + }, + "declares": [ + { "attributes": { "endFilePos": 135, "endLine": 15, "endTokenPos": 74, - "kind": 1, - "startFilePos": 133, + "startFilePos": 131, "startLine": 15, - "startTokenPos": 74 + "startTokenPos": 72 }, - "nodeType": "Scalar_String", - "value": "b" + "key": "a", + "nodeType": "Stmt_DeclareDeclare", + "value": { + "attributes": { + "endFilePos": 135, + "endLine": 15, + "endTokenPos": 74, + "kind": 1, + "startFilePos": 133, + "startLine": 15, + "startTokenPos": 74 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - ], - "nodeType": "Stmt_Declare", - "stmts": [ - { - "attributes": { - "endFilePos": 139, - "endLine": 15, - "endTokenPos": 77, - "startFilePos": 138, - "startLine": 15, - "startTokenPos": 77 - }, - "name": "C", - "nodeType": "Expr_Variable" - } - ] - } - ] + ], + "nodeType": "Stmt_Declare", + "stmts": [ + { + "attributes": { + "endFilePos": 139, + "endLine": 15, + "endTokenPos": 77, + "startFilePos": 138, + "startLine": 15, + "startTokenPos": 77 + }, + "name": "C", + "nodeType": "Expr_Variable" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/blockless_statements.php.uast b/fixtures/blockless_statements.php.uast index 50816e6..2f5472b 100644 --- a/fixtures/blockless_statements.php.uast +++ b/fixtures/blockless_statements.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_If { -. . . Roles: Statement,If +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 11 . . . . . . Line: 3 @@ -37,10 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "A" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 3 @@ -54,9 +61,18 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Stmt_ElseIf { -. . . . . Roles: Statement,If,Else +. . . . . Roles: Else,If,Statement . . . . . StartPosition: { . . . . . . Offset: 19 . . . . . . Line: 4 @@ -72,8 +88,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 27 . . . . . . . . Line: 4 @@ -87,10 +102,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Expression,Body -. . . . . . . TOKEN "B" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 31 . . . . . . . . Line: 4 @@ -104,11 +127,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: stmts . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "B" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 3: Stmt_Else { -. . . . . Roles: Statement,Else +. . . . . Roles: Else,Statement . . . . . StartPosition: { . . . . . . Offset: 35 . . . . . . Line: 5 @@ -124,8 +156,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Expression,Body -. . . . . . . TOKEN "C" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 40 . . . . . . . . Line: 5 @@ -139,13 +170,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: stmts . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "C" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 1: Stmt_For { -. . . Roles: Statement,For +. . . Roles: For,Statement . . . StartPosition: { . . . . Offset: 45 . . . . Line: 7 @@ -161,8 +201,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "foo" +. . . . . Roles: Body,For,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 54 . . . . . . Line: 7 @@ -176,11 +215,20 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "foo" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 61 . . . . Line: 9 @@ -198,7 +246,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 70 . . . . . . Line: 9 @@ -212,10 +259,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 76 . . . . . . Line: 9 @@ -229,10 +284,18 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "AB" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 80 . . . . . . Line: 9 @@ -246,6 +309,15 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "AB" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -266,8 +338,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 93 . . . . . . Line: 11 @@ -281,10 +352,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "A" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 11 @@ -298,11 +377,20 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Stmt_Do { -. . . Roles: Statement,DoWhile +. . . Roles: DoWhile,Statement . . . StartPosition: { . . . . Offset: 102 . . . . Line: 13 @@ -318,8 +406,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "A" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 105 . . . . . . Line: 13 @@ -333,10 +420,18 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 116 . . . . . . Line: 13 @@ -350,11 +445,20 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Stmt_Declare { -. . . Roles: Expression,Assignment,Incomplete +. . . Roles: Assignment,Expression,Incomplete . . . StartPosition: { . . . . Offset: 122 . . . . Line: 15 @@ -387,7 +491,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Right +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . TOKEN "b" . . . . . . . StartPosition: { . . . . . . . . Offset: 133 @@ -405,22 +509,38 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "C" -. . . . . StartPosition: { -. . . . . . Offset: 138 -. . . . . . Line: 15 -. . . . . . Col: 17 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 139 -. . . . . . Line: 15 -. . . . . . Col: 18 -. . . . . } +. . . . 1: Declare.stmts { +. . . . . Roles: Assignment,Body . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Expr_Variable { +. . . . . . . Roles: Identifier,Variable +. . . . . . . StartPosition: { +. . . . . . . . Offset: 138 +. . . . . . . . Line: 15 +. . . . . . . . Col: 17 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 139 +. . . . . . . . Line: 15 +. . . . . . . . Col: 18 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: stmts +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "C" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/bool.php.native b/fixtures/bool.php.native index a7cc929..fb0d95e 100644 --- a/fixtures/bool.php.native +++ b/fixtures/bool.php.native @@ -2,26 +2,18 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 17, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 17, "endLine": 3, "endTokenPos": 6, - "startFilePos": 14, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 6 + "startTokenPos": 2 }, - "name": { + "expr": { "attributes": { "endFilePos": 17, "endLine": 3, @@ -30,46 +22,46 @@ "startLine": 3, "startTokenPos": 6 }, - "nodeType": "Name", - "parts": [ - "true" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 10, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "name": { + "attributes": { + "endFilePos": 17, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 14, + "startLine": 3, + "startTokenPos": 6 + }, + "nodeType": "Name", + "parts": [ + "true" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 9 + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 10, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 31, "endLine": 4, "endTokenPos": 13, - "startFilePos": 27, + "startFilePos": 20, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 9 }, - "name": { + "expr": { "attributes": { "endFilePos": 31, "endLine": 4, @@ -78,26 +70,37 @@ "startLine": 4, "startTokenPos": 13 }, - "nodeType": "Name", - "parts": [ - "false" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 23, - "endLine": 4, - "endTokenPos": 9, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 9 + "name": { + "attributes": { + "endFilePos": 31, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 27, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Name", + "parts": [ + "false" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "name": "bar", - "nodeType": "Expr_Variable" + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 23, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 20, + "startLine": 4, + "startTokenPos": 9 + }, + "name": "bar", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/bool.php.uast b/fixtures/bool.php.uast index d169e24..f466529 100644 --- a/fixtures/bool.php.uast +++ b/fixtures/bool.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "foo" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,9 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "foo" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_ConstFetch { -. . . . . Roles: Expression,Variable,Incomplete,Right +. . . . . Roles: Expression,Incomplete,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 14 . . . . . . Line: 3 @@ -76,7 +84,7 @@ File { . . . } . . } . . 1: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 20 . . . . Line: 4 @@ -92,8 +100,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "bar" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 4 @@ -107,9 +114,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "bar" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_ConstFetch { -. . . . . Roles: Expression,Variable,Incomplete,Right +. . . . . Roles: Expression,Incomplete,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 4 diff --git a/fixtures/cast.php.native b/fixtures/cast.php.native index 8688476..69065ca 100644 --- a/fixtures/cast.php.native +++ b/fixtures/cast.php.native @@ -2,259 +2,262 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 17, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 17, "endLine": 2, "endTokenPos": 3, - "startFilePos": 16, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Array" - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 20, - "startLine": 3, - "startTokenPos": 6 + "expr": { + "attributes": { + "endFilePos": 17, + "endLine": 2, + "endTokenPos": 3, + "startFilePos": 16, + "startLine": 2, + "startTokenPos": 3 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Array" }, - "expr": { + { "attributes": { "endFilePos": 31, "endLine": 3, "endTokenPos": 8, - "startFilePos": 30, + "startFilePos": 20, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 6 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Bool" - }, - { - "attributes": { - "endFilePos": 45, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 34, - "startLine": 4, - "startTokenPos": 11 + "expr": { + "attributes": { + "endFilePos": 31, + "endLine": 3, + "endTokenPos": 8, + "startFilePos": 30, + "startLine": 3, + "startTokenPos": 8 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Bool" }, - "expr": { + { "attributes": { "endFilePos": 45, "endLine": 4, "endTokenPos": 13, - "startFilePos": 44, + "startFilePos": 34, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 11 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Bool" - }, - { - "attributes": { - "endFilePos": 59, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 48, - "startLine": 5, - "startTokenPos": 16 + "expr": { + "attributes": { + "endFilePos": 45, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 44, + "startLine": 4, + "startTokenPos": 13 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Bool" }, - "expr": { + { "attributes": { "endFilePos": 59, "endLine": 5, "endTokenPos": 18, - "startFilePos": 58, + "startFilePos": 48, "startLine": 5, - "startTokenPos": 18 + "startTokenPos": 16 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Double" - }, - { - "attributes": { - "endFilePos": 73, - "endLine": 6, - "endTokenPos": 23, - "startFilePos": 62, - "startLine": 6, - "startTokenPos": 21 + "expr": { + "attributes": { + "endFilePos": 59, + "endLine": 5, + "endTokenPos": 18, + "startFilePos": 58, + "startLine": 5, + "startTokenPos": 18 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Double" }, - "expr": { + { "attributes": { "endFilePos": 73, "endLine": 6, "endTokenPos": 23, - "startFilePos": 72, + "startFilePos": 62, "startLine": 6, - "startTokenPos": 23 + "startTokenPos": 21 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Double" - }, - { - "attributes": { - "endFilePos": 87, - "endLine": 7, - "endTokenPos": 28, - "startFilePos": 76, - "startLine": 7, - "startTokenPos": 26 + "expr": { + "attributes": { + "endFilePos": 73, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 72, + "startLine": 6, + "startTokenPos": 23 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Double" }, - "expr": { + { "attributes": { "endFilePos": 87, "endLine": 7, "endTokenPos": 28, - "startFilePos": 86, + "startFilePos": 76, "startLine": 7, - "startTokenPos": 28 + "startTokenPos": 26 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Double" - }, - { - "attributes": { - "endFilePos": 101, - "endLine": 8, - "endTokenPos": 33, - "startFilePos": 90, - "startLine": 8, - "startTokenPos": 31 + "expr": { + "attributes": { + "endFilePos": 87, + "endLine": 7, + "endTokenPos": 28, + "startFilePos": 86, + "startLine": 7, + "startTokenPos": 28 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Double" }, - "expr": { + { "attributes": { "endFilePos": 101, "endLine": 8, "endTokenPos": 33, - "startFilePos": 100, + "startFilePos": 90, "startLine": 8, - "startTokenPos": 33 + "startTokenPos": 31 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Int" - }, - { - "attributes": { - "endFilePos": 115, - "endLine": 9, - "endTokenPos": 38, - "startFilePos": 104, - "startLine": 9, - "startTokenPos": 36 + "expr": { + "attributes": { + "endFilePos": 101, + "endLine": 8, + "endTokenPos": 33, + "startFilePos": 100, + "startLine": 8, + "startTokenPos": 33 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Int" }, - "expr": { + { "attributes": { "endFilePos": 115, "endLine": 9, "endTokenPos": 38, - "startFilePos": 114, + "startFilePos": 104, "startLine": 9, - "startTokenPos": 38 + "startTokenPos": 36 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Int" - }, - { - "attributes": { - "endFilePos": 129, - "endLine": 10, - "endTokenPos": 43, - "startFilePos": 118, - "startLine": 10, - "startTokenPos": 41 + "expr": { + "attributes": { + "endFilePos": 115, + "endLine": 9, + "endTokenPos": 38, + "startFilePos": 114, + "startLine": 9, + "startTokenPos": 38 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Int" }, - "expr": { + { "attributes": { "endFilePos": 129, "endLine": 10, "endTokenPos": 43, - "startFilePos": 128, + "startFilePos": 118, "startLine": 10, - "startTokenPos": 43 + "startTokenPos": 41 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Object" - }, - { - "attributes": { - "endFilePos": 143, - "endLine": 11, - "endTokenPos": 48, - "startFilePos": 132, - "startLine": 11, - "startTokenPos": 46 + "expr": { + "attributes": { + "endFilePos": 129, + "endLine": 10, + "endTokenPos": 43, + "startFilePos": 128, + "startLine": 10, + "startTokenPos": 43 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Object" }, - "expr": { + { "attributes": { "endFilePos": 143, "endLine": 11, "endTokenPos": 48, - "startFilePos": 142, + "startFilePos": 132, "startLine": 11, - "startTokenPos": 48 + "startTokenPos": 46 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_String" - }, - { - "attributes": { - "endFilePos": 157, - "endLine": 12, - "endTokenPos": 53, - "startFilePos": 146, - "startLine": 12, - "startTokenPos": 51 + "expr": { + "attributes": { + "endFilePos": 143, + "endLine": 11, + "endTokenPos": 48, + "startFilePos": 142, + "startLine": 11, + "startTokenPos": 48 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_String" }, - "expr": { + { "attributes": { "endFilePos": 157, "endLine": 12, "endTokenPos": 53, - "startFilePos": 156, + "startFilePos": 146, "startLine": 12, - "startTokenPos": 53 + "startTokenPos": 51 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Cast_Unset" - } - ] + "expr": { + "attributes": { + "endFilePos": 157, + "endLine": 12, + "endTokenPos": 53, + "startFilePos": 156, + "startLine": 12, + "startTokenPos": 53 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Cast_Unset" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/cast.php.uast b/fixtures/cast.php.uast index 7cbaa5a..a0b4ea4 100644 --- a/fixtures/cast.php.uast +++ b/fixtures/cast.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Cast_Array { -. . . Roles: Expression,List,Incomplete +. . . Roles: Expression,Incomplete,List . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 2 @@ -37,11 +36,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_Cast_Bool { -. . . Roles: Expression,Boolean,Incomplete +. . . Roles: Boolean,Expression,Incomplete . . . StartPosition: { . . . . Offset: 20 . . . . Line: 3 @@ -58,7 +66,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 3 @@ -72,11 +79,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_Cast_Bool { -. . . Roles: Expression,Boolean,Incomplete +. . . Roles: Boolean,Expression,Incomplete . . . StartPosition: { . . . . Offset: 34 . . . . Line: 4 @@ -93,7 +109,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 44 . . . . . . Line: 4 @@ -107,11 +122,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_Cast_Double { -. . . Roles: Expression,Number,Incomplete +. . . Roles: Expression,Incomplete,Number . . . StartPosition: { . . . . Offset: 48 . . . . Line: 5 @@ -128,7 +152,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 58 . . . . . . Line: 5 @@ -142,11 +165,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_Cast_Double { -. . . Roles: Expression,Number,Incomplete +. . . Roles: Expression,Incomplete,Number . . . StartPosition: { . . . . Offset: 62 . . . . Line: 6 @@ -163,7 +195,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 72 . . . . . . Line: 6 @@ -177,11 +208,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Expr_Cast_Double { -. . . Roles: Expression,Number,Incomplete +. . . Roles: Expression,Incomplete,Number . . . StartPosition: { . . . . Offset: 76 . . . . Line: 7 @@ -198,7 +238,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 86 . . . . . . Line: 7 @@ -212,11 +251,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_Cast_Int { -. . . Roles: Expression,Number,Incomplete +. . . Roles: Expression,Incomplete,Number . . . StartPosition: { . . . . Offset: 90 . . . . Line: 8 @@ -233,7 +281,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 100 . . . . . . Line: 8 @@ -247,11 +294,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Expr_Cast_Int { -. . . Roles: Expression,Number,Incomplete +. . . Roles: Expression,Incomplete,Number . . . StartPosition: { . . . . Offset: 104 . . . . Line: 9 @@ -268,7 +324,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 114 . . . . . . Line: 9 @@ -282,11 +337,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 8: Expr_Cast_Object { -. . . Roles: Expression,Type,Incomplete +. . . Roles: Expression,Incomplete,Type . . . StartPosition: { . . . . Offset: 118 . . . . Line: 10 @@ -303,7 +367,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 128 . . . . . . Line: 10 @@ -317,11 +380,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 9: Expr_Cast_String { -. . . Roles: Expression,String,Incomplete +. . . Roles: Expression,Incomplete,String . . . StartPosition: { . . . . Offset: 132 . . . . Line: 11 @@ -338,7 +410,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 142 . . . . . . Line: 11 @@ -352,6 +423,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -373,7 +453,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 156 . . . . . . Line: 12 @@ -387,6 +466,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/class_abstract.php.native b/fixtures/class_abstract.php.native index 2535488..4697b84 100644 --- a/fixtures/class_abstract.php.native +++ b/fixtures/class_abstract.php.native @@ -2,60 +2,63 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 87, - "endLine": 6, - "endTokenPos": 32, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": null, - "flags": 16, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 51, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 30, - "startLine": 4, - "startTokenPos": 10 - }, - "byRef": false, - "flags": 1, - "name": "a", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 87, + "endLine": 6, + "endTokenPos": 32, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "attributes": { - "endFilePos": 85, - "endLine": 5, - "endTokenPos": 30, - "startFilePos": 57, - "startLine": 5, - "startTokenPos": 21 + "extends": null, + "flags": 16, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 51, + "endLine": 4, + "endTokenPos": 19, + "startFilePos": 30, + "startLine": 4, + "startTokenPos": 10 + }, + "byRef": false, + "flags": 1, + "name": "a", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 }, - "byRef": false, - "flags": 17, - "name": "b", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": null, - "type": 17 - } - ], - "type": 16 - } - ] + { + "attributes": { + "endFilePos": 85, + "endLine": 5, + "endTokenPos": 30, + "startFilePos": 57, + "startLine": 5, + "startTokenPos": 21 + }, + "byRef": false, + "flags": 17, + "name": "b", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": null, + "type": 17 + } + ], + "type": 16 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_abstract.php.uast b/fixtures/class_abstract.php.uast index 437edfe..77235fe 100644 --- a/fixtures/class_abstract.php.uast +++ b/fixtures/class_abstract.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -24,9 +23,15 @@ File { . . . . type: 16 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "a" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 4 @@ -43,10 +48,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "b" +. . . . 2: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 57 . . . . . . Line: 5 @@ -63,6 +76,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 17 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/class_conditional.php.native b/fixtures/class_conditional.php.native index bb41c1a..074f2d9 100644 --- a/fixtures/class_conditional.php.native +++ b/fixtures/class_conditional.php.native @@ -2,26 +2,18 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 34, - "endLine": 5, - "endTokenPos": 17, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 11, + "endFilePos": 34, + "endLine": 5, + "endTokenPos": 17, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 5 + "startTokenPos": 2 }, - "name": { + "cond": { "attributes": { "endFilePos": 14, "endLine": 3, @@ -30,35 +22,46 @@ "startLine": 3, "startTokenPos": 5 }, - "nodeType": "Name", - "parts": [ - "true" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 32, - "endLine": 4, - "endTokenPos": 15, - "startFilePos": 23, - "startLine": 4, - "startTokenPos": 10 + "name": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 11, + "startLine": 3, + "startTokenPos": 5 + }, + "nodeType": "Name", + "parts": [ + "true" + ] }, - "extends": null, - "flags": 0, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 0 - } - ] - } - ] + "nodeType": "Expr_ConstFetch" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { + "attributes": { + "endFilePos": 32, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 23, + "startLine": 4, + "startTokenPos": 10 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_conditional.php.uast b/fixtures/class_conditional.php.uast index e2d673b..eaf4184 100644 --- a/fixtures/class_conditional.php.uast +++ b/fixtures/class_conditional.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_If { -. . . Roles: Statement,If +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ConstFetch { -. . . . . Roles: Expression,Variable,Incomplete,Condition +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 11 . . . . . . Line: 3 @@ -57,8 +57,7 @@ File { . . . . . } . . . . } . . . . 1: Stmt_Class { -. . . . . Roles: Expression,Body,Statement,Declaration,Type -. . . . . TOKEN "A" +. . . . . Roles: Declaration,Statement,Type . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 4 @@ -74,6 +73,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/class_const_modifiers.php.native b/fixtures/class_const_modifiers.php.native index 3774ff3..7e5db71 100644 --- a/fixtures/class_const_modifiers.php.native +++ b/fixtures/class_const_modifiers.php.native @@ -2,180 +2,183 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 112, - "endLine": 8, - "endTokenPos": 50, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "Foo", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 34, - "endLine": 4, - "endTokenPos": 15, - "startFilePos": 23, - "startLine": 4, - "startTokenPos": 8 - }, - "consts": [ - { - "attributes": { - "endFilePos": 33, - "endLine": 4, - "endTokenPos": 14, - "startFilePos": 29, - "startLine": 4, - "startTokenPos": 10 - }, - "name": "A", - "nodeType": "Const", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 112, + "endLine": 8, + "endTokenPos": 50, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "Foo", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 34, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 23, + "startLine": 4, + "startTokenPos": 8 + }, + "consts": [ + { "attributes": { "endFilePos": 33, "endLine": 4, "endTokenPos": 14, - "kind": 10, - "startFilePos": 33, + "startFilePos": 29, "startLine": 4, - "startTokenPos": 14 + "startTokenPos": 10 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "name": "A", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 33, + "endLine": 4, + "endTokenPos": 14, + "kind": 10, + "startFilePos": 33, + "startLine": 4, + "startTokenPos": 14 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } - } - ], - "flags": 0, - "nodeType": "Stmt_ClassConst" - }, - { - "attributes": { - "endFilePos": 58, - "endLine": 5, - "endTokenPos": 26, - "startFilePos": 40, - "startLine": 5, - "startTokenPos": 17 + ], + "flags": 0, + "nodeType": "Stmt_ClassConst" }, - "consts": [ - { - "attributes": { - "endFilePos": 57, - "endLine": 5, - "endTokenPos": 25, - "startFilePos": 53, - "startLine": 5, - "startTokenPos": 21 - }, - "name": "B", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 58, + "endLine": 5, + "endTokenPos": 26, + "startFilePos": 40, + "startLine": 5, + "startTokenPos": 17 + }, + "consts": [ + { "attributes": { "endFilePos": 57, "endLine": 5, "endTokenPos": 25, - "kind": 10, - "startFilePos": 57, + "startFilePos": 53, "startLine": 5, - "startTokenPos": 25 + "startTokenPos": 21 }, - "nodeType": "Scalar_LNumber", - "value": 2 + "name": "B", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 57, + "endLine": 5, + "endTokenPos": 25, + "kind": 10, + "startFilePos": 57, + "startLine": 5, + "startTokenPos": 25 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } } - } - ], - "flags": 1, - "nodeType": "Stmt_ClassConst" - }, - { - "attributes": { - "endFilePos": 85, - "endLine": 6, - "endTokenPos": 37, - "startFilePos": 64, - "startLine": 6, - "startTokenPos": 28 + ], + "flags": 1, + "nodeType": "Stmt_ClassConst" }, - "consts": [ - { - "attributes": { - "endFilePos": 84, - "endLine": 6, - "endTokenPos": 36, - "startFilePos": 80, - "startLine": 6, - "startTokenPos": 32 - }, - "name": "C", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 85, + "endLine": 6, + "endTokenPos": 37, + "startFilePos": 64, + "startLine": 6, + "startTokenPos": 28 + }, + "consts": [ + { "attributes": { "endFilePos": 84, "endLine": 6, "endTokenPos": 36, - "kind": 10, - "startFilePos": 84, + "startFilePos": 80, "startLine": 6, - "startTokenPos": 36 + "startTokenPos": 32 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "name": "C", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 84, + "endLine": 6, + "endTokenPos": 36, + "kind": 10, + "startFilePos": 84, + "startLine": 6, + "startTokenPos": 36 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "flags": 2, - "nodeType": "Stmt_ClassConst" - }, - { - "attributes": { - "endFilePos": 110, - "endLine": 7, - "endTokenPos": 48, - "startFilePos": 91, - "startLine": 7, - "startTokenPos": 39 + ], + "flags": 2, + "nodeType": "Stmt_ClassConst" }, - "consts": [ - { - "attributes": { - "endFilePos": 109, - "endLine": 7, - "endTokenPos": 47, - "startFilePos": 105, - "startLine": 7, - "startTokenPos": 43 - }, - "name": "D", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 110, + "endLine": 7, + "endTokenPos": 48, + "startFilePos": 91, + "startLine": 7, + "startTokenPos": 39 + }, + "consts": [ + { "attributes": { "endFilePos": 109, "endLine": 7, "endTokenPos": 47, - "kind": 10, - "startFilePos": 109, + "startFilePos": 105, "startLine": 7, - "startTokenPos": 47 + "startTokenPos": 43 }, - "nodeType": "Scalar_LNumber", - "value": 4 + "name": "D", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 109, + "endLine": 7, + "endTokenPos": 47, + "kind": 10, + "startFilePos": 109, + "startLine": 7, + "startTokenPos": 47 + }, + "nodeType": "Scalar_LNumber", + "value": 4 + } } - } - ], - "flags": 4, - "nodeType": "Stmt_ClassConst" - } - ], - "type": 0 - } - ] + ], + "flags": 4, + "nodeType": "Stmt_ClassConst" + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_const_modifiers.php.uast b/fixtures/class_const_modifiers.php.uast index 9aaae84..786fa11 100644 --- a/fixtures/class_const_modifiers.php.uast +++ b/fixtures/class_const_modifiers.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "Foo" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -24,8 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "Foo" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassConst { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 4 @@ -42,8 +48,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "A" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 29 . . . . . . . . Line: 4 @@ -58,7 +63,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { . . . . . . . . . Roles: Expression,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { @@ -79,8 +91,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 2: Stmt_ClassConst { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 40 . . . . . . Line: 5 @@ -97,8 +109,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "B" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 53 . . . . . . . . Line: 5 @@ -113,7 +124,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "B" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { . . . . . . . . . Roles: Expression,Literal,Number . . . . . . . . . TOKEN "2" . . . . . . . . . StartPosition: { @@ -134,8 +152,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 2: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 3: Stmt_ClassConst { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 64 . . . . . . Line: 6 @@ -152,8 +170,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "C" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 80 . . . . . . . . Line: 6 @@ -168,7 +185,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "C" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { . . . . . . . . . Roles: Expression,Literal,Number . . . . . . . . . TOKEN "3" . . . . . . . . . StartPosition: { @@ -189,8 +213,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 3: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 4: Stmt_ClassConst { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 91 . . . . . . Line: 7 @@ -207,8 +231,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "D" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 105 . . . . . . . . Line: 7 @@ -223,7 +246,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "D" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { . . . . . . . . . Roles: Expression,Literal,Number . . . . . . . . . TOKEN "4" . . . . . . . . . StartPosition: { diff --git a/fixtures/class_final.php.native b/fixtures/class_final.php.native index 1560657..9dfa73a 100644 --- a/fixtures/class_final.php.native +++ b/fixtures/class_final.php.native @@ -2,23 +2,26 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 22, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": null, - "flags": 32, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 32 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 22, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "extends": null, + "flags": 32, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 32 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_final.php.uast b/fixtures/class_final.php.uast index 5d917b3..fe80df1 100644 --- a/fixtures/class_final.php.uast +++ b/fixtures/class_final.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,6 +22,15 @@ File { . . . . internalRole: children . . . . type: 32 . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/class_implicitPublic.php.native b/fixtures/class_implicitPublic.php.native index 169893d..1d3b630 100644 --- a/fixtures/class_implicitPublic.php.native +++ b/fixtures/class_implicitPublic.php.native @@ -2,170 +2,173 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 186, - "endLine": 11, - "endTokenPos": 73, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": null, - "flags": 16, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 30, - "startLine": 4, - "startTokenPos": 10 - }, - "flags": 0, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 4, - "endTokenPos": 12, - "startFilePos": 34, - "startLine": 4, - "startTokenPos": 12 - }, - "default": null, - "name": "a", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 0 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 186, + "endLine": 11, + "endTokenPos": 73, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "attributes": { - "endFilePos": 51, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 42, - "startLine": 5, - "startTokenPos": 15 + "extends": null, + "flags": 16, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 36, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 30, + "startLine": 4, + "startTokenPos": 10 + }, + "flags": 0, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 35, + "endLine": 4, + "endTokenPos": 12, + "startFilePos": 34, + "startLine": 4, + "startTokenPos": 12 + }, + "default": null, + "name": "a", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 0 }, - "flags": 8, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 50, - "endLine": 5, - "endTokenPos": 17, - "startFilePos": 49, - "startLine": 5, - "startTokenPos": 17 - }, - "default": null, - "name": "b", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 8 - }, - { - "attributes": { - "endFilePos": 78, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 57, - "startLine": 6, - "startTokenPos": 20 + { + "attributes": { + "endFilePos": 51, + "endLine": 5, + "endTokenPos": 18, + "startFilePos": 42, + "startLine": 5, + "startTokenPos": 15 + }, + "flags": 8, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 50, + "endLine": 5, + "endTokenPos": 17, + "startFilePos": 49, + "startLine": 5, + "startTokenPos": 17 + }, + "default": null, + "name": "b", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 8 }, - "byRef": false, - "flags": 16, - "name": "c", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": null, - "type": 16 - }, - { - "attributes": { - "endFilePos": 104, - "endLine": 7, - "endTokenPos": 38, - "startFilePos": 84, - "startLine": 7, - "startTokenPos": 29 + { + "attributes": { + "endFilePos": 78, + "endLine": 6, + "endTokenPos": 27, + "startFilePos": 57, + "startLine": 6, + "startTokenPos": 20 + }, + "byRef": false, + "flags": 16, + "name": "c", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": null, + "type": 16 }, - "byRef": false, - "flags": 32, - "name": "d", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 32 - }, - { - "attributes": { - "endFilePos": 131, - "endLine": 8, - "endTokenPos": 49, - "startFilePos": 110, - "startLine": 8, - "startTokenPos": 40 + { + "attributes": { + "endFilePos": 104, + "endLine": 7, + "endTokenPos": 38, + "startFilePos": 84, + "startLine": 7, + "startTokenPos": 29 + }, + "byRef": false, + "flags": 32, + "name": "d", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 32 }, - "byRef": false, - "flags": 8, - "name": "e", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 8 - }, - { - "attributes": { - "endFilePos": 164, - "endLine": 9, - "endTokenPos": 62, - "startFilePos": 137, - "startLine": 9, - "startTokenPos": 51 + { + "attributes": { + "endFilePos": 131, + "endLine": 8, + "endTokenPos": 49, + "startFilePos": 110, + "startLine": 8, + "startTokenPos": 40 + }, + "byRef": false, + "flags": 8, + "name": "e", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 8 }, - "byRef": false, - "flags": 40, - "name": "f", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 40 - }, - { - "attributes": { - "endFilePos": 184, - "endLine": 10, - "endTokenPos": 71, - "startFilePos": 170, - "startLine": 10, - "startTokenPos": 64 + { + "attributes": { + "endFilePos": 164, + "endLine": 9, + "endTokenPos": 62, + "startFilePos": 137, + "startLine": 9, + "startTokenPos": 51 + }, + "byRef": false, + "flags": 40, + "name": "f", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 40 }, - "byRef": false, - "flags": 0, - "name": "g", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 0 - } - ], - "type": 16 - } - ] + { + "attributes": { + "endFilePos": 184, + "endLine": 10, + "endTokenPos": 71, + "startFilePos": 170, + "startLine": 10, + "startTokenPos": 64 + }, + "byRef": false, + "flags": 0, + "name": "g", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 0 + } + ], + "type": 16 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_implicitPublic.php.uast b/fixtures/class_implicitPublic.php.uast index 9bb0f4b..0d0ab06 100644 --- a/fixtures/class_implicitPublic.php.uast +++ b/fixtures/class_implicitPublic.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -24,8 +23,15 @@ File { . . . . type: 16 . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 4 @@ -43,8 +49,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "a" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 34 . . . . . . . . Line: 4 @@ -58,11 +63,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 2: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 42 . . . . . . Line: 5 @@ -80,8 +94,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "b" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 49 . . . . . . . . Line: 5 @@ -95,12 +108,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 2: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "c" +. . . . 3: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 57 . . . . . . Line: 6 @@ -117,10 +138,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 16 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 3: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "d" +. . . . 4: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 84 . . . . . . Line: 7 @@ -137,10 +166,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 32 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 4: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "e" +. . . . 5: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 110 . . . . . . Line: 8 @@ -157,10 +194,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 8 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 5: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "f" +. . . . 6: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 137 . . . . . . Line: 9 @@ -177,10 +222,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 40 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 6: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "g" +. . . . 7: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 170 . . . . . . Line: 10 @@ -197,6 +250,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "g" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/class_php4Style.php.native b/fixtures/class_php4Style.php.native index 963d622..815dcae 100644 --- a/fixtures/class_php4Style.php.native +++ b/fixtures/class_php4Style.php.native @@ -2,88 +2,91 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 91, - "endLine": 7, - "endTokenPos": 35, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 29, - "endLine": 4, - "endTokenPos": 11, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 8 - }, - "flags": 0, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 28, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 25, - "startLine": 4, - "startTokenPos": 10 - }, - "default": null, - "name": "foo", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 0 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 91, + "endLine": 7, + "endTokenPos": 35, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "attributes": { - "endFilePos": 51, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 35, - "startLine": 5, - "startTokenPos": 13 + "extends": null, + "flags": 0, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 29, + "endLine": 4, + "endTokenPos": 11, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 8 + }, + "flags": 0, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 28, + "endLine": 4, + "endTokenPos": 10, + "startFilePos": 25, + "startLine": 4, + "startTokenPos": 10 + }, + "default": null, + "name": "foo", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 0 }, - "byRef": false, - "flags": 0, - "name": "bar", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 0 - }, - { - "attributes": { - "endFilePos": 89, - "endLine": 6, - "endTokenPos": 33, - "startFilePos": 57, - "startLine": 6, - "startTokenPos": 22 + { + "attributes": { + "endFilePos": 51, + "endLine": 5, + "endTokenPos": 20, + "startFilePos": 35, + "startLine": 5, + "startTokenPos": 13 + }, + "byRef": false, + "flags": 0, + "name": "bar", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 0 }, - "byRef": false, - "flags": 24, - "name": "baz", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 24 - } - ], - "type": 0 - } - ] + { + "attributes": { + "endFilePos": 89, + "endLine": 6, + "endTokenPos": 33, + "startFilePos": 57, + "startLine": 6, + "startTokenPos": 22 + }, + "byRef": false, + "flags": 24, + "name": "baz", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 24 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_php4Style.php.uast b/fixtures/class_php4Style.php.uast index 36e263a..8ffc758 100644 --- a/fixtures/class_php4Style.php.uast +++ b/fixtures/class_php4Style.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -24,8 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 4 @@ -43,8 +49,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "foo" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 25 . . . . . . . . Line: 4 @@ -58,12 +63,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "foo" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "bar" +. . . . 2: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 35 . . . . . . Line: 5 @@ -80,10 +93,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "bar" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 2: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "baz" +. . . . 3: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 57 . . . . . . Line: 6 @@ -100,6 +121,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 24 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "baz" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/class_simple.php.native b/fixtures/class_simple.php.native index 7a54f04..567e0b8 100644 --- a/fixtures/class_simple.php.native +++ b/fixtures/class_simple.php.native @@ -2,371 +2,374 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 296, - "endLine": 15, - "endTokenPos": 125, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 23, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 23, + "endFilePos": 296, + "endLine": 15, + "endTokenPos": 125, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "B" - ] - }, - "flags": 0, - "implements": [ - { + "extends": { "attributes": { - "endFilePos": 36, + "endFilePos": 23, "endLine": 3, - "endTokenPos": 12, - "startFilePos": 36, + "endTokenPos": 8, + "startFilePos": 23, "startLine": 3, - "startTokenPos": 12 + "startTokenPos": 8 }, "nodeType": "Name", "parts": [ - "C" + "B" ] }, - { - "attributes": { - "endFilePos": 39, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 39, - "startLine": 3, - "startTokenPos": 15 - }, - "nodeType": "Name", - "parts": [ - "D" - ] - } - ], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 69, - "endLine": 4, - "endTokenPos": 33, - "startFilePos": 47, - "startLine": 4, - "startTokenPos": 19 + "flags": 0, + "implements": [ + { + "attributes": { + "endFilePos": 36, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 36, + "startLine": 3, + "startTokenPos": 12 + }, + "nodeType": "Name", + "parts": [ + "C" + ] }, - "consts": [ - { - "attributes": { - "endFilePos": 59, - "endLine": 4, - "endTokenPos": 25, - "startFilePos": 53, - "startLine": 4, - "startTokenPos": 21 - }, - "name": "A", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 39, + "endLine": 3, + "endTokenPos": 15, + "startFilePos": 39, + "startLine": 3, + "startTokenPos": 15 + }, + "nodeType": "Name", + "parts": [ + "D" + ] + } + ], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 69, + "endLine": 4, + "endTokenPos": 33, + "startFilePos": 47, + "startLine": 4, + "startTokenPos": 19 + }, + "consts": [ + { "attributes": { "endFilePos": 59, "endLine": 4, "endTokenPos": 25, - "kind": 1, - "startFilePos": 57, + "startFilePos": 53, "startLine": 4, - "startTokenPos": 25 + "startTokenPos": 21 }, - "nodeType": "Scalar_String", - "value": "B" - } - }, - { - "attributes": { - "endFilePos": 68, - "endLine": 4, - "endTokenPos": 32, - "startFilePos": 62, - "startLine": 4, - "startTokenPos": 28 + "name": "A", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 59, + "endLine": 4, + "endTokenPos": 25, + "kind": 1, + "startFilePos": 57, + "startLine": 4, + "startTokenPos": 25 + }, + "nodeType": "Scalar_String", + "value": "B" + } }, - "name": "C", - "nodeType": "Const", - "value": { + { "attributes": { "endFilePos": 68, "endLine": 4, "endTokenPos": 32, - "kind": 1, - "startFilePos": 66, + "startFilePos": 62, "startLine": 4, - "startTokenPos": 32 + "startTokenPos": 28 }, - "nodeType": "Scalar_String", - "value": "D" + "name": "C", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 68, + "endLine": 4, + "endTokenPos": 32, + "kind": 1, + "startFilePos": 66, + "startLine": 4, + "startTokenPos": 32 + }, + "nodeType": "Scalar_String", + "value": "D" + } } - } - ], - "flags": 0, - "nodeType": "Stmt_ClassConst" - }, - { - "attributes": { - "endFilePos": 101, - "endLine": 6, - "endTokenPos": 49, - "startFilePos": 76, - "startLine": 6, - "startTokenPos": 35 + ], + "flags": 0, + "nodeType": "Stmt_ClassConst" }, - "flags": 1, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 90, - "endLine": 6, - "endTokenPos": 41, - "startFilePos": 83, - "startLine": 6, - "startTokenPos": 37 - }, - "default": { + { + "attributes": { + "endFilePos": 101, + "endLine": 6, + "endTokenPos": 49, + "startFilePos": 76, + "startLine": 6, + "startTokenPos": 35 + }, + "flags": 1, + "nodeType": "Stmt_Property", + "props": [ + { "attributes": { "endFilePos": 90, "endLine": 6, "endTokenPos": 41, - "kind": 1, - "startFilePos": 88, + "startFilePos": 83, "startLine": 6, - "startTokenPos": 41 + "startTokenPos": 37 }, - "nodeType": "Scalar_String", - "value": "b" - }, - "name": "a", - "nodeType": "Stmt_PropertyProperty" - }, - { - "attributes": { - "endFilePos": 100, - "endLine": 6, - "endTokenPos": 48, - "startFilePos": 93, - "startLine": 6, - "startTokenPos": 44 + "default": { + "attributes": { + "endFilePos": 90, + "endLine": 6, + "endTokenPos": 41, + "kind": 1, + "startFilePos": 88, + "startLine": 6, + "startTokenPos": 41 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "name": "a", + "nodeType": "Stmt_PropertyProperty" }, - "default": { + { "attributes": { "endFilePos": 100, "endLine": 6, "endTokenPos": 48, - "kind": 1, - "startFilePos": 98, + "startFilePos": 93, "startLine": 6, - "startTokenPos": 48 + "startTokenPos": 44 }, - "nodeType": "Scalar_String", - "value": "d" - }, - "name": "c", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 1 - }, - { - "attributes": { - "endFilePos": 119, - "endLine": 7, - "endTokenPos": 54, - "startFilePos": 107, - "startLine": 7, - "startTokenPos": 51 + "default": { + "attributes": { + "endFilePos": 100, + "endLine": 6, + "endTokenPos": 48, + "kind": 1, + "startFilePos": 98, + "startLine": 6, + "startTokenPos": 48 + }, + "nodeType": "Scalar_String", + "value": "d" + }, + "name": "c", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 1 }, - "flags": 2, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 118, - "endLine": 7, - "endTokenPos": 53, - "startFilePos": 117, - "startLine": 7, - "startTokenPos": 53 - }, - "default": null, - "name": "e", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 2 - }, - { - "attributes": { - "endFilePos": 135, - "endLine": 8, - "endTokenPos": 59, - "startFilePos": 125, - "startLine": 8, - "startTokenPos": 56 + { + "attributes": { + "endFilePos": 119, + "endLine": 7, + "endTokenPos": 54, + "startFilePos": 107, + "startLine": 7, + "startTokenPos": 51 + }, + "flags": 2, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 118, + "endLine": 7, + "endTokenPos": 53, + "startFilePos": 117, + "startLine": 7, + "startTokenPos": 53 + }, + "default": null, + "name": "e", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 2 }, - "flags": 4, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 134, - "endLine": 8, - "endTokenPos": 58, - "startFilePos": 133, - "startLine": 8, - "startTokenPos": 58 - }, - "default": null, - "name": "f", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 4 - }, - { - "attributes": { - "endFilePos": 163, - "endLine": 10, - "endTokenPos": 70, - "startFilePos": 142, - "startLine": 10, - "startTokenPos": 61 + { + "attributes": { + "endFilePos": 135, + "endLine": 8, + "endTokenPos": 59, + "startFilePos": 125, + "startLine": 8, + "startTokenPos": 56 + }, + "flags": 4, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 134, + "endLine": 8, + "endTokenPos": 58, + "startFilePos": 133, + "startLine": 8, + "startTokenPos": 58 + }, + "default": null, + "name": "f", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 4 }, - "byRef": false, - "flags": 1, - "name": "a", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 - }, - { - "attributes": { - "endFilePos": 199, - "endLine": 11, - "endTokenPos": 84, - "startFilePos": 169, - "startLine": 11, - "startTokenPos": 72 + { + "attributes": { + "endFilePos": 163, + "endLine": 10, + "endTokenPos": 70, + "startFilePos": 142, + "startLine": 10, + "startTokenPos": 61 + }, + "byRef": false, + "flags": 1, + "name": "a", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 }, - "byRef": false, - "flags": 9, - "name": "b", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 195, - "endLine": 11, - "endTokenPos": 80, - "startFilePos": 194, - "startLine": 11, - "startTokenPos": 80 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [], - "type": 9 - }, - { - "attributes": { - "endFilePos": 236, - "endLine": 12, - "endTokenPos": 101, - "startFilePos": 205, - "startLine": 12, - "startTokenPos": 86 + { + "attributes": { + "endFilePos": 199, + "endLine": 11, + "endTokenPos": 84, + "startFilePos": 169, + "startLine": 11, + "startTokenPos": 72 + }, + "byRef": false, + "flags": 9, + "name": "b", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 195, + "endLine": 11, + "endTokenPos": 80, + "startFilePos": 194, + "startLine": 11, + "startTokenPos": 80 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [], + "type": 9 }, - "byRef": false, - "flags": 33, - "name": "c", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": { + { "attributes": { - "endFilePos": 233, + "endFilePos": 236, "endLine": 12, - "endTokenPos": 98, - "startFilePos": 233, + "endTokenPos": 101, + "startFilePos": 205, "startLine": 12, - "startTokenPos": 98 + "startTokenPos": 86 }, - "nodeType": "Name", - "parts": [ - "B" - ] - }, - "stmts": [], - "type": 33 - }, - { - "attributes": { - "endFilePos": 266, - "endLine": 13, - "endTokenPos": 112, - "startFilePos": 242, - "startLine": 13, - "startTokenPos": 103 + "byRef": false, + "flags": 33, + "name": "c", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": { + "attributes": { + "endFilePos": 233, + "endLine": 12, + "endTokenPos": 98, + "startFilePos": 233, + "startLine": 12, + "startTokenPos": 98 + }, + "nodeType": "Name", + "parts": [ + "B" + ] + }, + "stmts": [], + "type": 33 }, - "byRef": false, - "flags": 2, - "name": "d", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 2 - }, - { - "attributes": { - "endFilePos": 294, - "endLine": 14, - "endTokenPos": 123, - "startFilePos": 272, - "startLine": 14, - "startTokenPos": 114 + { + "attributes": { + "endFilePos": 266, + "endLine": 13, + "endTokenPos": 112, + "startFilePos": 242, + "startLine": 13, + "startTokenPos": 103 + }, + "byRef": false, + "flags": 2, + "name": "d", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 2 }, - "byRef": false, - "flags": 4, - "name": "e", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 4 - } - ], - "type": 0 - } - ] + { + "attributes": { + "endFilePos": 294, + "endLine": 14, + "endTokenPos": 123, + "startFilePos": 272, + "startLine": 14, + "startTokenPos": 114 + }, + "byRef": false, + "flags": 4, + "name": "e", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 4 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_simple.php.uast b/fixtures/class_simple.php.uast index b7dcc63..69d4ceb 100644 --- a/fixtures/class_simple.php.uast +++ b/fixtures/class_simple.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -25,7 +24,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Base +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Base,Expression,Identifier . . . . . TOKEN "B" . . . . . StartPosition: { . . . . . . Offset: 23 @@ -41,7 +47,7 @@ File { . . . . . . internalRole: extends . . . . . } . . . . } -. . . . 1: Name { +. . . . 2: Name { . . . . . Roles: Expression,Identifier,Implements . . . . . TOKEN "C" . . . . . StartPosition: { @@ -58,7 +64,7 @@ File { . . . . . . internalRole: implements . . . . . } . . . . } -. . . . 2: Name { +. . . . 3: Name { . . . . . Roles: Expression,Identifier,Implements . . . . . TOKEN "D" . . . . . StartPosition: { @@ -75,8 +81,8 @@ File { . . . . . . internalRole: implements . . . . . } . . . . } -. . . . 3: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 4: Stmt_ClassConst { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 4 @@ -93,8 +99,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "A" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 53 . . . . . . . . Line: 4 @@ -109,7 +114,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_String { . . . . . . . . . Roles: Expression,Literal,String . . . . . . . . . TOKEN "B" . . . . . . . . . StartPosition: { @@ -129,8 +141,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "C" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 62 . . . . . . . . Line: 4 @@ -145,7 +156,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "C" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_String { . . . . . . . . . Roles: Expression,Literal,String . . . . . . . . . TOKEN "D" . . . . . . . . . StartPosition: { @@ -166,8 +184,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 4: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 5: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 76 . . . . . . Line: 6 @@ -185,8 +203,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "a" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 83 . . . . . . . . Line: 6 @@ -201,8 +218,15 @@ File { . . . . . . . . internalRole: props . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_String { +. . . . . . . . . Roles: Default,Expression,Literal,String . . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 88 @@ -221,8 +245,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "c" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 93 . . . . . . . . Line: 6 @@ -237,8 +260,15 @@ File { . . . . . . . . internalRole: props . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_String { +. . . . . . . . . Roles: Default,Expression,Literal,String . . . . . . . . . TOKEN "d" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 98 @@ -258,8 +288,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 5: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 6: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 107 . . . . . . Line: 7 @@ -277,8 +307,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "e" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 117 . . . . . . . . Line: 7 @@ -292,11 +321,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "e" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 6: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 7: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 125 . . . . . . Line: 8 @@ -314,8 +352,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "f" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 133 . . . . . . . . Line: 8 @@ -329,12 +366,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "f" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 7: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "a" +. . . . 8: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 142 . . . . . . Line: 10 @@ -351,10 +396,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 8: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "b" +. . . . 9: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 169 . . . . . . Line: 11 @@ -372,9 +425,15 @@ File { . . . . . . type: 9 . . . . . } . . . . . Children: { -. . . . . . 0: Param { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Param { . . . . . . . Roles: Argument -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 194 . . . . . . . . Line: 11 @@ -390,12 +449,20 @@ File { . . . . . . . . internalRole: params . . . . . . . . variadic: false . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 9: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "c" +. . . . 10: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 205 . . . . . . Line: 12 @@ -415,6 +482,13 @@ File { . . . . . Children: { . . . . . . 0: Name { . . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "B" . . . . . . . StartPosition: { . . . . . . . . Offset: 233 @@ -432,9 +506,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 10: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "d" +. . . . 11: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 242 . . . . . . Line: 13 @@ -451,10 +524,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 2 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 11: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "e" +. . . . 12: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 272 . . . . . . Line: 14 @@ -471,6 +552,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 4 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/class_trait.php.native b/fixtures/class_trait.php.native index 687d351..c3e4916 100644 --- a/fixtures/class_trait.php.native +++ b/fixtures/class_trait.php.native @@ -2,355 +2,358 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 44, - "endLine": 5, - "endTokenPos": 19, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": "A", - "nodeType": "Stmt_Trait", - "stmts": [ - { - "attributes": { - "endFilePos": 42, - "endLine": 4, - "endTokenPos": 17, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 8 - }, - "byRef": false, - "flags": 1, - "name": "a", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 - } - ] - }, - { - "attributes": { - "endFilePos": 276, - "endLine": 20, - "endTokenPos": 118, - "startFilePos": 47, - "startLine": 7, - "startTokenPos": 21 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "B", - "nodeType": "Stmt_Class", - "stmts": [ - { - "adaptations": [], - "attributes": { - "endFilePos": 66, - "endLine": 8, - "endTokenPos": 30, - "startFilePos": 61, - "startLine": 8, - "startTokenPos": 27 - }, - "nodeType": "Stmt_TraitUse", - "traits": [ - { - "attributes": { - "endFilePos": 65, - "endLine": 8, - "endTokenPos": 29, - "startFilePos": 65, - "startLine": 8, - "startTokenPos": 29 - }, - "nodeType": "Name", - "parts": [ - "C" - ] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 44, + "endLine": 5, + "endTokenPos": 19, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "adaptations": [ - { - "attributes": { - "endFilePos": 104, - "endLine": 10, - "endTokenPos": 45, - "startFilePos": 88, - "startLine": 10, - "startTokenPos": 38 - }, - "method": "a", - "newModifier": 2, - "newName": "b", - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": null + "name": "A", + "nodeType": "Stmt_Trait", + "stmts": [ + { + "attributes": { + "endFilePos": 42, + "endLine": 4, + "endTokenPos": 17, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 8 }, - { - "attributes": { - "endFilePos": 120, - "endLine": 11, - "endTokenPos": 52, - "startFilePos": 114, - "startLine": 11, - "startTokenPos": 47 - }, - "method": "c", - "newModifier": null, - "newName": "d", - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": null + "byRef": false, + "flags": 1, + "name": "a", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 + } + ] + }, + { + "attributes": { + "endFilePos": 276, + "endLine": 20, + "endTokenPos": 118, + "startFilePos": 47, + "startLine": 7, + "startTokenPos": 21 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "B", + "nodeType": "Stmt_Class", + "stmts": [ + { + "adaptations": [], + "attributes": { + "endFilePos": 66, + "endLine": 8, + "endTokenPos": 30, + "startFilePos": 61, + "startLine": 8, + "startTokenPos": 27 }, - { - "attributes": { - "endFilePos": 142, - "endLine": 12, - "endTokenPos": 59, - "startFilePos": 130, - "startLine": 12, - "startTokenPos": 54 - }, - "method": "e", - "newModifier": 4, - "newName": null, - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": null - } - ], - "attributes": { - "endFilePos": 148, - "endLine": 13, - "endTokenPos": 61, - "startFilePos": 72, - "startLine": 9, - "startTokenPos": 32 + "nodeType": "Stmt_TraitUse", + "traits": [ + { + "attributes": { + "endFilePos": 65, + "endLine": 8, + "endTokenPos": 29, + "startFilePos": 65, + "startLine": 8, + "startTokenPos": 29 + }, + "nodeType": "Name", + "parts": [ + "C" + ] + } + ] }, - "nodeType": "Stmt_TraitUse", - "traits": [ - { - "attributes": { - "endFilePos": 76, - "endLine": 9, - "endTokenPos": 34, - "startFilePos": 76, - "startLine": 9, - "startTokenPos": 34 + { + "adaptations": [ + { + "attributes": { + "endFilePos": 104, + "endLine": 10, + "endTokenPos": 45, + "startFilePos": 88, + "startLine": 10, + "startTokenPos": 38 + }, + "method": "a", + "newModifier": 2, + "newName": "b", + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": null }, - "nodeType": "Name", - "parts": [ - "D" - ] - } - ] - }, - { - "adaptations": [ - { - "attributes": { - "endFilePos": 195, - "endLine": 15, - "endTokenPos": 85, - "startFilePos": 176, - "startLine": 15, - "startTokenPos": 75 + { + "attributes": { + "endFilePos": 120, + "endLine": 11, + "endTokenPos": 52, + "startFilePos": 114, + "startLine": 11, + "startTokenPos": 47 + }, + "method": "c", + "newModifier": null, + "newName": "d", + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": null }, - "insteadof": [ - { + { + "attributes": { + "endFilePos": 142, + "endLine": 12, + "endTokenPos": 59, + "startFilePos": 130, + "startLine": 12, + "startTokenPos": 54 + }, + "method": "e", + "newModifier": 4, + "newName": null, + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": null + } + ], + "attributes": { + "endFilePos": 148, + "endLine": 13, + "endTokenPos": 61, + "startFilePos": 72, + "startLine": 9, + "startTokenPos": 32 + }, + "nodeType": "Stmt_TraitUse", + "traits": [ + { + "attributes": { + "endFilePos": 76, + "endLine": 9, + "endTokenPos": 34, + "startFilePos": 76, + "startLine": 9, + "startTokenPos": 34 + }, + "nodeType": "Name", + "parts": [ + "D" + ] + } + ] + }, + { + "adaptations": [ + { + "attributes": { + "endFilePos": 195, + "endLine": 15, + "endTokenPos": 85, + "startFilePos": 176, + "startLine": 15, + "startTokenPos": 75 + }, + "insteadof": [ + { + "attributes": { + "endFilePos": 191, + "endLine": 15, + "endTokenPos": 81, + "startFilePos": 191, + "startLine": 15, + "startTokenPos": 81 + }, + "nodeType": "Name", + "parts": [ + "F" + ] + }, + { + "attributes": { + "endFilePos": 194, + "endLine": 15, + "endTokenPos": 84, + "startFilePos": 194, + "startLine": 15, + "startTokenPos": 84 + }, + "nodeType": "Name", + "parts": [ + "G" + ] + } + ], + "method": "a", + "nodeType": "Stmt_TraitUseAdaptation_Precedence", + "trait": { "attributes": { - "endFilePos": 191, + "endFilePos": 176, "endLine": 15, - "endTokenPos": 81, - "startFilePos": 191, + "endTokenPos": 75, + "startFilePos": 176, "startLine": 15, - "startTokenPos": 81 + "startTokenPos": 75 }, "nodeType": "Name", "parts": [ - "F" + "E" ] + } + }, + { + "attributes": { + "endFilePos": 224, + "endLine": 16, + "endTokenPos": 96, + "startFilePos": 205, + "startLine": 16, + "startTokenPos": 87 }, - { + "method": "b", + "newModifier": 2, + "newName": "c", + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": { "attributes": { - "endFilePos": 194, - "endLine": 15, - "endTokenPos": 84, - "startFilePos": 194, - "startLine": 15, - "startTokenPos": 84 + "endFilePos": 205, + "endLine": 16, + "endTokenPos": 87, + "startFilePos": 205, + "startLine": 16, + "startTokenPos": 87 }, "nodeType": "Name", "parts": [ - "G" + "E" ] } - ], - "method": "a", - "nodeType": "Stmt_TraitUseAdaptation_Precedence", - "trait": { + }, + { "attributes": { - "endFilePos": 176, - "endLine": 15, - "endTokenPos": 75, - "startFilePos": 176, - "startLine": 15, - "startTokenPos": 75 + "endFilePos": 243, + "endLine": 17, + "endTokenPos": 105, + "startFilePos": 234, + "startLine": 17, + "startTokenPos": 98 }, - "nodeType": "Name", - "parts": [ - "E" - ] + "method": "d", + "newModifier": null, + "newName": "e", + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": { + "attributes": { + "endFilePos": 234, + "endLine": 17, + "endTokenPos": 98, + "startFilePos": 234, + "startLine": 17, + "startTokenPos": 98 + }, + "nodeType": "Name", + "parts": [ + "E" + ] + } + }, + { + "attributes": { + "endFilePos": 268, + "endLine": 18, + "endTokenPos": 114, + "startFilePos": 253, + "startLine": 18, + "startTokenPos": 107 + }, + "method": "f", + "newModifier": 4, + "newName": null, + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": { + "attributes": { + "endFilePos": 253, + "endLine": 18, + "endTokenPos": 107, + "startFilePos": 253, + "startLine": 18, + "startTokenPos": 107 + }, + "nodeType": "Name", + "parts": [ + "E" + ] + } } + ], + "attributes": { + "endFilePos": 274, + "endLine": 19, + "endTokenPos": 116, + "startFilePos": 154, + "startLine": 14, + "startTokenPos": 63 }, - { - "attributes": { - "endFilePos": 224, - "endLine": 16, - "endTokenPos": 96, - "startFilePos": 205, - "startLine": 16, - "startTokenPos": 87 - }, - "method": "b", - "newModifier": 2, - "newName": "c", - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": { + "nodeType": "Stmt_TraitUse", + "traits": [ + { "attributes": { - "endFilePos": 205, - "endLine": 16, - "endTokenPos": 87, - "startFilePos": 205, - "startLine": 16, - "startTokenPos": 87 + "endFilePos": 158, + "endLine": 14, + "endTokenPos": 65, + "startFilePos": 158, + "startLine": 14, + "startTokenPos": 65 }, "nodeType": "Name", "parts": [ "E" ] - } - }, - { - "attributes": { - "endFilePos": 243, - "endLine": 17, - "endTokenPos": 105, - "startFilePos": 234, - "startLine": 17, - "startTokenPos": 98 }, - "method": "d", - "newModifier": null, - "newName": "e", - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": { + { "attributes": { - "endFilePos": 234, - "endLine": 17, - "endTokenPos": 98, - "startFilePos": 234, - "startLine": 17, - "startTokenPos": 98 + "endFilePos": 161, + "endLine": 14, + "endTokenPos": 68, + "startFilePos": 161, + "startLine": 14, + "startTokenPos": 68 }, "nodeType": "Name", "parts": [ - "E" + "F" ] - } - }, - { - "attributes": { - "endFilePos": 268, - "endLine": 18, - "endTokenPos": 114, - "startFilePos": 253, - "startLine": 18, - "startTokenPos": 107 }, - "method": "f", - "newModifier": 4, - "newName": null, - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": { + { "attributes": { - "endFilePos": 253, - "endLine": 18, - "endTokenPos": 107, - "startFilePos": 253, - "startLine": 18, - "startTokenPos": 107 + "endFilePos": 164, + "endLine": 14, + "endTokenPos": 71, + "startFilePos": 164, + "startLine": 14, + "startTokenPos": 71 }, "nodeType": "Name", "parts": [ - "E" + "G" ] } - } - ], - "attributes": { - "endFilePos": 274, - "endLine": 19, - "endTokenPos": 116, - "startFilePos": 154, - "startLine": 14, - "startTokenPos": 63 - }, - "nodeType": "Stmt_TraitUse", - "traits": [ - { - "attributes": { - "endFilePos": 158, - "endLine": 14, - "endTokenPos": 65, - "startFilePos": 158, - "startLine": 14, - "startTokenPos": 65 - }, - "nodeType": "Name", - "parts": [ - "E" - ] - }, - { - "attributes": { - "endFilePos": 161, - "endLine": 14, - "endTokenPos": 68, - "startFilePos": 161, - "startLine": 14, - "startTokenPos": 68 - }, - "nodeType": "Name", - "parts": [ - "F" - ] - }, - { - "attributes": { - "endFilePos": 164, - "endLine": 14, - "endTokenPos": 71, - "startFilePos": 164, - "startLine": 14, - "startTokenPos": 71 - }, - "nodeType": "Name", - "parts": [ - "G" - ] - } - ] - } - ], - "type": 0 - } - ] + ] + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/class_trait.php.uast b/fixtures/class_trait.php.uast index 906ff37..4c74ea7 100644 --- a/fixtures/class_trait.php.uast +++ b/fixtures/class_trait.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "A" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "a" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 4 @@ -41,12 +46,20 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "B" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 47 . . . . Line: 7 @@ -63,8 +76,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_TraitUse { -. . . . . Roles: Expression,Body,Base +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "B" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_TraitUse { +. . . . . Roles: Base,Body,Type . . . . . StartPosition: { . . . . . . Offset: 61 . . . . . . Line: 8 @@ -98,8 +118,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_TraitUse { -. . . . . Roles: Expression,Body,Base +. . . . 2: Stmt_TraitUse { +. . . . . Roles: Base,Body,Type . . . . . StartPosition: { . . . . . . Offset: 72 . . . . . . Line: 9 @@ -132,7 +152,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . TOKEN "b" . . . . . . . StartPosition: { . . . . . . . . Offset: 88 @@ -151,7 +171,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . TOKEN "d" . . . . . . . StartPosition: { . . . . . . . . Offset: 114 @@ -169,7 +189,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 3: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . StartPosition: { . . . . . . . . Offset: 130 . . . . . . . . Line: 12 @@ -188,8 +208,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 2: Stmt_TraitUse { -. . . . . Roles: Expression,Body,Base +. . . . 3: Stmt_TraitUse { +. . . . . Roles: Base,Body,Type . . . . . StartPosition: { . . . . . . Offset: 154 . . . . . . Line: 14 @@ -256,7 +276,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 3: Stmt_TraitUseAdaptation_Precedence { -. . . . . . . Roles: Base,Alias,Incomplete +. . . . . . . Roles: Alias,Base,Incomplete . . . . . . . StartPosition: { . . . . . . . . Offset: 176 . . . . . . . . Line: 15 @@ -290,7 +310,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Name { -. . . . . . . . . Roles: Expression,Identifier,Alias,Incomplete +. . . . . . . . . Roles: Alias,Expression,Identifier,Incomplete . . . . . . . . . TOKEN "F" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 191 @@ -307,7 +327,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 2: Name { -. . . . . . . . . Roles: Expression,Identifier,Alias,Incomplete +. . . . . . . . . Roles: Alias,Expression,Identifier,Incomplete . . . . . . . . . TOKEN "G" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 194 @@ -326,7 +346,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 4: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . TOKEN "c" . . . . . . . StartPosition: { . . . . . . . . Offset: 205 @@ -364,7 +384,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 5: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . TOKEN "e" . . . . . . . StartPosition: { . . . . . . . . Offset: 234 @@ -401,7 +421,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 6: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . StartPosition: { . . . . . . . . Offset: 253 . . . . . . . . Line: 18 diff --git a/fixtures/clone.php.native b/fixtures/clone.php.native index ac43117..3b0aa98 100644 --- a/fixtures/clone.php.native +++ b/fixtures/clone.php.native @@ -2,29 +2,32 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 14, "endLine": 3, "endTokenPos": 4, - "startFilePos": 13, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Clone" - } - ] + "expr": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 4, + "startFilePos": 13, + "startLine": 3, + "startTokenPos": 4 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Clone" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/clone.php.uast b/fixtures/clone.php.uast index 3485709..6c35075 100644 --- a/fixtures/clone.php.uast +++ b/fixtures/clone.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Clone { -. . . Roles: Expression,Call,Incomplete -. . . TOKEN "clone" +. . . Roles: Call,Expression,Incomplete . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -24,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 3 @@ -38,6 +36,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/closure.php.native b/fixtures/closure.php.native index 7f5da42..d142ee1 100644 --- a/fixtures/closure.php.native +++ b/fixtures/closure.php.native @@ -2,275 +2,278 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 2, - "endTokenPos": 11, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 16, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 15, - "startLine": 2, - "startTokenPos": 3 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "static": false, - "stmts": [ - { - "attributes": { - "endFilePos": 22, - "endLine": 2, - "endTokenPos": 8, - "startFilePos": 21, - "startLine": 2, - "startTokenPos": 8 - }, - "name": "a", - "nodeType": "Expr_Variable" - } - ], - "uses": [] - }, - { - "attributes": { - "endFilePos": 50, - "endLine": 3, - "endTokenPos": 25, - "startFilePos": 28, - "startLine": 3, - "startTokenPos": 14 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 2, + "endTokenPos": 11, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { + "attributes": { + "endFilePos": 16, + "endLine": 2, + "endTokenPos": 3, + "startFilePos": 15, + "startLine": 2, + "startTokenPos": 3 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "static": false, + "stmts": [ + { + "attributes": { + "endFilePos": 22, + "endLine": 2, + "endTokenPos": 8, + "startFilePos": 21, + "startLine": 2, + "startTokenPos": 8 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + ], + "uses": [] }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 38, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 37, - "startLine": 3, - "startTokenPos": 16 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "static": false, - "stmts": [], - "uses": [ - { - "attributes": { - "endFilePos": 46, - "endLine": 3, - "endTokenPos": 21, - "startFilePos": 45, - "startLine": 3, - "startTokenPos": 21 - }, - "byRef": false, - "nodeType": "Expr_ClosureUse", - "var": "b" - } - ] - }, - { - "attributes": { - "endFilePos": 78, - "endLine": 4, - "endTokenPos": 42, - "startFilePos": 53, - "startLine": 4, - "startTokenPos": 28 + { + "attributes": { + "endFilePos": 50, + "endLine": 3, + "endTokenPos": 25, + "startFilePos": 28, + "startLine": 3, + "startTokenPos": 14 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { + "attributes": { + "endFilePos": 38, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 37, + "startLine": 3, + "startTokenPos": 16 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "static": false, + "stmts": [], + "uses": [ + { + "attributes": { + "endFilePos": 46, + "endLine": 3, + "endTokenPos": 21, + "startFilePos": 45, + "startLine": 3, + "startTokenPos": 21 + }, + "byRef": false, + "nodeType": "Expr_ClosureUse", + "var": "b" + } + ] }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [], - "returnType": null, - "static": false, - "stmts": [], - "uses": [ - { - "attributes": { - "endFilePos": 69, - "endLine": 4, - "endTokenPos": 34, - "startFilePos": 68, - "startLine": 4, - "startTokenPos": 34 - }, - "byRef": false, - "nodeType": "Expr_ClosureUse", - "var": "a" + { + "attributes": { + "endFilePos": 78, + "endLine": 4, + "endTokenPos": 42, + "startFilePos": 53, + "startLine": 4, + "startTokenPos": 28 }, - { - "attributes": { - "endFilePos": 74, - "endLine": 4, - "endTokenPos": 38, - "startFilePos": 72, - "startLine": 4, - "startTokenPos": 37 + "byRef": false, + "nodeType": "Expr_Closure", + "params": [], + "returnType": null, + "static": false, + "stmts": [], + "uses": [ + { + "attributes": { + "endFilePos": 69, + "endLine": 4, + "endTokenPos": 34, + "startFilePos": 68, + "startLine": 4, + "startTokenPos": 34 + }, + "byRef": false, + "nodeType": "Expr_ClosureUse", + "var": "a" }, - "byRef": true, - "nodeType": "Expr_ClosureUse", - "var": "b" - } - ] - }, - { - "attributes": { - "endFilePos": 97, - "endLine": 5, - "endTokenPos": 53, - "startFilePos": 81, - "startLine": 5, - "startTokenPos": 45 + { + "attributes": { + "endFilePos": 74, + "endLine": 4, + "endTokenPos": 38, + "startFilePos": 72, + "startLine": 4, + "startTokenPos": 37 + }, + "byRef": true, + "nodeType": "Expr_ClosureUse", + "var": "b" + } + ] }, - "byRef": true, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 93, - "endLine": 5, - "endTokenPos": 49, - "startFilePos": 92, - "startLine": 5, - "startTokenPos": 49 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "static": false, - "stmts": [], - "uses": [] - }, - { - "attributes": { - "endFilePos": 119, - "endLine": 6, - "endTokenPos": 63, - "startFilePos": 100, - "startLine": 6, - "startTokenPos": 56 + { + "attributes": { + "endFilePos": 97, + "endLine": 5, + "endTokenPos": 53, + "startFilePos": 81, + "startLine": 5, + "startTokenPos": 45 + }, + "byRef": true, + "nodeType": "Expr_Closure", + "params": [ + { + "attributes": { + "endFilePos": 93, + "endLine": 5, + "endTokenPos": 49, + "startFilePos": 92, + "startLine": 5, + "startTokenPos": 49 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "static": false, + "stmts": [], + "uses": [] }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [], - "returnType": null, - "static": true, - "stmts": [], - "uses": [] - }, - { - "attributes": { - "endFilePos": 144, - "endLine": 7, - "endTokenPos": 76, - "startFilePos": 122, - "startLine": 7, - "startTokenPos": 66 + { + "attributes": { + "endFilePos": 119, + "endLine": 6, + "endTokenPos": 63, + "startFilePos": 100, + "startLine": 6, + "startTokenPos": 56 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [], + "returnType": null, + "static": true, + "stmts": [], + "uses": [] }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 132, - "endLine": 7, - "endTokenPos": 68, - "startFilePos": 131, - "startLine": 7, - "startTokenPos": 68 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": "array", - "static": false, - "stmts": [], - "uses": [] - }, - { - "attributes": { - "endFilePos": 178, - "endLine": 8, - "endTokenPos": 96, - "startFilePos": 147, - "startLine": 8, - "startTokenPos": 79 + { + "attributes": { + "endFilePos": 144, + "endLine": 7, + "endTokenPos": 76, + "startFilePos": 122, + "startLine": 7, + "startTokenPos": 66 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { + "attributes": { + "endFilePos": 132, + "endLine": 7, + "endTokenPos": 68, + "startFilePos": 131, + "startLine": 7, + "startTokenPos": 68 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": "array", + "static": false, + "stmts": [], + "uses": [] }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [], - "returnType": { + { "attributes": { - "endFilePos": 175, + "endFilePos": 178, "endLine": 8, - "endTokenPos": 93, - "startFilePos": 168, + "endTokenPos": 96, + "startFilePos": 147, "startLine": 8, - "startTokenPos": 90 + "startTokenPos": 79 }, - "nodeType": "Name_FullyQualified", - "parts": [ - "Foo", - "Bar" - ] - }, - "static": false, - "stmts": [], - "uses": [ - { + "byRef": false, + "nodeType": "Expr_Closure", + "params": [], + "returnType": { "attributes": { - "endFilePos": 163, + "endFilePos": 175, "endLine": 8, - "endTokenPos": 85, - "startFilePos": 162, + "endTokenPos": 93, + "startFilePos": 168, "startLine": 8, - "startTokenPos": 85 + "startTokenPos": 90 }, - "byRef": false, - "nodeType": "Expr_ClosureUse", - "var": "a" - } - ] - } - ] + "nodeType": "Name_FullyQualified", + "parts": [ + "Foo", + "Bar" + ] + }, + "static": false, + "stmts": [], + "uses": [ + { + "attributes": { + "endFilePos": 163, + "endLine": 8, + "endTokenPos": 85, + "startFilePos": 162, + "startLine": 8, + "startTokenPos": 85 + }, + "byRef": false, + "nodeType": "Expr_ClosureUse", + "var": "a" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/closure.php.uast b/fixtures/closure.php.uast index efc174d..34c473c 100644 --- a/fixtures/closure.php.uast +++ b/fixtures/closure.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -25,7 +25,6 @@ File { . . . Children: { . . . . 0: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 2 @@ -41,10 +40,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 2 @@ -58,11 +65,20 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 28 . . . . Line: 3 @@ -81,7 +97,6 @@ File { . . . Children: { . . . . 0: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 37 . . . . . . Line: 3 @@ -97,10 +112,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_ClosureUse { -. . . . . Roles: Visibility,Incomplete -. . . . . TOKEN "b" +. . . . . Roles: Incomplete,Visibility . . . . . StartPosition: { . . . . . . Offset: 45 . . . . . . Line: 3 @@ -114,12 +137,13 @@ File { . . . . . Properties: { . . . . . . byRef: false . . . . . . internalRole: uses +. . . . . . var: b . . . . . } . . . . } . . . } . . } . . 2: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 53 . . . . Line: 4 @@ -137,8 +161,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ClosureUse { -. . . . . Roles: Visibility,Incomplete -. . . . . TOKEN "a" +. . . . . Roles: Incomplete,Visibility . . . . . StartPosition: { . . . . . . Offset: 68 . . . . . . Line: 4 @@ -152,11 +175,11 @@ File { . . . . . Properties: { . . . . . . byRef: false . . . . . . internalRole: uses +. . . . . . var: a . . . . . } . . . . } . . . . 1: Expr_ClosureUse { -. . . . . Roles: Visibility,Incomplete -. . . . . TOKEN "b" +. . . . . Roles: Incomplete,Visibility . . . . . StartPosition: { . . . . . . Offset: 72 . . . . . . Line: 4 @@ -170,12 +193,13 @@ File { . . . . . Properties: { . . . . . . byRef: true . . . . . . internalRole: uses +. . . . . . var: b . . . . . } . . . . } . . . } . . } . . 3: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 81 . . . . Line: 5 @@ -194,7 +218,6 @@ File { . . . Children: { . . . . 0: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 92 . . . . . . Line: 5 @@ -210,11 +233,20 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 100 . . . . Line: 6 @@ -232,7 +264,7 @@ File { . . . } . . } . . 5: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 122 . . . . Line: 7 @@ -252,7 +284,6 @@ File { . . . Children: { . . . . 0: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 131 . . . . . . Line: 7 @@ -268,11 +299,20 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 147 . . . . Line: 8 @@ -290,8 +330,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ClosureUse { -. . . . . Roles: Visibility,Incomplete -. . . . . TOKEN "a" +. . . . . Roles: Incomplete,Visibility . . . . . StartPosition: { . . . . . . Offset: 162 . . . . . . Line: 8 @@ -305,11 +344,11 @@ File { . . . . . Properties: { . . . . . . byRef: false . . . . . . internalRole: uses +. . . . . . var: a . . . . . } . . . . } . . . . 1: Name_FullyQualified { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "Foo\Bar" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 168 . . . . . . Line: 8 @@ -323,6 +362,20 @@ File { . . . . . Properties: { . . . . . . internalRole: returnType . . . . . } +. . . . . Children: { +. . . . . . 0: { +. . . . . . . TOKEN "Foo" +. . . . . . . Properties: { +. . . . . . . . internalRole: parts +. . . . . . . } +. . . . . . } +. . . . . . 1: { +. . . . . . . TOKEN "Bar" +. . . . . . . Properties: { +. . . . . . . . internalRole: parts +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/comments.php.native b/fixtures/comments.php.native index e0a90a1..b6f4ae0 100644 --- a/fixtures/comments.php.native +++ b/fixtures/comments.php.native @@ -2,133 +2,136 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 7, - "line": 3, - "nodeType": "Comment_Doc", - "text": "/** doc 1 */" - }, - { - "filePos": 20, - "line": 4, - "nodeType": "Comment", - "text": "/* foobar 1 */" - }, - { - "filePos": 35, - "line": 5, - "nodeType": "Comment", - "text": "// foo 1\n" - }, - { - "filePos": 44, - "line": 6, - "nodeType": "Comment", - "text": "// bar 1\n" - } - ], - "endFilePos": 56, - "endLine": 7, - "endTokenPos": 8, - "startFilePos": 53, - "startLine": 7, - "startTokenPos": 8 - }, - "name": "var", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 135, - "endLine": 14, - "endTokenPos": 26, - "startFilePos": 60, - "startLine": 9, - "startTokenPos": 11 - }, - "cond": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 68, - "endLine": 9, - "endTokenPos": 14, - "startFilePos": 64, - "startLine": 9, - "startTokenPos": 14 + "comments": [ + { + "filePos": 7, + "line": 3, + "nodeType": "Comment_Doc", + "text": "/** doc 1 */" + }, + { + "filePos": 20, + "line": 4, + "nodeType": "Comment", + "text": "/* foobar 1 */" + }, + { + "filePos": 35, + "line": 5, + "nodeType": "Comment", + "text": "// foo 1\n" + }, + { + "filePos": 44, + "line": 6, + "nodeType": "Comment", + "text": "// bar 1\n" + } + ], + "endFilePos": 56, + "endLine": 7, + "endTokenPos": 8, + "startFilePos": 53, + "startLine": 7, + "startTokenPos": 8 }, - "name": "cond", + "name": "var", "nodeType": "Expr_Variable" }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { + { + "attributes": { + "endFilePos": 135, + "endLine": 14, + "endTokenPos": 26, + "startFilePos": 60, + "startLine": 9, + "startTokenPos": 11 + }, + "cond": { "attributes": { - "comments": [ - { - "filePos": 77, - "line": 10, - "nodeType": "Comment_Doc", - "text": "/** doc 2 */" - }, - { - "filePos": 94, - "line": 11, - "nodeType": "Comment", - "text": "/* foobar 2 */" - }, - { - "filePos": 113, - "line": 12, - "nodeType": "Comment", - "text": "// foo 2\n" - }, - { - "filePos": 126, - "line": 13, - "nodeType": "Comment", - "text": "// bar 2\n" - } - ] - }, - "nodeType": "Stmt_Nop" - } - ] - }, - { - "attributes": { - "comments": [ - { - "filePos": 138, - "line": 16, - "nodeType": "Comment_Doc", - "text": "/** doc 3 */" - }, - { - "filePos": 151, - "line": 17, - "nodeType": "Comment", - "text": "/* foobar 3 */" - }, - { - "filePos": 166, - "line": 18, - "nodeType": "Comment", - "text": "// foo 3\n" + "endFilePos": 68, + "endLine": 9, + "endTokenPos": 14, + "startFilePos": 64, + "startLine": 9, + "startTokenPos": 14 }, + "name": "cond", + "nodeType": "Expr_Variable" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ { - "filePos": 175, - "line": 19, - "nodeType": "Comment", - "text": "// bar 3\n" + "attributes": { + "comments": [ + { + "filePos": 77, + "line": 10, + "nodeType": "Comment_Doc", + "text": "/** doc 2 */" + }, + { + "filePos": 94, + "line": 11, + "nodeType": "Comment", + "text": "/* foobar 2 */" + }, + { + "filePos": 113, + "line": 12, + "nodeType": "Comment", + "text": "// foo 2\n" + }, + { + "filePos": 126, + "line": 13, + "nodeType": "Comment", + "text": "// bar 2\n" + } + ] + }, + "nodeType": "Stmt_Nop" } ] }, - "nodeType": "Stmt_Nop" - } - ] + { + "attributes": { + "comments": [ + { + "filePos": 138, + "line": 16, + "nodeType": "Comment_Doc", + "text": "/** doc 3 */" + }, + { + "filePos": 151, + "line": 17, + "nodeType": "Comment", + "text": "/* foobar 3 */" + }, + { + "filePos": 166, + "line": 18, + "nodeType": "Comment", + "text": "// foo 3\n" + }, + { + "filePos": 175, + "line": 19, + "nodeType": "Comment", + "text": "// bar 3\n" + } + ] + }, + "nodeType": "Stmt_Nop" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/comments.php.uast b/fixtures/comments.php.uast index 8a7cb14..46de7ba 100644 --- a/fixtures/comments.php.uast +++ b/fixtures/comments.php.uast @@ -2,12 +2,76 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { -. . 0: Expr_Variable { +. . 0: Stmt_Nop { +. . . Roles: Noop +. . . Properties: { +. . . . internalRole: children +. . . } +. . . Children: { +. . . . 0: { +. . . . . Properties: { +. . . . . . internalRole: attributes +. . . . . } +. . . . . Children: { +. . . . . . 0: Comment_Doc { +. . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . TOKEN "* doc 3 " +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop +. . . . . . . TOKEN " foobar 3 " +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . . 2: Comment { +. . . . . . . Roles: Comment,Noop +. . . . . . . TOKEN " foo 3 +" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . . 3: Comment { +. . . . . . . Roles: Comment,Noop +. . . . . . . TOKEN " bar 3 +" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . } +. . . . } +. . . } +. . } +. . 1: Expr_Variable { . . . Roles: Identifier,Variable -. . . TOKEN "var" . . . StartPosition: { . . . . Offset: 53 . . . . Line: 7 @@ -22,80 +86,67 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Comment_Doc { -. . . . . Roles: Noop,Comment,Documentation -. . . . . TOKEN " doc 1 " +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "var" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Comment_Doc { +. . . . . Roles: Comment,Documentation,Noop +. . . . . TOKEN "* doc 1 " . . . . . StartPosition: { -. . . . . . Offset: 7 -. . . . . . Line: 3 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 19 -. . . . . . Line: 3 -. . . . . . Col: 13 -. . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } -. . . . 1: Comment { -. . . . . Roles: Noop,Comment +. . . . 2: Comment { +. . . . . Roles: Comment,Noop . . . . . TOKEN " foobar 1 " . . . . . StartPosition: { -. . . . . . Offset: 20 -. . . . . . Line: 4 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 34 -. . . . . . Line: 4 -. . . . . . Col: 15 -. . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } -. . . . 2: Comment { -. . . . . Roles: Noop,Comment +. . . . 3: Comment { +. . . . . Roles: Comment,Noop . . . . . TOKEN " foo 1 " . . . . . StartPosition: { -. . . . . . Offset: 35 -. . . . . . Line: 5 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 44 -. . . . . . Line: 6 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } -. . . . 3: Comment { -. . . . . Roles: Noop,Comment +. . . . 4: Comment { +. . . . . Roles: Comment,Noop . . . . . TOKEN " bar 1 " . . . . . StartPosition: { -. . . . . . Offset: 44 -. . . . . . Line: 6 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 53 -. . . . . . Line: 7 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . } . . } -. . 1: Stmt_If { -. . . Roles: Statement,If +. . 2: Stmt_If { +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 60 . . . . Line: 9 @@ -110,177 +161,94 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "cond" -. . . . . StartPosition: { -. . . . . . Offset: 64 -. . . . . . Line: 9 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 68 -. . . . . . Line: 9 -. . . . . . Col: 9 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: cond -. . . . . } -. . . . } -. . . . 1: Stmt_Nop { -. . . . . Roles: Noop,Expression,Body +. . . . 0: Stmt_Nop { +. . . . . Roles: Noop . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Comment_Doc { -. . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . TOKEN " doc 2 " -. . . . . . . StartPosition: { -. . . . . . . . Offset: 77 -. . . . . . . . Line: 10 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 89 -. . . . . . . . Line: 10 -. . . . . . . . Col: 17 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: attributes -. . . . . . . } -. . . . . . } -. . . . . . 1: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " foobar 2 " -. . . . . . . StartPosition: { -. . . . . . . . Offset: 94 -. . . . . . . . Line: 11 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 108 -. . . . . . . . Line: 11 -. . . . . . . . Col: 19 -. . . . . . . } +. . . . . . 0: { . . . . . . . Properties: { . . . . . . . . internalRole: attributes . . . . . . . } -. . . . . . } -. . . . . . 2: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " foo 2 +. . . . . . . Children: { +. . . . . . . . 0: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* doc 2 " +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment { +. . . . . . . . . Roles: Comment,Noop +. . . . . . . . . TOKEN " foobar 2 " +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 2: Comment { +. . . . . . . . . Roles: Comment,Noop +. . . . . . . . . TOKEN " foo 2 " -. . . . . . . StartPosition: { -. . . . . . . . Offset: 113 -. . . . . . . . Line: 12 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 122 -. . . . . . . . Line: 13 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: attributes -. . . . . . . } -. . . . . . } -. . . . . . 3: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " bar 2 +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 3: Comment { +. . . . . . . . . Roles: Comment,Noop +. . . . . . . . . TOKEN " bar 2 " -. . . . . . . StartPosition: { -. . . . . . . . Offset: 126 -. . . . . . . . Line: 13 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 135 -. . . . . . . . Line: 14 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } -. . . } -. . } -. . 2: Stmt_Nop { -. . . Roles: Noop -. . . Properties: { -. . . . internalRole: children -. . . } -. . . Children: { -. . . . 0: Comment_Doc { -. . . . . Roles: Noop,Comment,Documentation -. . . . . TOKEN " doc 3 " +. . . . 1: Expr_Variable { +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { -. . . . . . Offset: 138 -. . . . . . Line: 16 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 150 -. . . . . . Line: 16 -. . . . . . Col: 13 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: attributes -. . . . . } -. . . . } -. . . . 1: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " foobar 3 " -. . . . . StartPosition: { -. . . . . . Offset: 151 -. . . . . . Line: 17 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 165 -. . . . . . Line: 17 -. . . . . . Col: 15 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: attributes -. . . . . } -. . . . } -. . . . 2: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " foo 3 -" -. . . . . StartPosition: { -. . . . . . Offset: 166 -. . . . . . Line: 18 -. . . . . . Col: 1 +. . . . . . Offset: 64 +. . . . . . Line: 9 +. . . . . . Col: 5 . . . . . } . . . . . EndPosition: { -. . . . . . Offset: 175 -. . . . . . Line: 19 -. . . . . . Col: 1 +. . . . . . Offset: 68 +. . . . . . Line: 9 +. . . . . . Col: 9 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes -. . . . . } -. . . . } -. . . . 3: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " bar 3 -" -. . . . . StartPosition: { -. . . . . . Offset: 175 -. . . . . . Line: 19 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 184 -. . . . . . Line: 20 -. . . . . . Col: 1 +. . . . . . internalRole: cond . . . . . } -. . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "cond" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } . . . . . } . . . . } . . . } diff --git a/fixtures/comparison.php.native b/fixtures/comparison.php.native index a9b2a4c..18f99b9 100644 --- a/fixtures/comparison.php.native +++ b/fixtures/comparison.php.native @@ -2,393 +2,396 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 12, - "endLine": 2, - "endTokenPos": 5, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "left": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 7, + "endFilePos": 12, "endLine": 2, - "endTokenPos": 1, + "endTokenPos": 5, "startFilePos": 6, "startLine": 2, "startTokenPos": 1 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Smaller", - "right": { - "attributes": { - "endFilePos": 12, - "endLine": 2, - "endTokenPos": 5, - "startFilePos": 11, - "startLine": 2, - "startTokenPos": 5 + "left": { + "attributes": { + "endFilePos": 7, + "endLine": 2, + "endTokenPos": 1, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 22, - "endLine": 3, - "endTokenPos": 12, - "startFilePos": 15, - "startLine": 3, - "startTokenPos": 8 + "nodeType": "Expr_BinaryOp_Smaller", + "right": { + "attributes": { + "endFilePos": 12, + "endLine": 2, + "endTokenPos": 5, + "startFilePos": 11, + "startLine": 2, + "startTokenPos": 5 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 16, + "endFilePos": 22, "endLine": 3, - "endTokenPos": 8, + "endTokenPos": 12, "startFilePos": 15, "startLine": 3, "startTokenPos": 8 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_SmallerOrEqual", - "right": { - "attributes": { - "endFilePos": 22, - "endLine": 3, - "endTokenPos": 12, - "startFilePos": 21, - "startLine": 3, - "startTokenPos": 12 + "left": { + "attributes": { + "endFilePos": 16, + "endLine": 3, + "endTokenPos": 8, + "startFilePos": 15, + "startLine": 3, + "startTokenPos": 8 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 25, - "startLine": 4, - "startTokenPos": 15 + "nodeType": "Expr_BinaryOp_SmallerOrEqual", + "right": { + "attributes": { + "endFilePos": 22, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 21, + "startLine": 3, + "startTokenPos": 12 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 26, + "endFilePos": 31, "endLine": 4, - "endTokenPos": 15, + "endTokenPos": 19, "startFilePos": 25, "startLine": 4, "startTokenPos": 15 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Greater", - "right": { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 30, - "startLine": 4, - "startTokenPos": 19 + "left": { + "attributes": { + "endFilePos": 26, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 25, + "startLine": 4, + "startTokenPos": 15 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 41, - "endLine": 5, - "endTokenPos": 26, - "startFilePos": 34, - "startLine": 5, - "startTokenPos": 22 + "nodeType": "Expr_BinaryOp_Greater", + "right": { + "attributes": { + "endFilePos": 31, + "endLine": 4, + "endTokenPos": 19, + "startFilePos": 30, + "startLine": 4, + "startTokenPos": 19 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 35, + "endFilePos": 41, "endLine": 5, - "endTokenPos": 22, + "endTokenPos": 26, "startFilePos": 34, "startLine": 5, "startTokenPos": 22 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_GreaterOrEqual", - "right": { - "attributes": { - "endFilePos": 41, - "endLine": 5, - "endTokenPos": 26, - "startFilePos": 40, - "startLine": 5, - "startTokenPos": 26 + "left": { + "attributes": { + "endFilePos": 35, + "endLine": 5, + "endTokenPos": 22, + "startFilePos": 34, + "startLine": 5, + "startTokenPos": 22 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 51, - "endLine": 6, - "endTokenPos": 33, - "startFilePos": 44, - "startLine": 6, - "startTokenPos": 29 + "nodeType": "Expr_BinaryOp_GreaterOrEqual", + "right": { + "attributes": { + "endFilePos": 41, + "endLine": 5, + "endTokenPos": 26, + "startFilePos": 40, + "startLine": 5, + "startTokenPos": 26 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 45, + "endFilePos": 51, "endLine": 6, - "endTokenPos": 29, + "endTokenPos": 33, "startFilePos": 44, "startLine": 6, "startTokenPos": 29 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Equal", - "right": { - "attributes": { - "endFilePos": 51, - "endLine": 6, - "endTokenPos": 33, - "startFilePos": 50, - "startLine": 6, - "startTokenPos": 33 + "left": { + "attributes": { + "endFilePos": 45, + "endLine": 6, + "endTokenPos": 29, + "startFilePos": 44, + "startLine": 6, + "startTokenPos": 29 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 62, - "endLine": 7, - "endTokenPos": 40, - "startFilePos": 54, - "startLine": 7, - "startTokenPos": 36 + "nodeType": "Expr_BinaryOp_Equal", + "right": { + "attributes": { + "endFilePos": 51, + "endLine": 6, + "endTokenPos": 33, + "startFilePos": 50, + "startLine": 6, + "startTokenPos": 33 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 55, + "endFilePos": 62, "endLine": 7, - "endTokenPos": 36, + "endTokenPos": 40, "startFilePos": 54, "startLine": 7, "startTokenPos": 36 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Identical", - "right": { - "attributes": { - "endFilePos": 62, - "endLine": 7, - "endTokenPos": 40, - "startFilePos": 61, - "startLine": 7, - "startTokenPos": 40 + "left": { + "attributes": { + "endFilePos": 55, + "endLine": 7, + "endTokenPos": 36, + "startFilePos": 54, + "startLine": 7, + "startTokenPos": 36 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 72, - "endLine": 8, - "endTokenPos": 47, - "startFilePos": 65, - "startLine": 8, - "startTokenPos": 43 + "nodeType": "Expr_BinaryOp_Identical", + "right": { + "attributes": { + "endFilePos": 62, + "endLine": 7, + "endTokenPos": 40, + "startFilePos": 61, + "startLine": 7, + "startTokenPos": 40 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 66, + "endFilePos": 72, "endLine": 8, - "endTokenPos": 43, + "endTokenPos": 47, "startFilePos": 65, "startLine": 8, "startTokenPos": 43 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_NotEqual", - "right": { - "attributes": { - "endFilePos": 72, - "endLine": 8, - "endTokenPos": 47, - "startFilePos": 71, - "startLine": 8, - "startTokenPos": 47 + "left": { + "attributes": { + "endFilePos": 66, + "endLine": 8, + "endTokenPos": 43, + "startFilePos": 65, + "startLine": 8, + "startTokenPos": 43 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 83, - "endLine": 9, - "endTokenPos": 54, - "startFilePos": 75, - "startLine": 9, - "startTokenPos": 50 + "nodeType": "Expr_BinaryOp_NotEqual", + "right": { + "attributes": { + "endFilePos": 72, + "endLine": 8, + "endTokenPos": 47, + "startFilePos": 71, + "startLine": 8, + "startTokenPos": 47 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 76, + "endFilePos": 83, "endLine": 9, - "endTokenPos": 50, + "endTokenPos": 54, "startFilePos": 75, "startLine": 9, "startTokenPos": 50 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_NotIdentical", - "right": { - "attributes": { - "endFilePos": 83, - "endLine": 9, - "endTokenPos": 54, - "startFilePos": 82, - "startLine": 9, - "startTokenPos": 54 + "left": { + "attributes": { + "endFilePos": 76, + "endLine": 9, + "endTokenPos": 50, + "startFilePos": 75, + "startLine": 9, + "startTokenPos": 50 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 94, - "endLine": 10, - "endTokenPos": 61, - "startFilePos": 86, - "startLine": 10, - "startTokenPos": 57 + "nodeType": "Expr_BinaryOp_NotIdentical", + "right": { + "attributes": { + "endFilePos": 83, + "endLine": 9, + "endTokenPos": 54, + "startFilePos": 82, + "startLine": 9, + "startTokenPos": 54 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 87, + "endFilePos": 94, "endLine": 10, - "endTokenPos": 57, + "endTokenPos": 61, "startFilePos": 86, "startLine": 10, "startTokenPos": 57 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Spaceship", - "right": { - "attributes": { - "endFilePos": 94, - "endLine": 10, - "endTokenPos": 61, - "startFilePos": 93, - "startLine": 10, - "startTokenPos": 61 + "left": { + "attributes": { + "endFilePos": 87, + "endLine": 10, + "endTokenPos": 57, + "startFilePos": 86, + "startLine": 10, + "startTokenPos": 57 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 111, - "endLine": 11, - "endTokenPos": 68, - "startFilePos": 97, - "startLine": 11, - "startTokenPos": 64 + "nodeType": "Expr_BinaryOp_Spaceship", + "right": { + "attributes": { + "endFilePos": 94, + "endLine": 10, + "endTokenPos": 61, + "startFilePos": 93, + "startLine": 10, + "startTokenPos": 61 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "class": { + { "attributes": { "endFilePos": 111, "endLine": 11, "endTokenPos": 68, - "startFilePos": 111, - "startLine": 11, - "startTokenPos": 68 - }, - "nodeType": "Name", - "parts": [ - "B" - ] - }, - "expr": { - "attributes": { - "endFilePos": 98, - "endLine": 11, - "endTokenPos": 64, "startFilePos": 97, "startLine": 11, "startTokenPos": 64 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Instanceof" - }, - { - "attributes": { - "endFilePos": 129, - "endLine": 12, - "endTokenPos": 75, - "startFilePos": 114, - "startLine": 12, - "startTokenPos": 71 + "class": { + "attributes": { + "endFilePos": 111, + "endLine": 11, + "endTokenPos": 68, + "startFilePos": 111, + "startLine": 11, + "startTokenPos": 68 + }, + "nodeType": "Name", + "parts": [ + "B" + ] + }, + "expr": { + "attributes": { + "endFilePos": 98, + "endLine": 11, + "endTokenPos": 64, + "startFilePos": 97, + "startLine": 11, + "startTokenPos": 64 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Instanceof" }, - "class": { + { "attributes": { "endFilePos": 129, "endLine": 12, "endTokenPos": 75, - "startFilePos": 128, - "startLine": 12, - "startTokenPos": 75 - }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "expr": { - "attributes": { - "endFilePos": 115, - "endLine": 12, - "endTokenPos": 71, "startFilePos": 114, "startLine": 12, "startTokenPos": 71 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Instanceof" - } - ] + "class": { + "attributes": { + "endFilePos": 129, + "endLine": 12, + "endTokenPos": 75, + "startFilePos": 128, + "startLine": 12, + "startTokenPos": 75 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "expr": { + "attributes": { + "endFilePos": 115, + "endLine": 12, + "endTokenPos": 71, + "startFilePos": 114, + "startLine": 12, + "startTokenPos": 71 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Instanceof" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/comparison.php.uast b/fixtures/comparison.php.uast index d5083f9..e9d3ffe 100644 --- a/fixtures/comparison.php.uast +++ b/fixtures/comparison.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_BinaryOp_Smaller { -. . . Roles: Expression,Binary,Operator,Relational,LessThan +. . . Roles: Binary,Expression,LessThan,Operator,Relational . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 6 . . . . . . Line: 2 @@ -37,10 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 11 . . . . . . Line: 2 @@ -54,11 +61,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_BinaryOp_SmallerOrEqual { -. . . Roles: Expression,Binary,Operator,Relational,LessThanOrEqual +. . . Roles: Binary,Expression,LessThanOrEqual,Operator,Relational . . . StartPosition: { . . . . Offset: 15 . . . . Line: 3 @@ -74,8 +90,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 3 @@ -89,10 +104,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 3 @@ -106,11 +129,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_BinaryOp_Greater { -. . . Roles: Expression,Binary,Operator,Relational,GreaterThan +. . . Roles: Binary,Expression,GreaterThan,Operator,Relational . . . StartPosition: { . . . . Offset: 25 . . . . Line: 4 @@ -126,8 +158,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 25 . . . . . . Line: 4 @@ -141,10 +172,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 4 @@ -158,11 +197,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_BinaryOp_GreaterOrEqual { -. . . Roles: Expression,Binary,Operator,Relational,GreaterThanOrEqual +. . . Roles: Binary,Expression,GreaterThanOrEqual,Operator,Relational . . . StartPosition: { . . . . Offset: 34 . . . . Line: 5 @@ -178,8 +226,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 34 . . . . . . Line: 5 @@ -193,10 +240,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 40 . . . . . . Line: 5 @@ -210,11 +265,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_BinaryOp_Equal { -. . . Roles: Expression,Binary,Operator,Relational,Equal +. . . Roles: Binary,Equal,Expression,Operator,Relational . . . StartPosition: { . . . . Offset: 44 . . . . Line: 6 @@ -230,8 +294,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 44 . . . . . . Line: 6 @@ -245,10 +308,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 50 . . . . . . Line: 6 @@ -262,11 +333,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Expr_BinaryOp_Identical { -. . . Roles: Expression,Binary,Operator,Relational,Identical +. . . Roles: Binary,Expression,Identical,Operator,Relational . . . StartPosition: { . . . . Offset: 54 . . . . Line: 7 @@ -282,8 +362,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 54 . . . . . . Line: 7 @@ -297,10 +376,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 61 . . . . . . Line: 7 @@ -314,11 +401,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_BinaryOp_NotEqual { -. . . Roles: Expression,Binary,Operator,Relational,Not,Equal +. . . Roles: Binary,Equal,Expression,Not,Operator,Relational . . . StartPosition: { . . . . Offset: 65 . . . . Line: 8 @@ -334,8 +430,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 65 . . . . . . Line: 8 @@ -349,10 +444,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 71 . . . . . . Line: 8 @@ -366,11 +469,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Expr_BinaryOp_NotIdentical { -. . . Roles: Expression,Binary,Operator,Relational,Not,Identical +. . . Roles: Binary,Expression,Identical,Not,Operator,Relational . . . StartPosition: { . . . . Offset: 75 . . . . Line: 9 @@ -386,8 +498,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 75 . . . . . . Line: 9 @@ -401,10 +512,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 82 . . . . . . Line: 9 @@ -418,11 +537,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 8: Expr_BinaryOp_Spaceship { -. . . Roles: Expression,Binary,Operator,Relational,GreaterThanOrEqual,LessThanOrEqual +. . . Roles: Binary,Expression,GreaterThanOrEqual,LessThanOrEqual,Operator,Relational . . . StartPosition: { . . . . Offset: 86 . . . . Line: 10 @@ -438,8 +566,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 86 . . . . . . Line: 10 @@ -453,10 +580,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 93 . . . . . . Line: 10 @@ -470,11 +605,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 9: Expr_Instanceof { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . TOKEN "instanceof" . . . StartPosition: { . . . . Offset: 97 @@ -491,8 +635,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Argument -. . . . . TOKEN "a" +. . . . . Roles: Argument,Call,Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 11 @@ -506,9 +649,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Name { -. . . . . Roles: Expression,Identifier,Qualified,Argument,Type +. . . . . Roles: Argument,Call,Expression,Identifier,Type . . . . . TOKEN "B" . . . . . StartPosition: { . . . . . . Offset: 111 @@ -527,7 +679,7 @@ File { . . . } . . } . . 10: Expr_Instanceof { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . TOKEN "instanceof" . . . StartPosition: { . . . . Offset: 114 @@ -544,8 +696,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Argument -. . . . . TOKEN "a" +. . . . . Roles: Argument,Call,Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 114 . . . . . . Line: 12 @@ -559,10 +710,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Argument,Type -. . . . . TOKEN "b" +. . . . . Roles: Argument,Call,Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 128 . . . . . . Line: 12 @@ -576,6 +735,15 @@ File { . . . . . Properties: { . . . . . . internalRole: class . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/comparisonops.php.native b/fixtures/comparisonops.php.native index 04f63ff..80aef9c 100644 --- a/fixtures/comparisonops.php.native +++ b/fixtures/comparisonops.php.native @@ -2,356 +2,359 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "left": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 13, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 6, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Greater", - "right": { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 + "left": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 9 + "nodeType": "Expr_BinaryOp_Greater", + "right": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 17, + "endFilePos": 22, "endLine": 4, - "endTokenPos": 9, + "endTokenPos": 13, "startFilePos": 16, "startLine": 4, "startTokenPos": 9 }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Smaller", - "right": { - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 13 + "left": { + "attributes": { + "endFilePos": 17, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 9 + }, + "name": "c", + "nodeType": "Expr_Variable" }, - "name": "d", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 32, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 25, - "startLine": 5, - "startTokenPos": 16 + "nodeType": "Expr_BinaryOp_Smaller", + "right": { + "attributes": { + "endFilePos": 22, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 13 + }, + "name": "d", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 26, + "endFilePos": 32, "endLine": 5, - "endTokenPos": 16, + "endTokenPos": 20, "startFilePos": 25, "startLine": 5, "startTokenPos": 16 }, - "name": "e", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_SmallerOrEqual", - "right": { - "attributes": { - "endFilePos": 32, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 31, - "startLine": 5, - "startTokenPos": 20 + "left": { + "attributes": { + "endFilePos": 26, + "endLine": 5, + "endTokenPos": 16, + "startFilePos": 25, + "startLine": 5, + "startTokenPos": 16 + }, + "name": "e", + "nodeType": "Expr_Variable" }, - "name": "f", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 42, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 35, - "startLine": 6, - "startTokenPos": 23 + "nodeType": "Expr_BinaryOp_SmallerOrEqual", + "right": { + "attributes": { + "endFilePos": 32, + "endLine": 5, + "endTokenPos": 20, + "startFilePos": 31, + "startLine": 5, + "startTokenPos": 20 + }, + "name": "f", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 36, + "endFilePos": 42, "endLine": 6, - "endTokenPos": 23, + "endTokenPos": 27, "startFilePos": 35, "startLine": 6, "startTokenPos": 23 }, - "name": "g", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_GreaterOrEqual", - "right": { - "attributes": { - "endFilePos": 42, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 41, - "startLine": 6, - "startTokenPos": 27 + "left": { + "attributes": { + "endFilePos": 36, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 35, + "startLine": 6, + "startTokenPos": 23 + }, + "name": "g", + "nodeType": "Expr_Variable" }, - "name": "h", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 52, - "endLine": 7, - "endTokenPos": 34, - "startFilePos": 45, - "startLine": 7, - "startTokenPos": 30 + "nodeType": "Expr_BinaryOp_GreaterOrEqual", + "right": { + "attributes": { + "endFilePos": 42, + "endLine": 6, + "endTokenPos": 27, + "startFilePos": 41, + "startLine": 6, + "startTokenPos": 27 + }, + "name": "h", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 46, + "endFilePos": 52, "endLine": 7, - "endTokenPos": 30, + "endTokenPos": 34, "startFilePos": 45, "startLine": 7, "startTokenPos": 30 }, - "name": "i", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Equal", - "right": { - "attributes": { - "endFilePos": 52, - "endLine": 7, - "endTokenPos": 34, - "startFilePos": 51, - "startLine": 7, - "startTokenPos": 34 + "left": { + "attributes": { + "endFilePos": 46, + "endLine": 7, + "endTokenPos": 30, + "startFilePos": 45, + "startLine": 7, + "startTokenPos": 30 + }, + "name": "i", + "nodeType": "Expr_Variable" }, - "name": "j", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 63, - "endLine": 8, - "endTokenPos": 41, - "startFilePos": 55, - "startLine": 8, - "startTokenPos": 37 + "nodeType": "Expr_BinaryOp_Equal", + "right": { + "attributes": { + "endFilePos": 52, + "endLine": 7, + "endTokenPos": 34, + "startFilePos": 51, + "startLine": 7, + "startTokenPos": 34 + }, + "name": "j", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 56, + "endFilePos": 63, "endLine": 8, - "endTokenPos": 37, + "endTokenPos": 41, "startFilePos": 55, "startLine": 8, "startTokenPos": 37 }, - "name": "k", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Identical", - "right": { - "attributes": { - "endFilePos": 63, - "endLine": 8, - "endTokenPos": 41, - "startFilePos": 62, - "startLine": 8, - "startTokenPos": 41 + "left": { + "attributes": { + "endFilePos": 56, + "endLine": 8, + "endTokenPos": 37, + "startFilePos": 55, + "startLine": 8, + "startTokenPos": 37 + }, + "name": "k", + "nodeType": "Expr_Variable" }, - "name": "l", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 73, - "endLine": 9, - "endTokenPos": 48, - "startFilePos": 66, - "startLine": 9, - "startTokenPos": 44 + "nodeType": "Expr_BinaryOp_Identical", + "right": { + "attributes": { + "endFilePos": 63, + "endLine": 8, + "endTokenPos": 41, + "startFilePos": 62, + "startLine": 8, + "startTokenPos": 41 + }, + "name": "l", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 67, + "endFilePos": 73, "endLine": 9, - "endTokenPos": 44, + "endTokenPos": 48, "startFilePos": 66, "startLine": 9, "startTokenPos": 44 }, - "name": "m", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_NotEqual", - "right": { - "attributes": { - "endFilePos": 73, - "endLine": 9, - "endTokenPos": 48, - "startFilePos": 72, - "startLine": 9, - "startTokenPos": 48 + "left": { + "attributes": { + "endFilePos": 67, + "endLine": 9, + "endTokenPos": 44, + "startFilePos": 66, + "startLine": 9, + "startTokenPos": 44 + }, + "name": "m", + "nodeType": "Expr_Variable" }, - "name": "n", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 83, - "endLine": 10, - "endTokenPos": 55, - "startFilePos": 76, - "startLine": 10, - "startTokenPos": 51 + "nodeType": "Expr_BinaryOp_NotEqual", + "right": { + "attributes": { + "endFilePos": 73, + "endLine": 9, + "endTokenPos": 48, + "startFilePos": 72, + "startLine": 9, + "startTokenPos": 48 + }, + "name": "n", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 77, + "endFilePos": 83, "endLine": 10, - "endTokenPos": 51, + "endTokenPos": 55, "startFilePos": 76, "startLine": 10, "startTokenPos": 51 }, - "name": "o", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_NotEqual", - "right": { - "attributes": { - "endFilePos": 83, - "endLine": 10, - "endTokenPos": 55, - "startFilePos": 82, - "startLine": 10, - "startTokenPos": 55 + "left": { + "attributes": { + "endFilePos": 77, + "endLine": 10, + "endTokenPos": 51, + "startFilePos": 76, + "startLine": 10, + "startTokenPos": 51 + }, + "name": "o", + "nodeType": "Expr_Variable" }, - "name": "p", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 94, - "endLine": 11, - "endTokenPos": 62, - "startFilePos": 86, - "startLine": 11, - "startTokenPos": 58 + "nodeType": "Expr_BinaryOp_NotEqual", + "right": { + "attributes": { + "endFilePos": 83, + "endLine": 10, + "endTokenPos": 55, + "startFilePos": 82, + "startLine": 10, + "startTokenPos": 55 + }, + "name": "p", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 87, + "endFilePos": 94, "endLine": 11, - "endTokenPos": 58, + "endTokenPos": 62, "startFilePos": 86, "startLine": 11, "startTokenPos": 58 }, - "name": "r", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_NotIdentical", - "right": { - "attributes": { - "endFilePos": 94, - "endLine": 11, - "endTokenPos": 62, - "startFilePos": 93, - "startLine": 11, - "startTokenPos": 62 + "left": { + "attributes": { + "endFilePos": 87, + "endLine": 11, + "endTokenPos": 58, + "startFilePos": 86, + "startLine": 11, + "startTokenPos": 58 + }, + "name": "r", + "nodeType": "Expr_Variable" }, - "name": "s", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 105, - "endLine": 12, - "endTokenPos": 69, - "startFilePos": 97, - "startLine": 12, - "startTokenPos": 65 + "nodeType": "Expr_BinaryOp_NotIdentical", + "right": { + "attributes": { + "endFilePos": 94, + "endLine": 11, + "endTokenPos": 62, + "startFilePos": 93, + "startLine": 11, + "startTokenPos": 62 + }, + "name": "s", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 98, + "endFilePos": 105, "endLine": 12, - "endTokenPos": 65, + "endTokenPos": 69, "startFilePos": 97, "startLine": 12, "startTokenPos": 65 }, - "name": "t", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Spaceship", - "right": { - "attributes": { - "endFilePos": 105, - "endLine": 12, - "endTokenPos": 69, - "startFilePos": 104, - "startLine": 12, - "startTokenPos": 69 + "left": { + "attributes": { + "endFilePos": 98, + "endLine": 12, + "endTokenPos": 65, + "startFilePos": 97, + "startLine": 12, + "startTokenPos": 65 + }, + "name": "t", + "nodeType": "Expr_Variable" }, - "name": "u", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BinaryOp_Spaceship", + "right": { + "attributes": { + "endFilePos": 105, + "endLine": 12, + "endTokenPos": 69, + "startFilePos": 104, + "startLine": 12, + "startTokenPos": 69 + }, + "name": "u", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/comparisonops.php.uast b/fixtures/comparisonops.php.uast index 5922311..ead6732 100644 --- a/fixtures/comparisonops.php.uast +++ b/fixtures/comparisonops.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_BinaryOp_Greater { -. . . Roles: Expression,Binary,Operator,Relational,GreaterThan +. . . Roles: Binary,Expression,GreaterThan,Operator,Relational . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,10 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 3 @@ -54,11 +61,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_BinaryOp_Smaller { -. . . Roles: Expression,Binary,Operator,Relational,LessThan +. . . Roles: Binary,Expression,LessThan,Operator,Relational . . . StartPosition: { . . . . Offset: 16 . . . . Line: 4 @@ -74,8 +90,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 4 @@ -89,10 +104,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "d" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 4 @@ -106,11 +129,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_BinaryOp_SmallerOrEqual { -. . . Roles: Expression,Binary,Operator,Relational,LessThanOrEqual +. . . Roles: Binary,Expression,LessThanOrEqual,Operator,Relational . . . StartPosition: { . . . . Offset: 25 . . . . Line: 5 @@ -126,8 +158,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "e" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 25 . . . . . . Line: 5 @@ -141,10 +172,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "f" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 5 @@ -158,11 +197,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_BinaryOp_GreaterOrEqual { -. . . Roles: Expression,Binary,Operator,Relational,GreaterThanOrEqual +. . . Roles: Binary,Expression,GreaterThanOrEqual,Operator,Relational . . . StartPosition: { . . . . Offset: 35 . . . . Line: 6 @@ -178,8 +226,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "g" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 35 . . . . . . Line: 6 @@ -193,10 +240,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "g" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "h" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 41 . . . . . . Line: 6 @@ -210,11 +265,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "h" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_BinaryOp_Equal { -. . . Roles: Expression,Binary,Operator,Relational,Equal +. . . Roles: Binary,Equal,Expression,Operator,Relational . . . StartPosition: { . . . . Offset: 45 . . . . Line: 7 @@ -230,8 +294,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "i" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 45 . . . . . . Line: 7 @@ -245,10 +308,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "i" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "j" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 51 . . . . . . Line: 7 @@ -262,11 +333,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "j" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Expr_BinaryOp_Identical { -. . . Roles: Expression,Binary,Operator,Relational,Identical +. . . Roles: Binary,Expression,Identical,Operator,Relational . . . StartPosition: { . . . . Offset: 55 . . . . Line: 8 @@ -282,8 +362,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "k" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 55 . . . . . . Line: 8 @@ -297,10 +376,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "k" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "l" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 62 . . . . . . Line: 8 @@ -314,11 +401,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "l" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_BinaryOp_NotEqual { -. . . Roles: Expression,Binary,Operator,Relational,Not,Equal +. . . Roles: Binary,Equal,Expression,Not,Operator,Relational . . . StartPosition: { . . . . Offset: 66 . . . . Line: 9 @@ -334,8 +430,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "m" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 66 . . . . . . Line: 9 @@ -349,10 +444,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "m" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "n" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 72 . . . . . . Line: 9 @@ -366,11 +469,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "n" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Expr_BinaryOp_NotEqual { -. . . Roles: Expression,Binary,Operator,Relational,Not,Equal +. . . Roles: Binary,Equal,Expression,Not,Operator,Relational . . . StartPosition: { . . . . Offset: 76 . . . . Line: 10 @@ -386,8 +498,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "o" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 76 . . . . . . Line: 10 @@ -401,10 +512,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "o" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "p" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 82 . . . . . . Line: 10 @@ -418,11 +537,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "p" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 8: Expr_BinaryOp_NotIdentical { -. . . Roles: Expression,Binary,Operator,Relational,Not,Identical +. . . Roles: Binary,Expression,Identical,Not,Operator,Relational . . . StartPosition: { . . . . Offset: 86 . . . . Line: 11 @@ -438,8 +566,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "r" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 86 . . . . . . Line: 11 @@ -453,10 +580,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "r" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "s" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 93 . . . . . . Line: 11 @@ -470,11 +605,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "s" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 9: Expr_BinaryOp_Spaceship { -. . . Roles: Expression,Binary,Operator,Relational,GreaterThanOrEqual,LessThanOrEqual +. . . Roles: Binary,Expression,GreaterThanOrEqual,LessThanOrEqual,Operator,Relational . . . StartPosition: { . . . . Offset: 97 . . . . Line: 12 @@ -490,8 +634,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "t" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 12 @@ -505,10 +648,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "t" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "u" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 104 . . . . . . Line: 12 @@ -522,6 +673,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "u" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/complex.php.native b/fixtures/complex.php.native index 392c2b9..f73be34 100644 --- a/fixtures/complex.php.native +++ b/fixtures/complex.php.native @@ -2,65 +2,57 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 6, - "line": 2, - "nodeType": "Comment", - "text": "/*\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * This software consists of voluntary contributions made by many individuals\n * and is licensed under the MIT license. For more information, see\n * .\n */" - } - ], - "endFilePos": 1020, - "endLine": 20, - "endTokenPos": 8, - "kind": 1, - "startFilePos": 989, - "startLine": 20, - "startTokenPos": 3 - }, - "name": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 1019, + "comments": [ + { + "filePos": 6, + "line": 2, + "nodeType": "Comment", + "text": "/*\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * This software consists of voluntary contributions made by many individuals\n * and is licensed under the MIT license. For more information, see\n * .\n */" + } + ], + "endFilePos": 1020, "endLine": 20, - "endTokenPos": 7, - "startFilePos": 999, + "endTokenPos": 8, + "kind": 1, + "startFilePos": 989, "startLine": 20, - "startTokenPos": 5 + "startTokenPos": 3 }, - "nodeType": "Name", - "parts": [ - "Doctrine", - "Instantiator" - ] - }, - "nodeType": "Stmt_Namespace", - "stmts": [ - { + "name": { "attributes": { - "endFilePos": 1083, - "endLine": 22, - "endTokenPos": 19, - "startFilePos": 1023, - "startLine": 22, - "startTokenPos": 10 + "endFilePos": 1019, + "endLine": 20, + "endTokenPos": 7, + "startFilePos": 999, + "startLine": 20, + "startTokenPos": 5 }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "InvalidArgumentException", - "attributes": { - "endFilePos": 1082, - "endLine": 22, - "endTokenPos": 18, - "startFilePos": 1027, - "startLine": 22, - "startTokenPos": 12 - }, - "name": { + "nodeType": "Name", + "parts": [ + "Doctrine", + "Instantiator" + ] + }, + "nodeType": "Stmt_Namespace", + "stmts": [ + { + "attributes": { + "endFilePos": 1083, + "endLine": 22, + "endTokenPos": 19, + "startFilePos": 1023, + "startLine": 22, + "startTokenPos": 10 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "InvalidArgumentException", "attributes": { "endFilePos": 1082, "endLine": 22, @@ -69,42 +61,42 @@ "startLine": 22, "startTokenPos": 12 }, - "nodeType": "Name", - "parts": [ - "Doctrine", - "Instantiator", - "Exception", - "InvalidArgumentException" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 1145, - "endLine": 23, - "endTokenPos": 30, - "startFilePos": 1085, - "startLine": 23, - "startTokenPos": 21 + "name": { + "attributes": { + "endFilePos": 1082, + "endLine": 22, + "endTokenPos": 18, + "startFilePos": 1027, + "startLine": 22, + "startTokenPos": 12 + }, + "nodeType": "Name", + "parts": [ + "Doctrine", + "Instantiator", + "Exception", + "InvalidArgumentException" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "UnexpectedValueException", - "attributes": { - "endFilePos": 1144, - "endLine": 23, - "endTokenPos": 29, - "startFilePos": 1089, - "startLine": 23, - "startTokenPos": 23 - }, - "name": { + { + "attributes": { + "endFilePos": 1145, + "endLine": 23, + "endTokenPos": 30, + "startFilePos": 1085, + "startLine": 23, + "startTokenPos": 21 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "UnexpectedValueException", "attributes": { "endFilePos": 1144, "endLine": 23, @@ -113,42 +105,42 @@ "startLine": 23, "startTokenPos": 23 }, - "nodeType": "Name", - "parts": [ - "Doctrine", - "Instantiator", - "Exception", - "UnexpectedValueException" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 1160, - "endLine": 24, - "endTokenPos": 35, - "startFilePos": 1147, - "startLine": 24, - "startTokenPos": 32 + "name": { + "attributes": { + "endFilePos": 1144, + "endLine": 23, + "endTokenPos": 29, + "startFilePos": 1089, + "startLine": 23, + "startTokenPos": 23 + }, + "nodeType": "Name", + "parts": [ + "Doctrine", + "Instantiator", + "Exception", + "UnexpectedValueException" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "Exception", - "attributes": { - "endFilePos": 1159, - "endLine": 24, - "endTokenPos": 34, - "startFilePos": 1151, - "startLine": 24, - "startTokenPos": 34 - }, - "name": { + { + "attributes": { + "endFilePos": 1160, + "endLine": 24, + "endTokenPos": 35, + "startFilePos": 1147, + "startLine": 24, + "startTokenPos": 32 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "Exception", "attributes": { "endFilePos": 1159, "endLine": 24, @@ -157,39 +149,39 @@ "startLine": 24, "startTokenPos": 34 }, - "nodeType": "Name", - "parts": [ - "Exception" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 1181, - "endLine": 25, - "endTokenPos": 40, - "startFilePos": 1162, - "startLine": 25, - "startTokenPos": 37 + "name": { + "attributes": { + "endFilePos": 1159, + "endLine": 24, + "endTokenPos": 34, + "startFilePos": 1151, + "startLine": 24, + "startTokenPos": 34 + }, + "nodeType": "Name", + "parts": [ + "Exception" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "ReflectionClass", - "attributes": { - "endFilePos": 1180, - "endLine": 25, - "endTokenPos": 39, - "startFilePos": 1166, - "startLine": 25, - "startTokenPos": 39 - }, - "name": { + { + "attributes": { + "endFilePos": 1181, + "endLine": 25, + "endTokenPos": 40, + "startFilePos": 1162, + "startLine": 25, + "startTokenPos": 37 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "ReflectionClass", "attributes": { "endFilePos": 1180, "endLine": 25, @@ -198,633 +190,630 @@ "startLine": 25, "startTokenPos": 39 }, + "name": { + "attributes": { + "endFilePos": 1180, + "endLine": 25, + "endTokenPos": 39, + "startFilePos": 1166, + "startLine": 25, + "startTokenPos": 39 + }, + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] + }, + { + "attributes": { + "comments": [ + { + "filePos": 1184, + "line": 27, + "nodeType": "Comment_Doc", + "text": "/**\n * {@inheritDoc}\n *\n * @author Marco Pivetta \n */" + } + ], + "endFilePos": 6781, + "endLine": 216, + "endTokenPos": 821, + "startFilePos": 1258, + "startLine": 32, + "startTokenPos": 44 + }, + "extends": null, + "flags": 32, + "implements": [ + { + "attributes": { + "endFilePos": 1314, + "endLine": 32, + "endTokenPos": 52, + "startFilePos": 1294, + "startLine": 32, + "startTokenPos": 52 + }, "nodeType": "Name", "parts": [ - "ReflectionClass" + "InstantiatorInterface" ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "comments": [ - { - "filePos": 1184, - "line": 27, - "nodeType": "Comment_Doc", - "text": "/**\n * {@inheritDoc}\n *\n * @author Marco Pivetta \n */" } ], - "endFilePos": 6781, - "endLine": 216, - "endTokenPos": 821, - "startFilePos": 1258, - "startLine": 32, - "startTokenPos": 44 - }, - "extends": null, - "flags": 32, - "implements": [ - { - "attributes": { - "endFilePos": 1314, - "endLine": 32, - "endTokenPos": 52, - "startFilePos": 1294, - "startLine": 32, - "startTokenPos": 52 - }, - "nodeType": "Name", - "parts": [ - "InstantiatorInterface" - ] - } - ], - "name": "Instantiator", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "comments": [ + "name": "Instantiator", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "comments": [ + { + "filePos": 1322, + "line": 34, + "nodeType": "Comment_Doc", + "text": "/**\n * Markers used internally by PHP to define whether {@see \\unserialize} should invoke\n * the method {@see \\Serializable::unserialize()} when dealing with classes implementing\n * the {@see \\Serializable} interface.\n */" + } + ], + "endFilePos": 1615, + "endLine": 39, + "endTokenPos": 65, + "startFilePos": 1564, + "startLine": 39, + "startTokenPos": 58 + }, + "consts": [ { - "filePos": 1322, - "line": 34, - "nodeType": "Comment_Doc", - "text": "/**\n * Markers used internally by PHP to define whether {@see \\unserialize} should invoke\n * the method {@see \\Serializable::unserialize()} when dealing with classes implementing\n * the {@see \\Serializable} interface.\n */" - } - ], - "endFilePos": 1615, - "endLine": 39, - "endTokenPos": 65, - "startFilePos": 1564, - "startLine": 39, - "startTokenPos": 58 - }, - "consts": [ - { - "attributes": { - "endFilePos": 1614, - "endLine": 39, - "endTokenPos": 64, - "startFilePos": 1570, - "startLine": 39, - "startTokenPos": 60 - }, - "name": "SERIALIZATION_FORMAT_USE_UNSERIALIZER", - "nodeType": "Const", - "value": { "attributes": { "endFilePos": 1614, "endLine": 39, "endTokenPos": 64, - "kind": 1, - "startFilePos": 1612, + "startFilePos": 1570, "startLine": 39, - "startTokenPos": 64 + "startTokenPos": 60 }, - "nodeType": "Scalar_String", - "value": "C" + "name": "SERIALIZATION_FORMAT_USE_UNSERIALIZER", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 1614, + "endLine": 39, + "endTokenPos": 64, + "kind": 1, + "startFilePos": 1612, + "startLine": 39, + "startTokenPos": 64 + }, + "nodeType": "Scalar_String", + "value": "C" + } } - } - ], - "flags": 0, - "nodeType": "Stmt_ClassConst" - }, - { - "attributes": { - "endFilePos": 1672, - "endLine": 40, - "endTokenPos": 74, - "startFilePos": 1621, - "startLine": 40, - "startTokenPos": 67 + ], + "flags": 0, + "nodeType": "Stmt_ClassConst" }, - "consts": [ - { - "attributes": { - "endFilePos": 1671, - "endLine": 40, - "endTokenPos": 73, - "startFilePos": 1627, - "startLine": 40, - "startTokenPos": 69 - }, - "name": "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 1672, + "endLine": 40, + "endTokenPos": 74, + "startFilePos": 1621, + "startLine": 40, + "startTokenPos": 67 + }, + "consts": [ + { "attributes": { "endFilePos": 1671, "endLine": 40, "endTokenPos": 73, - "kind": 1, - "startFilePos": 1669, + "startFilePos": 1627, "startLine": 40, - "startTokenPos": 73 + "startTokenPos": 69 }, - "nodeType": "Scalar_String", - "value": "O" - } - } - ], - "flags": 0, - "nodeType": "Stmt_ClassConst" - }, - { - "attributes": { - "comments": [ - { - "filePos": 1679, - "line": 42, - "nodeType": "Comment_Doc", - "text": "/**\n * @var \\callable[] used to instantiate specific classes, indexed by class name\n */" + "name": "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 1671, + "endLine": 40, + "endTokenPos": 73, + "kind": 1, + "startFilePos": 1669, + "startLine": 40, + "startTokenPos": 73 + }, + "nodeType": "Scalar_String", + "value": "O" + } } ], - "endFilePos": 1819, - "endLine": 45, - "endTokenPos": 88, - "startFilePos": 1779, - "startLine": 45, - "startTokenPos": 78 + "flags": 0, + "nodeType": "Stmt_ClassConst" }, - "flags": 12, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 1818, - "endLine": 45, - "endTokenPos": 87, - "startFilePos": 1794, - "startLine": 45, - "startTokenPos": 82 - }, - "default": { + { + "attributes": { + "comments": [ + { + "filePos": 1679, + "line": 42, + "nodeType": "Comment_Doc", + "text": "/**\n * @var \\callable[] used to instantiate specific classes, indexed by class name\n */" + } + ], + "endFilePos": 1819, + "endLine": 45, + "endTokenPos": 88, + "startFilePos": 1779, + "startLine": 45, + "startTokenPos": 78 + }, + "flags": 12, + "nodeType": "Stmt_Property", + "props": [ + { "attributes": { "endFilePos": 1818, "endLine": 45, "endTokenPos": 87, - "kind": 2, - "startFilePos": 1817, + "startFilePos": 1794, "startLine": 45, - "startTokenPos": 86 + "startTokenPos": 82 }, - "items": [], - "nodeType": "Expr_Array" - }, - "name": "cachedInstantiators", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 12 - }, - { - "attributes": { - "comments": [ - { - "filePos": 1826, - "line": 47, - "nodeType": "Comment_Doc", - "text": "/**\n * @var object[] of objects that can directly be cloned, indexed by class name\n */" + "default": { + "attributes": { + "endFilePos": 1818, + "endLine": 45, + "endTokenPos": 87, + "kind": 2, + "startFilePos": 1817, + "startLine": 45, + "startTokenPos": 86 + }, + "items": [], + "nodeType": "Expr_Array" + }, + "name": "cachedInstantiators", + "nodeType": "Stmt_PropertyProperty" } ], - "endFilePos": 1962, - "endLine": 50, - "endTokenPos": 102, - "startFilePos": 1925, - "startLine": 50, - "startTokenPos": 92 + "type": 12 }, - "flags": 12, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 1961, - "endLine": 50, - "endTokenPos": 101, - "startFilePos": 1940, - "startLine": 50, - "startTokenPos": 96 - }, - "default": { + { + "attributes": { + "comments": [ + { + "filePos": 1826, + "line": 47, + "nodeType": "Comment_Doc", + "text": "/**\n * @var object[] of objects that can directly be cloned, indexed by class name\n */" + } + ], + "endFilePos": 1962, + "endLine": 50, + "endTokenPos": 102, + "startFilePos": 1925, + "startLine": 50, + "startTokenPos": 92 + }, + "flags": 12, + "nodeType": "Stmt_Property", + "props": [ + { "attributes": { "endFilePos": 1961, "endLine": 50, "endTokenPos": 101, - "kind": 2, - "startFilePos": 1960, + "startFilePos": 1940, "startLine": 50, - "startTokenPos": 100 + "startTokenPos": 96 }, - "items": [], - "nodeType": "Expr_Array" - }, - "name": "cachedCloneables", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 12 - }, - { - "attributes": { - "comments": [ - { - "filePos": 1969, - "line": 52, - "nodeType": "Comment_Doc", - "text": "/**\n * {@inheritDoc}\n */" + "default": { + "attributes": { + "endFilePos": 1961, + "endLine": 50, + "endTokenPos": 101, + "kind": 2, + "startFilePos": 1960, + "startLine": 50, + "startTokenPos": 100 + }, + "items": [], + "nodeType": "Expr_Array" + }, + "name": "cachedCloneables", + "nodeType": "Stmt_PropertyProperty" } ], - "endFilePos": 2414, - "endLine": 68, - "endTokenPos": 194, - "startFilePos": 2006, - "startLine": 55, - "startTokenPos": 106 + "type": 12 }, - "byRef": false, - "flags": 1, - "name": "instantiate", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 2043, - "endLine": 55, - "endTokenPos": 112, - "startFilePos": 2034, - "startLine": 55, - "startTokenPos": 112 - }, - "byRef": false, - "default": null, - "name": "className", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 2180, - "endLine": 59, - "endTokenPos": 145, - "startFilePos": 2060, - "startLine": 57, - "startTokenPos": 117 - }, - "cond": { + { + "attributes": { + "comments": [ + { + "filePos": 1969, + "line": 52, + "nodeType": "Comment_Doc", + "text": "/**\n * {@inheritDoc}\n */" + } + ], + "endFilePos": 2414, + "endLine": 68, + "endTokenPos": 194, + "startFilePos": 2006, + "startLine": 55, + "startTokenPos": 106 + }, + "byRef": false, + "flags": 1, + "name": "instantiate", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 2043, + "endLine": 55, + "endTokenPos": 112, + "startFilePos": 2034, + "startLine": 55, + "startTokenPos": 112 + }, + "byRef": false, + "default": null, + "name": "className", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [ + { "attributes": { - "endFilePos": 2105, - "endLine": 57, - "endTokenPos": 128, - "startFilePos": 2064, + "endFilePos": 2180, + "endLine": 59, + "endTokenPos": 145, + "startFilePos": 2060, "startLine": 57, - "startTokenPos": 120 + "startTokenPos": 117 }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 2104, - "endLine": 57, - "endTokenPos": 127, - "startFilePos": 2070, - "startLine": 57, - "startTokenPos": 122 - }, - "dim": { - "attributes": { - "endFilePos": 2103, - "endLine": 57, - "endTokenPos": 126, - "startFilePos": 2094, - "startLine": 57, - "startTokenPos": 126 - }, - "name": "className", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "cond": { + "attributes": { + "endFilePos": 2105, + "endLine": 57, + "endTokenPos": 128, + "startFilePos": 2064, + "startLine": 57, + "startTokenPos": 120 + }, + "nodeType": "Expr_Isset", + "vars": [ + { "attributes": { - "endFilePos": 2092, + "endFilePos": 2104, "endLine": 57, - "endTokenPos": 124, + "endTokenPos": 127, "startFilePos": 2070, "startLine": 57, "startTokenPos": 122 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 2103, + "endLine": 57, + "endTokenPos": 126, + "startFilePos": 2094, + "startLine": 57, + "startTokenPos": 126 + }, + "name": "className", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 2073, + "endFilePos": 2092, "endLine": 57, - "endTokenPos": 122, + "endTokenPos": 124, "startFilePos": 2070, "startLine": 57, "startTokenPos": 122 }, - "nodeType": "Name", - "parts": [ - "self" - ] - }, - "name": "cachedCloneables", - "nodeType": "Expr_StaticPropertyFetch" + "class": { + "attributes": { + "endFilePos": 2073, + "endLine": 57, + "endTokenPos": 122, + "startFilePos": 2070, + "startLine": 57, + "startTokenPos": 122 + }, + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "cachedCloneables", + "nodeType": "Expr_StaticPropertyFetch" + } } - } - ] - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 2170, - "endLine": 58, - "endTokenPos": 143, - "startFilePos": 2122, - "startLine": 58, - "startTokenPos": 133 - }, - "expr": { + ] + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { - "endFilePos": 2169, + "endFilePos": 2170, "endLine": 58, - "endTokenPos": 142, - "startFilePos": 2129, + "endTokenPos": 143, + "startFilePos": 2122, "startLine": 58, - "startTokenPos": 135 + "startTokenPos": 133 }, "expr": { "attributes": { "endFilePos": 2169, "endLine": 58, "endTokenPos": 142, - "startFilePos": 2135, + "startFilePos": 2129, "startLine": 58, - "startTokenPos": 137 - }, - "dim": { - "attributes": { - "endFilePos": 2168, - "endLine": 58, - "endTokenPos": 141, - "startFilePos": 2159, - "startLine": 58, - "startTokenPos": 141 - }, - "name": "className", - "nodeType": "Expr_Variable" + "startTokenPos": 135 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "expr": { "attributes": { - "endFilePos": 2157, + "endFilePos": 2169, "endLine": 58, - "endTokenPos": 139, + "endTokenPos": 142, "startFilePos": 2135, "startLine": 58, "startTokenPos": 137 }, - "class": { + "dim": { "attributes": { - "endFilePos": 2138, + "endFilePos": 2168, "endLine": 58, - "endTokenPos": 137, - "startFilePos": 2135, + "endTokenPos": 141, + "startFilePos": 2159, "startLine": 58, - "startTokenPos": 137 + "startTokenPos": 141 }, - "nodeType": "Name", - "parts": [ - "self" - ] + "name": "className", + "nodeType": "Expr_Variable" }, - "name": "cachedCloneables", - "nodeType": "Expr_StaticPropertyFetch" - } + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 2157, + "endLine": 58, + "endTokenPos": 139, + "startFilePos": 2135, + "startLine": 58, + "startTokenPos": 137 + }, + "class": { + "attributes": { + "endFilePos": 2138, + "endLine": 58, + "endTokenPos": 137, + "startFilePos": 2135, + "startLine": 58, + "startTokenPos": 137 + }, + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "cachedCloneables", + "nodeType": "Expr_StaticPropertyFetch" + } + }, + "nodeType": "Expr_Clone" }, - "nodeType": "Expr_Clone" - }, - "nodeType": "Stmt_Return" - } - ] - }, - { - "attributes": { - "endFilePos": 2347, - "endLine": 65, - "endTokenPos": 182, - "startFilePos": 2191, - "startLine": 61, - "startTokenPos": 147 + "nodeType": "Stmt_Return" + } + ] }, - "cond": { + { "attributes": { - "endFilePos": 2239, - "endLine": 61, - "endTokenPos": 158, - "startFilePos": 2195, + "endFilePos": 2347, + "endLine": 65, + "endTokenPos": 182, + "startFilePos": 2191, "startLine": 61, - "startTokenPos": 150 + "startTokenPos": 147 }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 2238, - "endLine": 61, - "endTokenPos": 157, - "startFilePos": 2201, - "startLine": 61, - "startTokenPos": 152 - }, - "dim": { - "attributes": { - "endFilePos": 2237, - "endLine": 61, - "endTokenPos": 156, - "startFilePos": 2228, - "startLine": 61, - "startTokenPos": 156 - }, - "name": "className", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "cond": { + "attributes": { + "endFilePos": 2239, + "endLine": 61, + "endTokenPos": 158, + "startFilePos": 2195, + "startLine": 61, + "startTokenPos": 150 + }, + "nodeType": "Expr_Isset", + "vars": [ + { "attributes": { - "endFilePos": 2226, + "endFilePos": 2238, "endLine": 61, - "endTokenPos": 154, + "endTokenPos": 157, "startFilePos": 2201, "startLine": 61, "startTokenPos": 152 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 2237, + "endLine": 61, + "endTokenPos": 156, + "startFilePos": 2228, + "startLine": 61, + "startTokenPos": 156 + }, + "name": "className", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 2204, + "endFilePos": 2226, "endLine": 61, - "endTokenPos": 152, + "endTokenPos": 154, "startFilePos": 2201, "startLine": 61, "startTokenPos": 152 }, - "nodeType": "Name", - "parts": [ - "self" - ] - }, - "name": "cachedInstantiators", - "nodeType": "Expr_StaticPropertyFetch" + "class": { + "attributes": { + "endFilePos": 2204, + "endLine": 61, + "endTokenPos": 152, + "startFilePos": 2201, + "startLine": 61, + "startTokenPos": 152 + }, + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "cachedInstantiators", + "nodeType": "Expr_StaticPropertyFetch" + } } - } - ] - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 2304, - "endLine": 62, - "endTokenPos": 172, - "startFilePos": 2256, - "startLine": 62, - "startTokenPos": 163 - }, - "expr": { + ] + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { "endFilePos": 2304, "endLine": 62, "endTokenPos": 172, - "startFilePos": 2267, + "startFilePos": 2256, "startLine": 62, - "startTokenPos": 167 - }, - "dim": { - "attributes": { - "endFilePos": 2303, - "endLine": 62, - "endTokenPos": 171, - "startFilePos": 2294, - "startLine": 62, - "startTokenPos": 171 - }, - "name": "className", - "nodeType": "Expr_Variable" + "startTokenPos": 163 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "expr": { "attributes": { - "endFilePos": 2292, + "endFilePos": 2304, "endLine": 62, - "endTokenPos": 169, + "endTokenPos": 172, "startFilePos": 2267, "startLine": 62, "startTokenPos": 167 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 2303, + "endLine": 62, + "endTokenPos": 171, + "startFilePos": 2294, + "startLine": 62, + "startTokenPos": 171 + }, + "name": "className", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 2270, + "endFilePos": 2292, "endLine": 62, - "endTokenPos": 167, + "endTokenPos": 169, "startFilePos": 2267, "startLine": 62, "startTokenPos": 167 }, - "nodeType": "Name", - "parts": [ - "self" - ] + "class": { + "attributes": { + "endFilePos": 2270, + "endLine": 62, + "endTokenPos": 167, + "startFilePos": 2267, + "startLine": 62, + "startTokenPos": 167 + }, + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "cachedInstantiators", + "nodeType": "Expr_StaticPropertyFetch" + } + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 2263, + "endLine": 62, + "endTokenPos": 163, + "startFilePos": 2256, + "startLine": 62, + "startTokenPos": 163 }, - "name": "cachedInstantiators", - "nodeType": "Expr_StaticPropertyFetch" + "name": "factory", + "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 2263, - "endLine": 62, - "endTokenPos": 163, - "startFilePos": 2256, - "startLine": 62, - "startTokenPos": 163 - }, - "name": "factory", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 2337, - "endLine": 64, - "endTokenPos": 180, - "startFilePos": 2320, - "startLine": 64, - "startTokenPos": 175 - }, - "expr": { - "args": [], + { "attributes": { - "endFilePos": 2336, + "endFilePos": 2337, "endLine": 64, - "endTokenPos": 179, - "startFilePos": 2327, + "endTokenPos": 180, + "startFilePos": 2320, "startLine": 64, - "startTokenPos": 177 + "startTokenPos": 175 }, - "name": { + "expr": { + "args": [], "attributes": { - "endFilePos": 2334, + "endFilePos": 2336, "endLine": 64, - "endTokenPos": 177, + "endTokenPos": 179, "startFilePos": 2327, "startLine": 64, "startTokenPos": 177 }, - "name": "factory", - "nodeType": "Expr_Variable" + "name": { + "attributes": { + "endFilePos": 2334, + "endLine": 64, + "endTokenPos": 177, + "startFilePos": 2327, + "startLine": 64, + "startTokenPos": 177 + }, + "name": "factory", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Stmt_Return" - } - ] - }, - { - "attributes": { - "endFilePos": 2408, - "endLine": 67, - "endTokenPos": 192, - "startFilePos": 2358, - "startLine": 67, - "startTokenPos": 184 + "nodeType": "Stmt_Return" + } + ] }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 2406, - "endLine": 67, - "endTokenPos": 190, - "startFilePos": 2397, - "startLine": 67, - "startTokenPos": 190 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "attributes": { + "endFilePos": 2408, + "endLine": 67, + "endTokenPos": 192, + "startFilePos": 2358, + "startLine": 67, + "startTokenPos": 184 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 2406, "endLine": 67, @@ -833,113 +822,113 @@ "startLine": 67, "startTokenPos": 190 }, - "name": "className", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 2406, + "endLine": 67, + "endTokenPos": 190, + "startFilePos": 2397, + "startLine": 67, + "startTokenPos": 190 + }, + "name": "className", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 2407, - "endLine": 67, - "endTokenPos": 191, - "startFilePos": 2365, - "startLine": 67, - "startTokenPos": 186 - }, - "name": "buildAndCacheFromFactory", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 2369, + "endFilePos": 2407, "endLine": 67, - "endTokenPos": 186, + "endTokenPos": 191, "startFilePos": 2365, "startLine": 67, "startTokenPos": 186 }, - "name": "this", - "nodeType": "Expr_Variable" + "name": "buildAndCacheFromFactory", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 2369, + "endLine": 67, + "endTokenPos": 186, + "startFilePos": 2365, + "startLine": 67, + "startTokenPos": 186 + }, + "name": "this", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_Return" + } + ], + "type": 1 + }, + { + "attributes": { + "comments": [ + { + "filePos": 2421, + "line": 70, + "nodeType": "Comment_Doc", + "text": "/**\n * Builds the requested object and caches it in static properties for performance\n *\n * @return object\n */" } - }, - "nodeType": "Stmt_Return" - } - ], - "type": 1 - }, - { - "attributes": { - "comments": [ + ], + "endFilePos": 2922, + "endLine": 85, + "endTokenPos": 280, + "startFilePos": 2552, + "startLine": 75, + "startTokenPos": 198 + }, + "byRef": false, + "flags": 4, + "name": "buildAndCacheFromFactory", + "nodeType": "Stmt_ClassMethod", + "params": [ { - "filePos": 2421, - "line": 70, - "nodeType": "Comment_Doc", - "text": "/**\n * Builds the requested object and caches it in static properties for performance\n *\n * @return object\n */" + "attributes": { + "endFilePos": 2610, + "endLine": 75, + "endTokenPos": 206, + "startFilePos": 2594, + "startLine": 75, + "startTokenPos": 204 + }, + "byRef": false, + "default": null, + "name": "className", + "nodeType": "Param", + "type": "string", + "variadic": false } ], - "endFilePos": 2922, - "endLine": 85, - "endTokenPos": 280, - "startFilePos": 2552, - "startLine": 75, - "startTokenPos": 198 - }, - "byRef": false, - "flags": 4, - "name": "buildAndCacheFromFactory", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 2610, - "endLine": 75, - "endTokenPos": 206, - "startFilePos": 2594, - "startLine": 75, - "startTokenPos": 204 - }, - "byRef": false, - "default": null, - "name": "className", - "nodeType": "Param", - "type": "string", - "variadic": false - } - ], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 2710, - "endLine": 77, - "endTokenPos": 229, - "startFilePos": 2627, - "startLine": 77, - "startTokenPos": 211 - }, - "expr": { + "returnType": null, + "stmts": [ + { "attributes": { "endFilePos": 2710, "endLine": 77, "endTokenPos": 229, - "startFilePos": 2639, + "startFilePos": 2627, "startLine": 77, - "startTokenPos": 215 + "startTokenPos": 211 }, "expr": { - "args": [ - { - "attributes": { - "endFilePos": 2709, - "endLine": 77, - "endTokenPos": 228, - "startFilePos": 2700, - "startLine": 77, - "startTokenPos": 228 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "attributes": { + "endFilePos": 2710, + "endLine": 77, + "endTokenPos": 229, + "startFilePos": 2639, + "startLine": 77, + "startTokenPos": 215 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 2709, "endLine": 77, @@ -948,184 +937,184 @@ "startLine": 77, "startTokenPos": 228 }, - "name": "className", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 2709, + "endLine": 77, + "endTokenPos": 228, + "startFilePos": 2700, + "startLine": 77, + "startTokenPos": 228 + }, + "name": "className", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 2710, - "endLine": 77, - "endTokenPos": 229, - "startFilePos": 2680, - "startLine": 77, - "startTokenPos": 224 - }, - "name": "buildFactory", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 2684, + "endFilePos": 2710, "endLine": 77, - "endTokenPos": 224, + "endTokenPos": 229, "startFilePos": 2680, "startLine": 77, "startTokenPos": 224 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 2676, - "endLine": 77, - "endTokenPos": 220, - "startFilePos": 2639, - "startLine": 77, - "startTokenPos": 215 - }, - "dim": { - "attributes": { - "endFilePos": 2675, - "endLine": 77, - "endTokenPos": 219, - "startFilePos": 2666, - "startLine": 77, - "startTokenPos": 219 - }, - "name": "className", - "nodeType": "Expr_Variable" + "name": "buildFactory", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 2684, + "endLine": 77, + "endTokenPos": 224, + "startFilePos": 2680, + "startLine": 77, + "startTokenPos": 224 + }, + "name": "this", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_ArrayDimFetch", + "nodeType": "Expr_Assign", "var": { "attributes": { - "endFilePos": 2664, + "endFilePos": 2676, "endLine": 77, - "endTokenPos": 217, + "endTokenPos": 220, "startFilePos": 2639, "startLine": 77, "startTokenPos": 215 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 2675, + "endLine": 77, + "endTokenPos": 219, + "startFilePos": 2666, + "startLine": 77, + "startTokenPos": 219 + }, + "name": "className", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 2642, + "endFilePos": 2664, "endLine": 77, - "endTokenPos": 215, + "endTokenPos": 217, "startFilePos": 2639, "startLine": 77, "startTokenPos": 215 }, - "nodeType": "Name", - "parts": [ - "self" - ] - }, - "name": "cachedInstantiators", - "nodeType": "Expr_StaticPropertyFetch" + "class": { + "attributes": { + "endFilePos": 2642, + "endLine": 77, + "endTokenPos": 215, + "startFilePos": 2639, + "startLine": 77, + "startTokenPos": 215 + }, + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "cachedInstantiators", + "nodeType": "Expr_StaticPropertyFetch" + } } - } - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 2634, - "endLine": 77, - "endTokenPos": 211, - "startFilePos": 2627, - "startLine": 77, - "startTokenPos": 211 }, - "name": "factory", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 2742, - "endLine": 78, - "endTokenPos": 238, - "startFilePos": 2721, - "startLine": 78, - "startTokenPos": 232 + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 2634, + "endLine": 77, + "endTokenPos": 211, + "startFilePos": 2627, + "startLine": 77, + "startTokenPos": 211 + }, + "name": "factory", + "nodeType": "Expr_Variable" + } }, - "expr": { - "args": [], + { "attributes": { "endFilePos": 2742, "endLine": 78, "endTokenPos": 238, - "startFilePos": 2733, + "startFilePos": 2721, "startLine": 78, - "startTokenPos": 236 + "startTokenPos": 232 }, - "name": { + "expr": { + "args": [], "attributes": { - "endFilePos": 2740, + "endFilePos": 2742, "endLine": 78, - "endTokenPos": 236, + "endTokenPos": 238, "startFilePos": 2733, "startLine": 78, "startTokenPos": 236 }, - "name": "factory", - "nodeType": "Expr_Variable" + "name": { + "attributes": { + "endFilePos": 2740, + "endLine": 78, + "endTokenPos": 236, + "startFilePos": 2733, + "startLine": 78, + "startTokenPos": 236 + }, + "name": "factory", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 2729, + "endLine": 78, + "endTokenPos": 232, + "startFilePos": 2721, + "startLine": 78, + "startTokenPos": 232 + }, + "name": "instance", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_Assign", - "var": { + { "attributes": { - "endFilePos": 2729, - "endLine": 78, - "endTokenPos": 232, - "startFilePos": 2721, - "startLine": 78, - "startTokenPos": 232 + "endFilePos": 2889, + "endLine": 82, + "endTokenPos": 273, + "startFilePos": 2754, + "startLine": 80, + "startTokenPos": 241 }, - "name": "instance", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 2889, - "endLine": 82, - "endTokenPos": 273, - "startFilePos": 2754, - "startLine": 80, - "startTokenPos": 241 - }, - "cond": { - "args": [ - { - "attributes": { - "endFilePos": 2808, - "endLine": 80, - "endTokenPos": 253, - "startFilePos": 2779, - "startLine": 80, - "startTokenPos": 248 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { - "args": [ - { - "attributes": { - "endFilePos": 2807, - "endLine": 80, - "endTokenPos": 252, - "startFilePos": 2799, - "startLine": 80, - "startTokenPos": 252 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "cond": { + "args": [ + { + "attributes": { + "endFilePos": 2808, + "endLine": 80, + "endTokenPos": 253, + "startFilePos": 2779, + "startLine": 80, + "startTokenPos": 248 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "args": [ + { "attributes": { "endFilePos": 2807, "endLine": 80, @@ -1134,240 +1123,240 @@ "startLine": 80, "startTokenPos": 252 }, - "name": "instance", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 2807, + "endLine": 80, + "endTokenPos": 252, + "startFilePos": 2799, + "startLine": 80, + "startTokenPos": 252 + }, + "name": "instance", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 2808, - "endLine": 80, - "endTokenPos": 253, - "startFilePos": 2779, - "startLine": 80, - "startTokenPos": 248 - }, - "class": { + ], "attributes": { - "endFilePos": 2797, + "endFilePos": 2808, "endLine": 80, - "endTokenPos": 250, - "startFilePos": 2783, + "endTokenPos": 253, + "startFilePos": 2779, "startLine": 80, - "startTokenPos": 250 + "startTokenPos": 248 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "nodeType": "Expr_New" + "class": { + "attributes": { + "endFilePos": 2797, + "endLine": 80, + "endTokenPos": 250, + "startFilePos": 2783, + "startLine": 80, + "startTokenPos": 250 + }, + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "nodeType": "Expr_New" + } } - } - ], - "attributes": { - "endFilePos": 2809, - "endLine": 80, - "endTokenPos": 254, - "startFilePos": 2758, - "startLine": 80, - "startTokenPos": 244 - }, - "name": "isSafeToClone", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 2762, + "endFilePos": 2809, "endLine": 80, - "endTokenPos": 244, + "endTokenPos": 254, "startFilePos": 2758, "startLine": 80, "startTokenPos": 244 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 2878, - "endLine": 81, - "endTokenPos": 270, - "startFilePos": 2826, - "startLine": 81, - "startTokenPos": 259 - }, - "expr": { + "name": "isSafeToClone", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 2762, + "endLine": 80, + "endTokenPos": 244, + "startFilePos": 2758, + "startLine": 80, + "startTokenPos": 244 + }, + "name": "this", + "nodeType": "Expr_Variable" + } + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { "endFilePos": 2878, "endLine": 81, "endTokenPos": 270, - "startFilePos": 2864, + "startFilePos": 2826, "startLine": 81, - "startTokenPos": 268 + "startTokenPos": 259 }, "expr": { "attributes": { "endFilePos": 2878, "endLine": 81, "endTokenPos": 270, - "startFilePos": 2870, + "startFilePos": 2864, "startLine": 81, - "startTokenPos": 270 + "startTokenPos": 268 }, - "name": "instance", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Clone" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 2860, - "endLine": 81, - "endTokenPos": 264, - "startFilePos": 2826, - "startLine": 81, - "startTokenPos": 259 - }, - "dim": { - "attributes": { - "endFilePos": 2859, - "endLine": 81, - "endTokenPos": 263, - "startFilePos": 2850, - "startLine": 81, - "startTokenPos": 263 + "expr": { + "attributes": { + "endFilePos": 2878, + "endLine": 81, + "endTokenPos": 270, + "startFilePos": 2870, + "startLine": 81, + "startTokenPos": 270 + }, + "name": "instance", + "nodeType": "Expr_Variable" }, - "name": "className", - "nodeType": "Expr_Variable" + "nodeType": "Expr_Clone" }, - "nodeType": "Expr_ArrayDimFetch", + "nodeType": "Expr_Assign", "var": { "attributes": { - "endFilePos": 2848, + "endFilePos": 2860, "endLine": 81, - "endTokenPos": 261, + "endTokenPos": 264, "startFilePos": 2826, "startLine": 81, "startTokenPos": 259 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 2859, + "endLine": 81, + "endTokenPos": 263, + "startFilePos": 2850, + "startLine": 81, + "startTokenPos": 263 + }, + "name": "className", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 2829, + "endFilePos": 2848, "endLine": 81, - "endTokenPos": 259, + "endTokenPos": 261, "startFilePos": 2826, "startLine": 81, "startTokenPos": 259 }, - "nodeType": "Name", - "parts": [ - "self" - ] - }, - "name": "cachedCloneables", - "nodeType": "Expr_StaticPropertyFetch" + "class": { + "attributes": { + "endFilePos": 2829, + "endLine": 81, + "endTokenPos": 259, + "startFilePos": 2826, + "startLine": 81, + "startTokenPos": 259 + }, + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "cachedCloneables", + "nodeType": "Expr_StaticPropertyFetch" + } } } - } - ] - }, - { - "attributes": { - "endFilePos": 2916, - "endLine": 84, - "endTokenPos": 278, - "startFilePos": 2900, - "startLine": 84, - "startTokenPos": 275 + ] }, - "expr": { + { "attributes": { - "endFilePos": 2915, + "endFilePos": 2916, "endLine": 84, - "endTokenPos": 277, - "startFilePos": 2907, + "endTokenPos": 278, + "startFilePos": 2900, "startLine": 84, - "startTokenPos": 277 + "startTokenPos": 275 }, - "name": "instance", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Return" - } - ], - "type": 4 - }, - { - "attributes": { - "comments": [ - { - "filePos": 2929, - "line": 87, - "nodeType": "Comment_Doc", - "text": "/**\n * Builds a callable capable of instantiating the given $className without\n * invoking its constructor.\n *\n * @throws InvalidArgumentException\n * @throws UnexpectedValueException\n * @throws \\ReflectionException\n */" + "expr": { + "attributes": { + "endFilePos": 2915, + "endLine": 84, + "endTokenPos": 277, + "startFilePos": 2907, + "startLine": 84, + "startTokenPos": 277 + }, + "name": "instance", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Return" } ], - "endFilePos": 3865, - "endLine": 115, - "endTokenPos": 401, - "startFilePos": 3180, - "startLine": 95, - "startTokenPos": 284 + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "buildFactory", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 3226, - "endLine": 95, - "endTokenPos": 292, - "startFilePos": 3210, - "startLine": 95, - "startTokenPos": 290 - }, - "byRef": false, - "default": null, - "name": "className", - "nodeType": "Param", - "type": "string", - "variadic": false - } - ], - "returnType": "callable", - "stmts": [ - { - "attributes": { - "endFilePos": 3309, - "endLine": 97, - "endTokenPos": 310, - "startFilePos": 3254, - "startLine": 97, - "startTokenPos": 301 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 3308, - "endLine": 97, - "endTokenPos": 309, - "startFilePos": 3299, - "startLine": 97, - "startTokenPos": 309 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "attributes": { + "comments": [ + { + "filePos": 2929, + "line": 87, + "nodeType": "Comment_Doc", + "text": "/**\n * Builds a callable capable of instantiating the given $className without\n * invoking its constructor.\n *\n * @throws InvalidArgumentException\n * @throws UnexpectedValueException\n * @throws \\ReflectionException\n */" + } + ], + "endFilePos": 3865, + "endLine": 115, + "endTokenPos": 401, + "startFilePos": 3180, + "startLine": 95, + "startTokenPos": 284 + }, + "byRef": false, + "flags": 4, + "name": "buildFactory", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 3226, + "endLine": 95, + "endTokenPos": 292, + "startFilePos": 3210, + "startLine": 95, + "startTokenPos": 290 + }, + "byRef": false, + "default": null, + "name": "className", + "nodeType": "Param", + "type": "string", + "variadic": false + } + ], + "returnType": "callable", + "stmts": [ + { + "attributes": { + "endFilePos": 3309, + "endLine": 97, + "endTokenPos": 310, + "startFilePos": 3254, + "startLine": 97, + "startTokenPos": 301 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 3308, "endLine": 97, @@ -1376,72 +1365,72 @@ "startLine": 97, "startTokenPos": 309 }, - "name": "className", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3308, + "endLine": 97, + "endTokenPos": 309, + "startFilePos": 3299, + "startLine": 97, + "startTokenPos": 309 + }, + "name": "className", + "nodeType": "Expr_Variable" + } } + ], + "attributes": { + "endFilePos": 3309, + "endLine": 97, + "endTokenPos": 310, + "startFilePos": 3273, + "startLine": 97, + "startTokenPos": 305 + }, + "name": "getReflectionClass", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 3277, + "endLine": 97, + "endTokenPos": 305, + "startFilePos": 3273, + "startLine": 97, + "startTokenPos": 305 + }, + "name": "this", + "nodeType": "Expr_Variable" } - ], - "attributes": { - "endFilePos": 3309, - "endLine": 97, - "endTokenPos": 310, - "startFilePos": 3273, - "startLine": 97, - "startTokenPos": 305 }, - "name": "getReflectionClass", - "nodeType": "Expr_MethodCall", + "nodeType": "Expr_Assign", "var": { "attributes": { - "endFilePos": 3277, + "endFilePos": 3269, "endLine": 97, - "endTokenPos": 305, - "startFilePos": 3273, + "endTokenPos": 301, + "startFilePos": 3254, "startLine": 97, - "startTokenPos": 305 + "startTokenPos": 301 }, - "name": "this", + "name": "reflectionClass", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_Assign", - "var": { + { "attributes": { - "endFilePos": 3269, - "endLine": 97, - "endTokenPos": 301, - "startFilePos": 3254, - "startLine": 97, - "startTokenPos": 301 + "endFilePos": 3461, + "endLine": 101, + "endTokenPos": 336, + "startFilePos": 3321, + "startLine": 99, + "startTokenPos": 313 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 3461, - "endLine": 101, - "endTokenPos": 336, - "startFilePos": 3321, - "startLine": 99, - "startTokenPos": 313 - }, - "cond": { - "args": [ - { - "attributes": { - "endFilePos": 3375, - "endLine": 99, - "endTokenPos": 320, - "startFilePos": 3360, - "startLine": 99, - "startTokenPos": 320 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "cond": { + "args": [ + { "attributes": { "endFilePos": 3375, "endLine": 99, @@ -1450,71 +1439,71 @@ "startLine": 99, "startTokenPos": 320 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3375, + "endLine": 99, + "endTokenPos": 320, + "startFilePos": 3360, + "startLine": 99, + "startTokenPos": 320 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 3376, - "endLine": 99, - "endTokenPos": 321, - "startFilePos": 3325, - "startLine": 99, - "startTokenPos": 316 - }, - "name": "isInstantiableViaReflection", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 3329, + "endFilePos": 3376, "endLine": 99, - "endTokenPos": 316, + "endTokenPos": 321, "startFilePos": 3325, "startLine": 99, "startTokenPos": 316 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 3451, - "endLine": 100, - "endTokenPos": 334, - "startFilePos": 3393, - "startLine": 100, - "startTokenPos": 326 - }, - "expr": { + "name": "isInstantiableViaReflection", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 3329, + "endLine": 99, + "endTokenPos": 316, + "startFilePos": 3325, + "startLine": 99, + "startTokenPos": 316 + }, + "name": "this", + "nodeType": "Expr_Variable" + } + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { - "endFilePos": 3450, + "endFilePos": 3451, "endLine": 100, - "endTokenPos": 333, - "kind": 2, - "startFilePos": 3400, + "endTokenPos": 334, + "startFilePos": 3393, "startLine": 100, - "startTokenPos": 328 + "startTokenPos": 326 }, - "items": [ - { - "attributes": { - "endFilePos": 3416, - "endLine": 100, - "endTokenPos": 329, - "startFilePos": 3401, - "startLine": 100, - "startTokenPos": 329 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "expr": { + "attributes": { + "endFilePos": 3450, + "endLine": 100, + "endTokenPos": 333, + "kind": 2, + "startFilePos": 3400, + "startLine": 100, + "startTokenPos": 328 + }, + "items": [ + { "attributes": { "endFilePos": 3416, "endLine": 100, @@ -1523,93 +1512,93 @@ "startLine": 100, "startTokenPos": 329 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 3449, - "endLine": 100, - "endTokenPos": 332, - "startFilePos": 3419, - "startLine": 100, - "startTokenPos": 332 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 3416, + "endLine": 100, + "endTokenPos": 329, + "startFilePos": 3401, + "startLine": 100, + "startTokenPos": 329 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 3449, "endLine": 100, "endTokenPos": 332, - "kind": 1, "startFilePos": 3419, "startLine": 100, "startTokenPos": 332 }, - "nodeType": "Scalar_String", - "value": "newInstanceWithoutConstructor" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 3449, + "endLine": 100, + "endTokenPos": 332, + "kind": 1, + "startFilePos": 3419, + "startLine": 100, + "startTokenPos": 332 + }, + "nodeType": "Scalar_String", + "value": "newInstanceWithoutConstructor" + } } - } - ], - "nodeType": "Expr_Array" - }, - "nodeType": "Stmt_Return" - } - ] - }, - { - "attributes": { - "endFilePos": 3654, - "endLine": 108, - "endTokenPos": 361, - "startFilePos": 3472, - "startLine": 103, - "startTokenPos": 338 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 3529, - "endLine": 104, - "endTokenPos": 345, - "startFilePos": 3513, - "startLine": 104, - "startTokenPos": 345 + ], + "nodeType": "Expr_Array" }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { - "attributes": { - "endFilePos": 3529, - "endLine": 104, - "endTokenPos": 345, - "kind": 1, - "startFilePos": 3513, - "startLine": 104, + "nodeType": "Stmt_Return" + } + ] + }, + { + "attributes": { + "endFilePos": 3654, + "endLine": 108, + "endTokenPos": 361, + "startFilePos": 3472, + "startLine": 103, + "startTokenPos": 338 + }, + "expr": { + "args": [ + { + "attributes": { + "endFilePos": 3529, + "endLine": 104, + "endTokenPos": 345, + "startFilePos": 3513, + "startLine": 104, "startTokenPos": 345 }, - "nodeType": "Scalar_String", - "value": "%s:%d:\"%s\":0:{}" - } - }, - { - "attributes": { - "endFilePos": 3588, - "endLine": 105, - "endTokenPos": 350, - "startFilePos": 3544, - "startLine": 105, - "startTokenPos": 348 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3529, + "endLine": 104, + "endTokenPos": 345, + "kind": 1, + "startFilePos": 3513, + "startLine": 104, + "startTokenPos": 345 + }, + "nodeType": "Scalar_String", + "value": "%s:%d:\"%s\":0:{}" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 3588, "endLine": 105, @@ -1618,51 +1607,51 @@ "startLine": 105, "startTokenPos": 348 }, - "class": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { "attributes": { - "endFilePos": 3547, + "endFilePos": 3588, "endLine": 105, - "endTokenPos": 348, + "endTokenPos": 350, "startFilePos": 3544, "startLine": 105, "startTokenPos": 348 }, - "nodeType": "Name", - "parts": [ - "self" - ] - }, - "name": "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER", - "nodeType": "Expr_ClassConstFetch" - } - }, - { - "attributes": { - "endFilePos": 3620, - "endLine": 106, - "endTokenPos": 356, - "startFilePos": 3603, - "startLine": 106, - "startTokenPos": 353 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { - "args": [ - { + "class": { "attributes": { - "endFilePos": 3619, - "endLine": 106, - "endTokenPos": 355, - "startFilePos": 3610, - "startLine": 106, - "startTokenPos": 355 + "endFilePos": 3547, + "endLine": 105, + "endTokenPos": 348, + "startFilePos": 3544, + "startLine": 105, + "startTokenPos": 348 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "self" + ] + }, + "name": "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER", + "nodeType": "Expr_ClassConstFetch" + } + }, + { + "attributes": { + "endFilePos": 3620, + "endLine": 106, + "endTokenPos": 356, + "startFilePos": 3603, + "startLine": 106, + "startTokenPos": 353 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "args": [ + { "attributes": { "endFilePos": 3619, "endLine": 106, @@ -1671,49 +1660,49 @@ "startLine": 106, "startTokenPos": 355 }, - "name": "className", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3619, + "endLine": 106, + "endTokenPos": 355, + "startFilePos": 3610, + "startLine": 106, + "startTokenPos": 355 + }, + "name": "className", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 3620, - "endLine": 106, - "endTokenPos": 356, - "startFilePos": 3603, - "startLine": 106, - "startTokenPos": 353 - }, - "name": { + ], "attributes": { - "endFilePos": 3608, + "endFilePos": 3620, "endLine": 106, - "endTokenPos": 353, + "endTokenPos": 356, "startFilePos": 3603, "startLine": 106, "startTokenPos": 353 }, - "nodeType": "Name", - "parts": [ - "strlen" - ] - }, - "nodeType": "Expr_FuncCall" - } - }, - { - "attributes": { - "endFilePos": 3644, - "endLine": 107, - "endTokenPos": 359, - "startFilePos": 3635, - "startLine": 107, - "startTokenPos": 359 + "name": { + "attributes": { + "endFilePos": 3608, + "endLine": 106, + "endTokenPos": 353, + "startFilePos": 3603, + "startLine": 106, + "startTokenPos": 353 + }, + "nodeType": "Name", + "parts": [ + "strlen" + ] + }, + "nodeType": "Expr_FuncCall" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 3644, "endLine": 107, @@ -1722,64 +1711,64 @@ "startLine": 107, "startTokenPos": 359 }, - "name": "className", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3644, + "endLine": 107, + "endTokenPos": 359, + "startFilePos": 3635, + "startLine": 107, + "startTokenPos": 359 + }, + "name": "className", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 3654, - "endLine": 108, - "endTokenPos": 361, - "startFilePos": 3492, - "startLine": 103, - "startTokenPos": 342 - }, - "name": { + ], "attributes": { - "endFilePos": 3498, - "endLine": 103, - "endTokenPos": 342, + "endFilePos": 3654, + "endLine": 108, + "endTokenPos": 361, "startFilePos": 3492, "startLine": 103, "startTokenPos": 342 }, - "nodeType": "Name", - "parts": [ - "sprintf" - ] - }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 3488, - "endLine": 103, - "endTokenPos": 338, - "startFilePos": 3472, - "startLine": 103, - "startTokenPos": 338 + "name": { + "attributes": { + "endFilePos": 3498, + "endLine": 103, + "endTokenPos": 342, + "startFilePos": 3492, + "startLine": 103, + "startTokenPos": 342 + }, + "nodeType": "Name", + "parts": [ + "sprintf" + ] + }, + "nodeType": "Expr_FuncCall" }, - "name": "serializedString", - "nodeType": "Expr_Variable" - } - }, - { - "args": [ - { + "nodeType": "Expr_Assign", + "var": { "attributes": { - "endFilePos": 3722, - "endLine": 110, - "endTokenPos": 368, - "startFilePos": 3707, - "startLine": 110, - "startTokenPos": 368 + "endFilePos": 3488, + "endLine": 103, + "endTokenPos": 338, + "startFilePos": 3472, + "startLine": 103, + "startTokenPos": 338 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "name": "serializedString", + "nodeType": "Expr_Variable" + } + }, + { + "args": [ + { "attributes": { "endFilePos": 3722, "endLine": 110, @@ -1788,23 +1777,23 @@ "startLine": 110, "startTokenPos": 368 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 3741, - "endLine": 110, - "endTokenPos": 371, - "startFilePos": 3725, - "startLine": 110, - "startTokenPos": 371 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3722, + "endLine": 110, + "endTokenPos": 368, + "startFilePos": 3707, + "startLine": 110, + "startTokenPos": 368 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 3741, "endLine": 110, @@ -1813,83 +1802,83 @@ "startLine": 110, "startTokenPos": 371 }, - "name": "serializedString", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3741, + "endLine": 110, + "endTokenPos": 371, + "startFilePos": 3725, + "startLine": 110, + "startTokenPos": 371 + }, + "name": "serializedString", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 3742, - "endLine": 110, - "endTokenPos": 372, - "startFilePos": 3666, - "startLine": 110, - "startTokenPos": 364 - }, - "name": "checkIfUnSerializationIsSupported", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 3670, + "endFilePos": 3742, "endLine": 110, - "endTokenPos": 364, + "endTokenPos": 372, "startFilePos": 3666, "startLine": 110, "startTokenPos": 364 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 3859, - "endLine": 114, - "endTokenPos": 399, - "startFilePos": 3754, - "startLine": 112, - "startTokenPos": 375 + "name": "checkIfUnSerializationIsSupported", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 3670, + "endLine": 110, + "endTokenPos": 364, + "startFilePos": 3666, + "startLine": 110, + "startTokenPos": 364 + }, + "name": "this", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { - "endFilePos": 3858, + "endFilePos": 3859, "endLine": 114, - "endTokenPos": 398, - "startFilePos": 3761, + "endTokenPos": 399, + "startFilePos": 3754, "startLine": 112, - "startTokenPos": 377 + "startTokenPos": 375 }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [], - "returnType": null, - "static": false, - "stmts": [ - { - "attributes": { - "endFilePos": 3848, - "endLine": 113, - "endTokenPos": 396, - "startFilePos": 3811, - "startLine": 113, - "startTokenPos": 390 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 3846, - "endLine": 113, - "endTokenPos": 394, - "startFilePos": 3830, - "startLine": 113, - "startTokenPos": 394 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { - "attributes": { + "expr": { + "attributes": { + "endFilePos": 3858, + "endLine": 114, + "endTokenPos": 398, + "startFilePos": 3761, + "startLine": 112, + "startTokenPos": 377 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [], + "returnType": null, + "static": false, + "stmts": [ + { + "attributes": { + "endFilePos": 3848, + "endLine": 113, + "endTokenPos": 396, + "startFilePos": 3811, + "startLine": 113, + "startTokenPos": 390 + }, + "expr": { + "args": [ + { + "attributes": { "endFilePos": 3846, "endLine": 113, "endTokenPos": 394, @@ -1897,220 +1886,165 @@ "startLine": 113, "startTokenPos": 394 }, - "name": "serializedString", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 3846, + "endLine": 113, + "endTokenPos": 394, + "startFilePos": 3830, + "startLine": 113, + "startTokenPos": 394 + }, + "name": "serializedString", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 3847, - "endLine": 113, - "endTokenPos": 395, - "startFilePos": 3818, - "startLine": 113, - "startTokenPos": 392 - }, - "name": { + ], "attributes": { - "endFilePos": 3828, + "endFilePos": 3847, "endLine": 113, - "endTokenPos": 392, + "endTokenPos": 395, "startFilePos": 3818, "startLine": 113, "startTokenPos": 392 }, - "nodeType": "Name", - "parts": [ - "unserialize" - ] + "name": { + "attributes": { + "endFilePos": 3828, + "endLine": 113, + "endTokenPos": 392, + "startFilePos": 3818, + "startLine": 113, + "startTokenPos": 392 + }, + "nodeType": "Name", + "parts": [ + "unserialize" + ] + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Stmt_Return" - } - ], - "uses": [ - { - "attributes": { - "endFilePos": 3794, - "endLine": 112, - "endTokenPos": 385, - "startFilePos": 3778, - "startLine": 112, - "startTokenPos": 385 - }, - "byRef": false, - "nodeType": "Expr_ClosureUse", - "var": "serializedString" - } - ] - }, - "nodeType": "Stmt_Return" - } - ], - "type": 4 - }, - { - "attributes": { - "comments": [ - { - "filePos": 3872, - "line": 117, - "nodeType": "Comment_Doc", - "text": "/**\n * @param string $className\n *\n * @return ReflectionClass\n *\n * @throws InvalidArgumentException\n * @throws \\ReflectionException\n */" + "nodeType": "Stmt_Return" + } + ], + "uses": [ + { + "attributes": { + "endFilePos": 3794, + "endLine": 112, + "endTokenPos": 385, + "startFilePos": 3778, + "startLine": 112, + "startTokenPos": 385 + }, + "byRef": false, + "nodeType": "Expr_ClosureUse", + "var": "serializedString" + } + ] + }, + "nodeType": "Stmt_Return" } ], - "endFilePos": 4460, - "endLine": 138, - "endTokenPos": 486, - "startFilePos": 4041, - "startLine": 125, - "startTokenPos": 405 + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "getReflectionClass", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 4086, - "endLine": 125, - "endTokenPos": 411, - "startFilePos": 4077, - "startLine": 125, - "startTokenPos": 411 - }, - "byRef": false, - "default": null, - "name": "className", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": { + { "attributes": { - "endFilePos": 4105, - "endLine": 125, - "endTokenPos": 416, - "startFilePos": 4091, + "comments": [ + { + "filePos": 3872, + "line": 117, + "nodeType": "Comment_Doc", + "text": "/**\n * @param string $className\n *\n * @return ReflectionClass\n *\n * @throws InvalidArgumentException\n * @throws \\ReflectionException\n */" + } + ], + "endFilePos": 4460, + "endLine": 138, + "endTokenPos": 486, + "startFilePos": 4041, "startLine": 125, - "startTokenPos": 416 + "startTokenPos": 405 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "stmts": [ - { + "byRef": false, + "flags": 4, + "name": "getReflectionClass", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 4086, + "endLine": 125, + "endTokenPos": 411, + "startFilePos": 4077, + "startLine": 125, + "startTokenPos": 411 + }, + "byRef": false, + "default": null, + "name": "className", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": { "attributes": { - "endFilePos": 4241, - "endLine": 129, - "endTokenPos": 443, - "startFilePos": 4121, - "startLine": 127, - "startTokenPos": 420 + "endFilePos": 4105, + "endLine": 125, + "endTokenPos": 416, + "startFilePos": 4091, + "startLine": 125, + "startTokenPos": 416 }, - "cond": { + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "stmts": [ + { "attributes": { - "endFilePos": 4150, - "endLine": 127, - "endTokenPos": 428, - "startFilePos": 4125, + "endFilePos": 4241, + "endLine": 129, + "endTokenPos": 443, + "startFilePos": 4121, "startLine": 127, - "startTokenPos": 423 + "startTokenPos": 420 }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 4149, - "endLine": 127, - "endTokenPos": 427, - "startFilePos": 4140, - "startLine": 127, - "startTokenPos": 427 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { - "attributes": { - "endFilePos": 4149, - "endLine": 127, - "endTokenPos": 427, - "startFilePos": 4140, - "startLine": 127, - "startTokenPos": 427 - }, - "name": "className", - "nodeType": "Expr_Variable" - } - } - ], + "cond": { "attributes": { "endFilePos": 4150, "endLine": 127, "endTokenPos": 428, - "startFilePos": 4127, + "startFilePos": 4125, "startLine": 127, - "startTokenPos": 425 - }, - "name": { - "attributes": { - "endFilePos": 4138, - "endLine": 127, - "endTokenPos": 425, - "startFilePos": 4127, - "startLine": 127, - "startTokenPos": 425 - }, - "nodeType": "Name", - "parts": [ - "class_exists" - ] - }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Expr_BooleanNot" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 4231, - "endLine": 128, - "endTokenPos": 441, - "startFilePos": 4167, - "startLine": 128, - "startTokenPos": 433 + "startTokenPos": 423 }, "expr": { "args": [ { "attributes": { - "endFilePos": 4229, - "endLine": 128, - "endTokenPos": 439, - "startFilePos": 4220, - "startLine": 128, - "startTokenPos": 439 + "endFilePos": 4149, + "endLine": 127, + "endTokenPos": 427, + "startFilePos": 4140, + "startLine": 127, + "startTokenPos": 427 }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 4229, - "endLine": 128, - "endTokenPos": 439, - "startFilePos": 4220, - "startLine": 128, - "startTokenPos": 439 + "endFilePos": 4149, + "endLine": 127, + "endTokenPos": 427, + "startFilePos": 4140, + "startLine": 127, + "startTokenPos": 427 }, "name": "className", "nodeType": "Expr_Variable" @@ -2118,171 +2052,226 @@ } ], "attributes": { - "endFilePos": 4230, - "endLine": 128, - "endTokenPos": 440, - "startFilePos": 4173, - "startLine": 128, - "startTokenPos": 435 + "endFilePos": 4150, + "endLine": 127, + "endTokenPos": 428, + "startFilePos": 4127, + "startLine": 127, + "startTokenPos": 425 }, - "class": { + "name": { "attributes": { - "endFilePos": 4196, - "endLine": 128, - "endTokenPos": 435, - "startFilePos": 4173, - "startLine": 128, - "startTokenPos": 435 + "endFilePos": 4138, + "endLine": 127, + "endTokenPos": 425, + "startFilePos": 4127, + "startLine": 127, + "startTokenPos": 425 }, "nodeType": "Name", "parts": [ - "InvalidArgumentException" + "class_exists" ] }, - "name": "fromNonExistingClass", - "nodeType": "Expr_StaticCall" + "nodeType": "Expr_FuncCall" }, - "nodeType": "Stmt_Throw" - } - ] - }, - { - "attributes": { - "endFilePos": 4296, - "endLine": 131, - "endTokenPos": 454, - "startFilePos": 4252, - "startLine": 131, - "startTokenPos": 445 - }, - "expr": { - "args": [ + "nodeType": "Expr_BooleanNot" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ { "attributes": { - "endFilePos": 4295, - "endLine": 131, - "endTokenPos": 453, - "startFilePos": 4286, - "startLine": 131, - "startTokenPos": 453 + "endFilePos": 4231, + "endLine": 128, + "endTokenPos": 441, + "startFilePos": 4167, + "startLine": 128, + "startTokenPos": 433 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "expr": { + "args": [ + { + "attributes": { + "endFilePos": 4229, + "endLine": 128, + "endTokenPos": 439, + "startFilePos": 4220, + "startLine": 128, + "startTokenPos": 439 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 4229, + "endLine": 128, + "endTokenPos": 439, + "startFilePos": 4220, + "startLine": 128, + "startTokenPos": 439 + }, + "name": "className", + "nodeType": "Expr_Variable" + } + } + ], "attributes": { - "endFilePos": 4295, - "endLine": 131, - "endTokenPos": 453, - "startFilePos": 4286, - "startLine": 131, - "startTokenPos": 453 + "endFilePos": 4230, + "endLine": 128, + "endTokenPos": 440, + "startFilePos": 4173, + "startLine": 128, + "startTokenPos": 435 }, - "name": "className", - "nodeType": "Expr_Variable" - } + "class": { + "attributes": { + "endFilePos": 4196, + "endLine": 128, + "endTokenPos": 435, + "startFilePos": 4173, + "startLine": 128, + "startTokenPos": 435 + }, + "nodeType": "Name", + "parts": [ + "InvalidArgumentException" + ] + }, + "name": "fromNonExistingClass", + "nodeType": "Expr_StaticCall" + }, + "nodeType": "Stmt_Throw" } - ], + ] + }, + { "attributes": { "endFilePos": 4296, "endLine": 131, "endTokenPos": 454, - "startFilePos": 4266, + "startFilePos": 4252, "startLine": 131, - "startTokenPos": 449 + "startTokenPos": 445 }, - "class": { + "expr": { + "args": [ + { + "attributes": { + "endFilePos": 4295, + "endLine": 131, + "endTokenPos": 453, + "startFilePos": 4286, + "startLine": 131, + "startTokenPos": 453 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 4295, + "endLine": 131, + "endTokenPos": 453, + "startFilePos": 4286, + "startLine": 131, + "startTokenPos": 453 + }, + "name": "className", + "nodeType": "Expr_Variable" + } + } + ], "attributes": { - "endFilePos": 4284, + "endFilePos": 4296, "endLine": 131, - "endTokenPos": 451, - "startFilePos": 4270, + "endTokenPos": 454, + "startFilePos": 4266, "startLine": 131, - "startTokenPos": 451 + "startTokenPos": 449 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "nodeType": "Expr_New" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 4262, - "endLine": 131, - "endTokenPos": 445, - "startFilePos": 4252, - "startLine": 131, - "startTokenPos": 445 + "class": { + "attributes": { + "endFilePos": 4284, + "endLine": 131, + "endTokenPos": 451, + "startFilePos": 4270, + "startLine": 131, + "startTokenPos": 451 + }, + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "nodeType": "Expr_New" }, - "name": "reflection", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 4425, - "endLine": 135, - "endTokenPos": 479, - "startFilePos": 4308, - "startLine": 133, - "startTokenPos": 457 + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 4262, + "endLine": 131, + "endTokenPos": 445, + "startFilePos": 4252, + "startLine": 131, + "startTokenPos": 445 + }, + "name": "reflection", + "nodeType": "Expr_Variable" + } }, - "cond": { - "args": [], + { "attributes": { - "endFilePos": 4336, - "endLine": 133, - "endTokenPos": 464, - "startFilePos": 4312, + "endFilePos": 4425, + "endLine": 135, + "endTokenPos": 479, + "startFilePos": 4308, "startLine": 133, - "startTokenPos": 460 + "startTokenPos": 457 }, - "name": "isAbstract", - "nodeType": "Expr_MethodCall", - "var": { + "cond": { + "args": [], "attributes": { - "endFilePos": 4322, + "endFilePos": 4336, "endLine": 133, - "endTokenPos": 460, + "endTokenPos": 464, "startFilePos": 4312, "startLine": 133, "startTokenPos": 460 }, - "name": "reflection", - "nodeType": "Expr_Variable" - } - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 4415, - "endLine": 134, - "endTokenPos": 477, - "startFilePos": 4353, - "startLine": 134, - "startTokenPos": 469 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 4413, - "endLine": 134, - "endTokenPos": 475, - "startFilePos": 4403, - "startLine": 134, - "startTokenPos": 475 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "name": "isAbstract", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 4322, + "endLine": 133, + "endTokenPos": 460, + "startFilePos": 4312, + "startLine": 133, + "startTokenPos": 460 + }, + "name": "reflection", + "nodeType": "Expr_Variable" + } + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { + "attributes": { + "endFilePos": 4415, + "endLine": 134, + "endTokenPos": 477, + "startFilePos": 4353, + "startLine": 134, + "startTokenPos": 469 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 4413, "endLine": 134, @@ -2291,151 +2280,151 @@ "startLine": 134, "startTokenPos": 475 }, - "name": "reflection", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 4413, + "endLine": 134, + "endTokenPos": 475, + "startFilePos": 4403, + "startLine": 134, + "startTokenPos": 475 + }, + "name": "reflection", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 4414, - "endLine": 134, - "endTokenPos": 476, - "startFilePos": 4359, - "startLine": 134, - "startTokenPos": 471 - }, - "class": { + ], "attributes": { - "endFilePos": 4382, + "endFilePos": 4414, "endLine": 134, - "endTokenPos": 471, + "endTokenPos": 476, "startFilePos": 4359, "startLine": 134, "startTokenPos": 471 }, - "nodeType": "Name", - "parts": [ - "InvalidArgumentException" - ] + "class": { + "attributes": { + "endFilePos": 4382, + "endLine": 134, + "endTokenPos": 471, + "startFilePos": 4359, + "startLine": 134, + "startTokenPos": 471 + }, + "nodeType": "Name", + "parts": [ + "InvalidArgumentException" + ] + }, + "name": "fromAbstractClass", + "nodeType": "Expr_StaticCall" }, - "name": "fromAbstractClass", - "nodeType": "Expr_StaticCall" - }, - "nodeType": "Stmt_Throw" - } - ] - }, - { - "attributes": { - "endFilePos": 4454, - "endLine": 137, - "endTokenPos": 484, - "startFilePos": 4436, - "startLine": 137, - "startTokenPos": 481 + "nodeType": "Stmt_Throw" + } + ] }, - "expr": { + { "attributes": { - "endFilePos": 4453, + "endFilePos": 4454, "endLine": 137, - "endTokenPos": 483, - "startFilePos": 4443, + "endTokenPos": 484, + "startFilePos": 4436, "startLine": 137, - "startTokenPos": 483 + "startTokenPos": 481 }, - "name": "reflection", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Return" - } - ], - "type": 4 - }, - { - "attributes": { - "comments": [ - { - "filePos": 4467, - "line": 140, - "nodeType": "Comment_Doc", - "text": "/**\n * @param ReflectionClass $reflectionClass\n * @param string $serializedString\n *\n * @throws UnexpectedValueException\n *\n * @return void\n */" + "expr": { + "attributes": { + "endFilePos": 4453, + "endLine": 137, + "endTokenPos": 483, + "startFilePos": 4443, + "startLine": 137, + "startTokenPos": 483 + }, + "name": "reflection", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Return" } ], - "endFilePos": 5298, - "endLine": 167, - "endTokenPos": 605, - "startFilePos": 4652, - "startLine": 148, - "startTokenPos": 490 + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "checkIfUnSerializationIsSupported", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 4734, - "endLine": 148, - "endTokenPos": 498, - "startFilePos": 4703, - "startLine": 148, - "startTokenPos": 496 - }, - "byRef": false, - "default": null, - "name": "reflectionClass", - "nodeType": "Param", - "type": { + { + "attributes": { + "comments": [ + { + "filePos": 4467, + "line": 140, + "nodeType": "Comment_Doc", + "text": "/**\n * @param ReflectionClass $reflectionClass\n * @param string $serializedString\n *\n * @throws UnexpectedValueException\n *\n * @return void\n */" + } + ], + "endFilePos": 5298, + "endLine": 167, + "endTokenPos": 605, + "startFilePos": 4652, + "startLine": 148, + "startTokenPos": 490 + }, + "byRef": false, + "flags": 4, + "name": "checkIfUnSerializationIsSupported", + "nodeType": "Stmt_ClassMethod", + "params": [ + { "attributes": { - "endFilePos": 4717, + "endFilePos": 4734, "endLine": 148, - "endTokenPos": 496, + "endTokenPos": 498, "startFilePos": 4703, "startLine": 148, "startTokenPos": 496 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "variadic": false - }, - { - "attributes": { - "endFilePos": 4753, - "endLine": 148, - "endTokenPos": 501, - "startFilePos": 4737, - "startLine": 148, - "startTokenPos": 501 - }, - "byRef": false, - "default": null, - "name": "serializedString", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": "void", - "stmts": [ - { - "args": [ - { + "byRef": false, + "default": null, + "name": "reflectionClass", + "nodeType": "Param", + "type": { "attributes": { - "endFilePos": 5104, - "endLine": 158, - "endTokenPos": 570, - "startFilePos": 4795, - "startLine": 150, - "startTokenPos": 512 + "endFilePos": 4717, + "endLine": 148, + "endTokenPos": 496, + "startFilePos": 4703, + "startLine": 148, + "startTokenPos": 496 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "variadic": false + }, + { + "attributes": { + "endFilePos": 4753, + "endLine": 148, + "endTokenPos": 501, + "startFilePos": 4737, + "startLine": 148, + "startTokenPos": 501 + }, + "byRef": false, + "default": null, + "name": "serializedString", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": "void", + "stmts": [ + { + "args": [ + { "attributes": { "endFilePos": 5104, "endLine": 158, @@ -2445,100 +2434,100 @@ "startTokenPos": 512 }, "byRef": false, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 4809, - "endLine": 150, - "endTokenPos": 515, - "startFilePos": 4805, - "startLine": 150, - "startTokenPos": 515 - }, - "byRef": false, - "default": null, - "name": "code", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 4819, - "endLine": 150, - "endTokenPos": 518, - "startFilePos": 4812, - "startLine": 150, - "startTokenPos": 518 - }, - "byRef": false, - "default": null, - "name": "message", - "nodeType": "Param", - "type": null, - "variadic": false + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5104, + "endLine": 158, + "endTokenPos": 570, + "startFilePos": 4795, + "startLine": 150, + "startTokenPos": 512 }, - { - "attributes": { - "endFilePos": 4826, - "endLine": 150, - "endTokenPos": 521, - "startFilePos": 4822, - "startLine": 150, - "startTokenPos": 521 + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { + "attributes": { + "endFilePos": 4809, + "endLine": 150, + "endTokenPos": 515, + "startFilePos": 4805, + "startLine": 150, + "startTokenPos": 515 + }, + "byRef": false, + "default": null, + "name": "code", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": null, - "name": "file", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 4833, - "endLine": 150, - "endTokenPos": 524, - "startFilePos": 4829, - "startLine": 150, - "startTokenPos": 524 + { + "attributes": { + "endFilePos": 4819, + "endLine": 150, + "endTokenPos": 518, + "startFilePos": 4812, + "startLine": 150, + "startTokenPos": 518 + }, + "byRef": false, + "default": null, + "name": "message", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": null, - "name": "line", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": "void", - "static": false, - "stmts": [ - { - "attributes": { - "endFilePos": 5093, - "endLine": 157, - "endTokenPos": 567, - "startFilePos": 4890, - "startLine": 151, - "startTokenPos": 544 + { + "attributes": { + "endFilePos": 4826, + "endLine": 150, + "endTokenPos": 521, + "startFilePos": 4822, + "startLine": 150, + "startTokenPos": 521 + }, + "byRef": false, + "default": null, + "name": "file", + "nodeType": "Param", + "type": null, + "variadic": false }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 4984, - "endLine": 152, - "endTokenPos": 553, - "startFilePos": 4969, - "startLine": 152, - "startTokenPos": 553 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "attributes": { + "endFilePos": 4833, + "endLine": 150, + "endTokenPos": 524, + "startFilePos": 4829, + "startLine": 150, + "startTokenPos": 524 + }, + "byRef": false, + "default": null, + "name": "line", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": "void", + "static": false, + "stmts": [ + { + "attributes": { + "endFilePos": 5093, + "endLine": 157, + "endTokenPos": 567, + "startFilePos": 4890, + "startLine": 151, + "startTokenPos": 544 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 4984, "endLine": 152, @@ -2547,23 +2536,23 @@ "startLine": 152, "startTokenPos": 553 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 5010, - "endLine": 153, - "endTokenPos": 556, - "startFilePos": 5003, - "startLine": 153, - "startTokenPos": 556 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 4984, + "endLine": 152, + "endTokenPos": 553, + "startFilePos": 4969, + "startLine": 152, + "startTokenPos": 553 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 5010, "endLine": 153, @@ -2571,24 +2560,24 @@ "startFilePos": 5003, "startLine": 153, "startTokenPos": 556 - }, - "name": "message", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 5033, - "endLine": 154, - "endTokenPos": 559, - "startFilePos": 5029, - "startLine": 154, - "startTokenPos": 559 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5010, + "endLine": 153, + "endTokenPos": 556, + "startFilePos": 5003, + "startLine": 153, + "startTokenPos": 556 + }, + "name": "message", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 5033, "endLine": 154, @@ -2597,23 +2586,23 @@ "startLine": 154, "startTokenPos": 559 }, - "name": "code", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 5056, - "endLine": 155, - "endTokenPos": 562, - "startFilePos": 5052, - "startLine": 155, - "startTokenPos": 562 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5033, + "endLine": 154, + "endTokenPos": 559, + "startFilePos": 5029, + "startLine": 154, + "startTokenPos": 559 + }, + "name": "code", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 5056, "endLine": 155, @@ -2622,23 +2611,23 @@ "startLine": 155, "startTokenPos": 562 }, - "name": "file", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 5079, - "endLine": 156, - "endTokenPos": 565, - "startFilePos": 5075, - "startLine": 156, - "startTokenPos": 565 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5056, + "endLine": 155, + "endTokenPos": 562, + "startFilePos": 5052, + "startLine": 155, + "startTokenPos": 562 + }, + "name": "file", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 5079, "endLine": 156, @@ -2647,121 +2636,121 @@ "startLine": 156, "startTokenPos": 565 }, - "name": "line", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5079, + "endLine": 156, + "endTokenPos": 565, + "startFilePos": 5075, + "startLine": 156, + "startTokenPos": 565 + }, + "name": "line", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 5093, - "endLine": 157, - "endTokenPos": 567, - "startFilePos": 4899, - "startLine": 151, - "startTokenPos": 548 - }, - "class": { + ], "attributes": { - "endFilePos": 4922, - "endLine": 151, - "endTokenPos": 548, + "endFilePos": 5093, + "endLine": 157, + "endTokenPos": 567, "startFilePos": 4899, "startLine": 151, "startTokenPos": 548 }, - "nodeType": "Name", - "parts": [ - "UnexpectedValueException" - ] + "class": { + "attributes": { + "endFilePos": 4922, + "endLine": 151, + "endTokenPos": 548, + "startFilePos": 4899, + "startLine": 151, + "startTokenPos": 548 + }, + "nodeType": "Name", + "parts": [ + "UnexpectedValueException" + ] + }, + "name": "fromUncleanUnSerialization", + "nodeType": "Expr_StaticCall" }, - "name": "fromUncleanUnSerialization", - "nodeType": "Expr_StaticCall" + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 4895, + "endLine": 151, + "endTokenPos": 544, + "startFilePos": 4890, + "startLine": 151, + "startTokenPos": 544 + }, + "name": "error", + "nodeType": "Expr_Variable" + } + } + ], + "uses": [ + { + "attributes": { + "endFilePos": 4856, + "endLine": 150, + "endTokenPos": 530, + "startFilePos": 4841, + "startLine": 150, + "startTokenPos": 530 + }, + "byRef": false, + "nodeType": "Expr_ClosureUse", + "var": "reflectionClass" }, - "nodeType": "Expr_Assign", - "var": { + { "attributes": { - "endFilePos": 4895, - "endLine": 151, - "endTokenPos": 544, - "startFilePos": 4890, - "startLine": 151, - "startTokenPos": 544 + "endFilePos": 4866, + "endLine": 150, + "endTokenPos": 535, + "startFilePos": 4859, + "startLine": 150, + "startTokenPos": 533 }, - "name": "error", - "nodeType": "Expr_Variable" + "byRef": true, + "nodeType": "Expr_ClosureUse", + "var": "error" } - } - ], - "uses": [ - { - "attributes": { - "endFilePos": 4856, - "endLine": 150, - "endTokenPos": 530, - "startFilePos": 4841, - "startLine": 150, - "startTokenPos": 530 - }, - "byRef": false, - "nodeType": "Expr_ClosureUse", - "var": "reflectionClass" - }, - { - "attributes": { - "endFilePos": 4866, - "endLine": 150, - "endTokenPos": 535, - "startFilePos": 4859, - "startLine": 150, - "startTokenPos": 533 - }, - "byRef": true, - "nodeType": "Expr_ClosureUse", - "var": "error" - } - ] + ] + } } - } - ], - "attributes": { - "endFilePos": 5105, - "endLine": 158, - "endTokenPos": 571, - "startFilePos": 4777, - "startLine": 150, - "startTokenPos": 510 - }, - "name": { + ], "attributes": { - "endFilePos": 4793, - "endLine": 150, - "endTokenPos": 510, + "endFilePos": 5105, + "endLine": 158, + "endTokenPos": 571, "startFilePos": 4777, "startLine": 150, "startTokenPos": 510 }, - "nodeType": "Name", - "parts": [ - "set_error_handler" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { + "name": { "attributes": { - "endFilePos": 5178, - "endLine": 160, - "endTokenPos": 578, - "startFilePos": 5163, - "startLine": 160, - "startTokenPos": 578 + "endFilePos": 4793, + "endLine": 150, + "endTokenPos": 510, + "startFilePos": 4777, + "startLine": 150, + "startTokenPos": 510 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "set_error_handler" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "args": [ + { "attributes": { "endFilePos": 5178, "endLine": 160, @@ -2770,23 +2759,23 @@ "startLine": 160, "startTokenPos": 578 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 5197, - "endLine": 160, - "endTokenPos": 581, - "startFilePos": 5181, - "startLine": 160, - "startTokenPos": 581 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5178, + "endLine": 160, + "endTokenPos": 578, + "startFilePos": 5163, + "startLine": 160, + "startTokenPos": 578 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 5197, "endLine": 160, @@ -2795,254 +2784,254 @@ "startLine": 160, "startTokenPos": 581 }, - "name": "serializedString", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5197, + "endLine": 160, + "endTokenPos": 581, + "startFilePos": 5181, + "startLine": 160, + "startTokenPos": 581 + }, + "name": "serializedString", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 5198, - "endLine": 160, - "endTokenPos": 582, - "startFilePos": 5117, - "startLine": 160, - "startTokenPos": 574 - }, - "name": "attemptInstantiationViaUnSerialization", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 5121, + "endFilePos": 5198, "endLine": 160, - "endTokenPos": 574, + "endTokenPos": 582, "startFilePos": 5117, "startLine": 160, "startTokenPos": 574 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - { - "args": [], - "attributes": { - "endFilePos": 5232, - "endLine": 162, - "endTokenPos": 587, - "startFilePos": 5210, - "startLine": 162, - "startTokenPos": 585 + "name": "attemptInstantiationViaUnSerialization", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 5121, + "endLine": 160, + "endTokenPos": 574, + "startFilePos": 5117, + "startLine": 160, + "startTokenPos": 574 + }, + "name": "this", + "nodeType": "Expr_Variable" + } }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 5230, + "endFilePos": 5232, "endLine": 162, - "endTokenPos": 585, + "endTokenPos": 587, "startFilePos": 5210, "startLine": 162, "startTokenPos": 585 }, - "nodeType": "Name", - "parts": [ - "restore_error_handler" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "attributes": { - "endFilePos": 5292, - "endLine": 166, - "endTokenPos": 603, - "startFilePos": 5244, - "startLine": 164, - "startTokenPos": 590 + "name": { + "attributes": { + "endFilePos": 5230, + "endLine": 162, + "endTokenPos": 585, + "startFilePos": 5210, + "startLine": 162, + "startTokenPos": 585 + }, + "nodeType": "Name", + "parts": [ + "restore_error_handler" + ] + }, + "nodeType": "Expr_FuncCall" }, - "cond": { + { "attributes": { - "endFilePos": 5253, - "endLine": 164, - "endTokenPos": 593, - "startFilePos": 5248, + "endFilePos": 5292, + "endLine": 166, + "endTokenPos": 603, + "startFilePos": 5244, "startLine": 164, - "startTokenPos": 593 + "startTokenPos": 590 }, - "name": "error", - "nodeType": "Expr_Variable" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 5282, - "endLine": 165, - "endTokenPos": 601, - "startFilePos": 5270, - "startLine": 165, - "startTokenPos": 598 + "endFilePos": 5253, + "endLine": 164, + "endTokenPos": 593, + "startFilePos": 5248, + "startLine": 164, + "startTokenPos": 593 }, - "expr": { + "name": "error", + "nodeType": "Expr_Variable" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { - "endFilePos": 5281, + "endFilePos": 5282, "endLine": 165, - "endTokenPos": 600, - "startFilePos": 5276, + "endTokenPos": 601, + "startFilePos": 5270, "startLine": 165, - "startTokenPos": 600 + "startTokenPos": 598 }, - "name": "error", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Throw" - } - ] - } - ], - "type": 4 - }, - { - "attributes": { - "comments": [ - { - "filePos": 5305, - "line": 169, - "nodeType": "Comment_Doc", - "text": "/**\n * @param ReflectionClass $reflectionClass\n * @param string $serializedString\n *\n * @throws UnexpectedValueException\n *\n * @return void\n */" + "expr": { + "attributes": { + "endFilePos": 5281, + "endLine": 165, + "endTokenPos": 600, + "startFilePos": 5276, + "startLine": 165, + "startTokenPos": 600 + }, + "name": "error", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Throw" + } + ] } ], - "endFilePos": 5874, - "endLine": 186, - "endTokenPos": 671, - "startFilePos": 5490, - "startLine": 177, - "startTokenPos": 609 + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "attemptInstantiationViaUnSerialization", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 5577, - "endLine": 177, - "endTokenPos": 617, - "startFilePos": 5546, - "startLine": 177, - "startTokenPos": 615 - }, - "byRef": false, - "default": null, - "name": "reflectionClass", - "nodeType": "Param", - "type": { + { + "attributes": { + "comments": [ + { + "filePos": 5305, + "line": 169, + "nodeType": "Comment_Doc", + "text": "/**\n * @param ReflectionClass $reflectionClass\n * @param string $serializedString\n *\n * @throws UnexpectedValueException\n *\n * @return void\n */" + } + ], + "endFilePos": 5874, + "endLine": 186, + "endTokenPos": 671, + "startFilePos": 5490, + "startLine": 177, + "startTokenPos": 609 + }, + "byRef": false, + "flags": 4, + "name": "attemptInstantiationViaUnSerialization", + "nodeType": "Stmt_ClassMethod", + "params": [ + { "attributes": { - "endFilePos": 5560, + "endFilePos": 5577, "endLine": 177, - "endTokenPos": 615, + "endTokenPos": 617, "startFilePos": 5546, "startLine": 177, "startTokenPos": 615 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "variadic": false - }, - { - "attributes": { - "endFilePos": 5596, - "endLine": 177, - "endTokenPos": 620, - "startFilePos": 5580, - "startLine": 177, - "startTokenPos": 620 - }, - "byRef": false, - "default": null, - "name": "serializedString", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": "void", - "stmts": [ - { - "attributes": { - "endFilePos": 5868, - "endLine": 185, - "endTokenPos": 669, - "startFilePos": 5620, - "startLine": 179, - "startTokenPos": 629 - }, - "catches": [ - { + "byRef": false, + "default": null, + "name": "reflectionClass", + "nodeType": "Param", + "type": { "attributes": { - "endFilePos": 5868, - "endLine": 185, - "endTokenPos": 669, - "startFilePos": 5680, - "startLine": 181, - "startTokenPos": 641 + "endFilePos": 5560, + "endLine": 177, + "endTokenPos": 615, + "startFilePos": 5546, + "startLine": 177, + "startTokenPos": 615 }, - "nodeType": "Stmt_Catch", - "stmts": [ - { - "args": [], - "attributes": { - "endFilePos": 5745, - "endLine": 182, - "endTokenPos": 653, - "startFilePos": 5723, - "startLine": 182, - "startTokenPos": 651 - }, - "name": { + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "variadic": false + }, + { + "attributes": { + "endFilePos": 5596, + "endLine": 177, + "endTokenPos": 620, + "startFilePos": 5580, + "startLine": 177, + "startTokenPos": 620 + }, + "byRef": false, + "default": null, + "name": "serializedString", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": "void", + "stmts": [ + { + "attributes": { + "endFilePos": 5868, + "endLine": 185, + "endTokenPos": 669, + "startFilePos": 5620, + "startLine": 179, + "startTokenPos": 629 + }, + "catches": [ + { + "attributes": { + "endFilePos": 5868, + "endLine": 185, + "endTokenPos": 669, + "startFilePos": 5680, + "startLine": 181, + "startTokenPos": 641 + }, + "nodeType": "Stmt_Catch", + "stmts": [ + { + "args": [], "attributes": { - "endFilePos": 5743, + "endFilePos": 5745, "endLine": 182, - "endTokenPos": 651, + "endTokenPos": 653, "startFilePos": 5723, "startLine": 182, "startTokenPos": 651 }, - "nodeType": "Name", - "parts": [ - "restore_error_handler" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "attributes": { - "endFilePos": 5858, - "endLine": 184, - "endTokenPos": 667, - "startFilePos": 5761, - "startLine": 184, - "startTokenPos": 656 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 5844, - "endLine": 184, - "endTokenPos": 662, - "startFilePos": 5829, - "startLine": 184, - "startTokenPos": 662 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "name": { + "attributes": { + "endFilePos": 5743, + "endLine": 182, + "endTokenPos": 651, + "startFilePos": 5723, + "startLine": 182, + "startTokenPos": 651 + }, + "nodeType": "Name", + "parts": [ + "restore_error_handler" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "attributes": { + "endFilePos": 5858, + "endLine": 184, + "endTokenPos": 667, + "startFilePos": 5761, + "startLine": 184, + "startTokenPos": 656 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 5844, "endLine": 184, @@ -3051,23 +3040,23 @@ "startLine": 184, "startTokenPos": 662 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 5856, - "endLine": 184, - "endTokenPos": 665, - "startFilePos": 5847, - "startLine": 184, - "startTokenPos": 665 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5844, + "endLine": 184, + "endTokenPos": 662, + "startFilePos": 5829, + "startLine": 184, + "startTokenPos": 662 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 5856, "endLine": 184, @@ -3076,76 +3065,76 @@ "startLine": 184, "startTokenPos": 665 }, - "name": "exception", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5856, + "endLine": 184, + "endTokenPos": 665, + "startFilePos": 5847, + "startLine": 184, + "startTokenPos": 665 + }, + "name": "exception", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 5857, - "endLine": 184, - "endTokenPos": 666, - "startFilePos": 5767, - "startLine": 184, - "startTokenPos": 658 - }, - "class": { + ], "attributes": { - "endFilePos": 5790, + "endFilePos": 5857, "endLine": 184, - "endTokenPos": 658, + "endTokenPos": 666, "startFilePos": 5767, "startLine": 184, "startTokenPos": 658 }, - "nodeType": "Name", - "parts": [ - "UnexpectedValueException" - ] + "class": { + "attributes": { + "endFilePos": 5790, + "endLine": 184, + "endTokenPos": 658, + "startFilePos": 5767, + "startLine": 184, + "startTokenPos": 658 + }, + "nodeType": "Name", + "parts": [ + "UnexpectedValueException" + ] + }, + "name": "fromSerializationTriggeredException", + "nodeType": "Expr_StaticCall" }, - "name": "fromSerializationTriggeredException", - "nodeType": "Expr_StaticCall" - }, - "nodeType": "Stmt_Throw" - } - ], - "types": [ - { - "attributes": { - "endFilePos": 5695, - "endLine": 181, - "endTokenPos": 644, - "startFilePos": 5687, - "startLine": 181, - "startTokenPos": 644 - }, - "nodeType": "Name", - "parts": [ - "Exception" - ] - } - ], - "var": "exception" - } - ], - "finally": null, - "nodeType": "Stmt_TryCatch", - "stmts": [ - { - "args": [ - { - "attributes": { - "endFilePos": 5666, - "endLine": 180, - "endTokenPos": 635, - "startFilePos": 5650, - "startLine": 180, - "startTokenPos": 635 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Stmt_Throw" + } + ], + "types": [ + { + "attributes": { + "endFilePos": 5695, + "endLine": 181, + "endTokenPos": 644, + "startFilePos": 5687, + "startLine": 181, + "startTokenPos": 644 + }, + "nodeType": "Name", + "parts": [ + "Exception" + ] + } + ], + "var": "exception" + } + ], + "finally": null, + "nodeType": "Stmt_TryCatch", + "stmts": [ + { + "args": [ + { "attributes": { "endFilePos": 5666, "endLine": 180, @@ -3154,128 +3143,128 @@ "startLine": 180, "startTokenPos": 635 }, - "name": "serializedString", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 5666, + "endLine": 180, + "endTokenPos": 635, + "startFilePos": 5650, + "startLine": 180, + "startTokenPos": 635 + }, + "name": "serializedString", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 5667, - "endLine": 180, - "endTokenPos": 636, - "startFilePos": 5638, - "startLine": 180, - "startTokenPos": 633 - }, - "name": { + ], "attributes": { - "endFilePos": 5648, + "endFilePos": 5667, "endLine": 180, - "endTokenPos": 633, + "endTokenPos": 636, "startFilePos": 5638, "startLine": 180, "startTokenPos": 633 }, - "nodeType": "Name", - "parts": [ - "unserialize" - ] - }, - "nodeType": "Expr_FuncCall" - } - ] - } - ], - "type": 4 - }, - { - "attributes": { - "endFilePos": 6074, - "endLine": 191, - "endTokenPos": 712, - "startFilePos": 5881, - "startLine": 188, - "startTokenPos": 673 + "name": { + "attributes": { + "endFilePos": 5648, + "endLine": 180, + "endTokenPos": 633, + "startFilePos": 5638, + "startLine": 180, + "startTokenPos": 633 + }, + "nodeType": "Name", + "parts": [ + "unserialize" + ] + }, + "nodeType": "Expr_FuncCall" + } + ] + } + ], + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "isInstantiableViaReflection", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 5957, - "endLine": 188, - "endTokenPos": 681, - "startFilePos": 5926, - "startLine": 188, - "startTokenPos": 679 - }, - "byRef": false, - "default": null, - "name": "reflectionClass", - "nodeType": "Param", - "type": { + { + "attributes": { + "endFilePos": 6074, + "endLine": 191, + "endTokenPos": 712, + "startFilePos": 5881, + "startLine": 188, + "startTokenPos": 673 + }, + "byRef": false, + "flags": 4, + "name": "isInstantiableViaReflection", + "nodeType": "Stmt_ClassMethod", + "params": [ + { "attributes": { - "endFilePos": 5940, + "endFilePos": 5957, "endLine": 188, - "endTokenPos": 679, + "endTokenPos": 681, "startFilePos": 5926, "startLine": 188, "startTokenPos": 679 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "variadic": false - } - ], - "returnType": "bool", - "stmts": [ - { - "attributes": { - "endFilePos": 6068, - "endLine": 190, - "endTokenPos": 710, - "startFilePos": 5981, - "startLine": 190, - "startTokenPos": 690 - }, - "expr": { + "byRef": false, + "default": null, + "name": "reflectionClass", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 5940, + "endLine": 188, + "endTokenPos": 679, + "startFilePos": 5926, + "startLine": 188, + "startTokenPos": 679 + }, + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "variadic": false + } + ], + "returnType": "bool", + "stmts": [ + { "attributes": { - "endFilePos": 6067, + "endFilePos": 6068, "endLine": 190, - "endTokenPos": 709, - "startFilePos": 5988, + "endTokenPos": 710, + "startFilePos": 5981, "startLine": 190, - "startTokenPos": 692 + "startTokenPos": 690 }, "expr": { "attributes": { - "endFilePos": 6066, + "endFilePos": 6067, "endLine": 190, - "endTokenPos": 708, - "startFilePos": 5991, + "endTokenPos": 709, + "startFilePos": 5988, "startLine": 190, - "startTokenPos": 695 + "startTokenPos": 692 }, - "left": { - "args": [ - { - "attributes": { - "endFilePos": 6034, - "endLine": 190, - "endTokenPos": 699, - "startFilePos": 6019, - "startLine": 190, - "startTokenPos": 699 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "expr": { + "attributes": { + "endFilePos": 6066, + "endLine": 190, + "endTokenPos": 708, + "startFilePos": 5991, + "startLine": 190, + "startTokenPos": 695 + }, + "left": { + "args": [ + { "attributes": { "endFilePos": 6034, "endLine": 190, @@ -3284,238 +3273,241 @@ "startLine": 190, "startTokenPos": 699 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 6034, + "endLine": 190, + "endTokenPos": 699, + "startFilePos": 6019, + "startLine": 190, + "startTokenPos": 699 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 6035, - "endLine": 190, - "endTokenPos": 700, - "startFilePos": 5991, - "startLine": 190, - "startTokenPos": 695 - }, - "name": "hasInternalAncestors", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 5995, + "endFilePos": 6035, "endLine": 190, - "endTokenPos": 695, + "endTokenPos": 700, "startFilePos": 5991, "startLine": 190, "startTokenPos": 695 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { - "args": [], - "attributes": { - "endFilePos": 6066, - "endLine": 190, - "endTokenPos": 708, - "startFilePos": 6040, - "startLine": 190, - "startTokenPos": 704 + "name": "hasInternalAncestors", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 5995, + "endLine": 190, + "endTokenPos": 695, + "startFilePos": 5991, + "startLine": 190, + "startTokenPos": 695 + }, + "name": "this", + "nodeType": "Expr_Variable" + } }, - "name": "isFinal", - "nodeType": "Expr_MethodCall", - "var": { + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "args": [], "attributes": { - "endFilePos": 6055, + "endFilePos": 6066, "endLine": 190, - "endTokenPos": 704, + "endTokenPos": 708, "startFilePos": 6040, "startLine": 190, "startTokenPos": 704 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" + "name": "isFinal", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 6055, + "endLine": 190, + "endTokenPos": 704, + "startFilePos": 6040, + "startLine": 190, + "startTokenPos": 704 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_BooleanNot" - }, - "nodeType": "Stmt_Return" - } - ], - "type": 4 - }, - { - "attributes": { - "comments": [ - { - "filePos": 6081, - "line": 193, - "nodeType": "Comment_Doc", - "text": "/**\n * Verifies whether the given class is to be considered internal\n */" + }, + "nodeType": "Expr_BooleanNot" + }, + "nodeType": "Stmt_Return" } ], - "endFilePos": 6457, - "endLine": 205, - "endTokenPos": 778, - "startFilePos": 6166, - "startLine": 196, - "startTokenPos": 716 + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "hasInternalAncestors", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 6235, - "endLine": 196, - "endTokenPos": 724, - "startFilePos": 6204, - "startLine": 196, - "startTokenPos": 722 - }, - "byRef": false, - "default": null, - "name": "reflectionClass", - "nodeType": "Param", - "type": { + { + "attributes": { + "comments": [ + { + "filePos": 6081, + "line": 193, + "nodeType": "Comment_Doc", + "text": "/**\n * Verifies whether the given class is to be considered internal\n */" + } + ], + "endFilePos": 6457, + "endLine": 205, + "endTokenPos": 778, + "startFilePos": 6166, + "startLine": 196, + "startTokenPos": 716 + }, + "byRef": false, + "flags": 4, + "name": "hasInternalAncestors", + "nodeType": "Stmt_ClassMethod", + "params": [ + { "attributes": { - "endFilePos": 6218, + "endFilePos": 6235, "endLine": 196, - "endTokenPos": 722, + "endTokenPos": 724, "startFilePos": 6204, "startLine": 196, "startTokenPos": 722 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "variadic": false - } - ], - "returnType": "bool", - "stmts": [ - { - "attributes": { - "endFilePos": 6428, - "endLine": 202, - "endTokenPos": 771, - "startFilePos": 6259, - "startLine": 198, - "startTokenPos": 733 - }, - "cond": { + "byRef": false, + "default": null, + "name": "reflectionClass", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 6218, + "endLine": 196, + "endTokenPos": 722, + "startFilePos": 6204, + "startLine": 196, + "startTokenPos": 722 + }, + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "variadic": false + } + ], + "returnType": "bool", + "stmts": [ + { "attributes": { - "endFilePos": 6426, + "endFilePos": 6428, "endLine": 202, - "endTokenPos": 769, - "startFilePos": 6374, - "startLine": 202, - "startTokenPos": 761 + "endTokenPos": 771, + "startFilePos": 6259, + "startLine": 198, + "startTokenPos": 733 }, - "expr": { - "args": [], + "cond": { "attributes": { "endFilePos": 6426, "endLine": 202, "endTokenPos": 769, - "startFilePos": 6393, + "startFilePos": 6374, "startLine": 202, - "startTokenPos": 765 + "startTokenPos": 761 }, - "name": "getParentClass", - "nodeType": "Expr_MethodCall", - "var": { + "expr": { + "args": [], "attributes": { - "endFilePos": 6408, + "endFilePos": 6426, "endLine": 202, - "endTokenPos": 765, + "endTokenPos": 769, "startFilePos": 6393, "startLine": 202, "startTokenPos": 765 }, + "name": "getParentClass", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 6408, + "endLine": 202, + "endTokenPos": 765, + "startFilePos": 6393, + "startLine": 202, + "startTokenPos": 765 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 6389, + "endLine": 202, + "endTokenPos": 761, + "startFilePos": 6374, + "startLine": 202, + "startTokenPos": 761 + }, "name": "reflectionClass", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 6389, - "endLine": 202, - "endTokenPos": 761, - "startFilePos": 6374, - "startLine": 202, - "startTokenPos": 761 - }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_Do", - "stmts": [ - { - "attributes": { - "endFilePos": 6355, - "endLine": 201, - "endTokenPos": 754, - "startFilePos": 6276, - "startLine": 199, - "startTokenPos": 737 - }, - "cond": { - "args": [], + "nodeType": "Stmt_Do", + "stmts": [ + { "attributes": { - "endFilePos": 6309, - "endLine": 199, - "endTokenPos": 744, - "startFilePos": 6280, + "endFilePos": 6355, + "endLine": 201, + "endTokenPos": 754, + "startFilePos": 6276, "startLine": 199, - "startTokenPos": 740 + "startTokenPos": 737 }, - "name": "isInternal", - "nodeType": "Expr_MethodCall", - "var": { + "cond": { + "args": [], "attributes": { - "endFilePos": 6295, + "endFilePos": 6309, "endLine": 199, - "endTokenPos": 740, + "endTokenPos": 744, "startFilePos": 6280, "startLine": 199, "startTokenPos": 740 }, - "name": "reflectionClass", - "nodeType": "Expr_Variable" - } - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 6341, - "endLine": 200, - "endTokenPos": 752, - "startFilePos": 6330, - "startLine": 200, - "startTokenPos": 749 - }, - "expr": { + "name": "isInternal", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 6295, + "endLine": 199, + "endTokenPos": 740, + "startFilePos": 6280, + "startLine": 199, + "startTokenPos": 740 + }, + "name": "reflectionClass", + "nodeType": "Expr_Variable" + } + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { - "endFilePos": 6340, + "endFilePos": 6341, "endLine": 200, - "endTokenPos": 751, - "startFilePos": 6337, + "endTokenPos": 752, + "startFilePos": 6330, "startLine": 200, - "startTokenPos": 751 + "startTokenPos": 749 }, - "name": { + "expr": { "attributes": { "endFilePos": 6340, "endLine": 200, @@ -3524,38 +3516,38 @@ "startLine": 200, "startTokenPos": 751 }, - "nodeType": "Name", - "parts": [ - "true" - ] + "name": { + "attributes": { + "endFilePos": 6340, + "endLine": 200, + "endTokenPos": 751, + "startFilePos": 6337, + "startLine": 200, + "startTokenPos": 751 + }, + "nodeType": "Name", + "parts": [ + "true" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "nodeType": "Expr_ConstFetch" - }, - "nodeType": "Stmt_Return" - } - ] - } - ] - }, - { - "attributes": { - "endFilePos": 6451, - "endLine": 204, - "endTokenPos": 776, - "startFilePos": 6439, - "startLine": 204, - "startTokenPos": 773 + "nodeType": "Stmt_Return" + } + ] + } + ] }, - "expr": { + { "attributes": { - "endFilePos": 6450, + "endFilePos": 6451, "endLine": 204, - "endTokenPos": 775, - "startFilePos": 6446, + "endTokenPos": 776, + "startFilePos": 6439, "startLine": 204, - "startTokenPos": 775 + "startTokenPos": 773 }, - "name": { + "expr": { "attributes": { "endFilePos": 6450, "endLine": 204, @@ -3564,189 +3556,200 @@ "startLine": 204, "startTokenPos": 775 }, - "nodeType": "Name", - "parts": [ - "false" - ] + "name": { + "attributes": { + "endFilePos": 6450, + "endLine": 204, + "endTokenPos": 775, + "startFilePos": 6446, + "startLine": 204, + "startTokenPos": 775 + }, + "nodeType": "Name", + "parts": [ + "false" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "nodeType": "Expr_ConstFetch" - }, - "nodeType": "Stmt_Return" - } - ], - "type": 4 - }, - { - "attributes": { - "comments": [ - { - "filePos": 6464, - "line": 207, - "nodeType": "Comment_Doc", - "text": "/**\n * Checks if a class is cloneable\n *\n * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects.\n */" + "nodeType": "Stmt_Return" } ], - "endFilePos": 6779, - "endLine": 215, - "endTokenPos": 819, - "startFilePos": 6620, - "startLine": 212, - "startTokenPos": 782 + "type": 4 }, - "byRef": false, - "flags": 4, - "name": "isSafeToClone", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 6677, - "endLine": 212, - "endTokenPos": 790, - "startFilePos": 6651, - "startLine": 212, - "startTokenPos": 788 - }, - "byRef": false, - "default": null, - "name": "reflection", - "nodeType": "Param", - "type": { + { + "attributes": { + "comments": [ + { + "filePos": 6464, + "line": 207, + "nodeType": "Comment_Doc", + "text": "/**\n * Checks if a class is cloneable\n *\n * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects.\n */" + } + ], + "endFilePos": 6779, + "endLine": 215, + "endTokenPos": 819, + "startFilePos": 6620, + "startLine": 212, + "startTokenPos": 782 + }, + "byRef": false, + "flags": 4, + "name": "isSafeToClone", + "nodeType": "Stmt_ClassMethod", + "params": [ + { "attributes": { - "endFilePos": 6665, + "endFilePos": 6677, "endLine": 212, - "endTokenPos": 788, + "endTokenPos": 790, "startFilePos": 6651, "startLine": 212, "startTokenPos": 788 }, - "nodeType": "Name", - "parts": [ - "ReflectionClass" - ] - }, - "variadic": false - } - ], - "returnType": "bool", - "stmts": [ - { - "attributes": { - "endFilePos": 6773, - "endLine": 214, - "endTokenPos": 817, - "startFilePos": 6701, - "startLine": 214, - "startTokenPos": 799 - }, - "expr": { + "byRef": false, + "default": null, + "name": "reflection", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 6665, + "endLine": 212, + "endTokenPos": 788, + "startFilePos": 6651, + "startLine": 212, + "startTokenPos": 788 + }, + "nodeType": "Name", + "parts": [ + "ReflectionClass" + ] + }, + "variadic": false + } + ], + "returnType": "bool", + "stmts": [ + { "attributes": { - "endFilePos": 6772, + "endFilePos": 6773, "endLine": 214, - "endTokenPos": 816, - "startFilePos": 6708, + "endTokenPos": 817, + "startFilePos": 6701, "startLine": 214, - "startTokenPos": 801 + "startTokenPos": 799 }, - "left": { - "args": [], + "expr": { "attributes": { - "endFilePos": 6733, + "endFilePos": 6772, "endLine": 214, - "endTokenPos": 805, + "endTokenPos": 816, "startFilePos": 6708, "startLine": 214, "startTokenPos": 801 }, - "name": "isCloneable", - "nodeType": "Expr_MethodCall", - "var": { + "left": { + "args": [], "attributes": { - "endFilePos": 6718, + "endFilePos": 6733, "endLine": 214, - "endTokenPos": 801, + "endTokenPos": 805, "startFilePos": 6708, "startLine": 214, "startTokenPos": 801 }, - "name": "reflection", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { - "attributes": { - "endFilePos": 6772, - "endLine": 214, - "endTokenPos": 816, - "startFilePos": 6738, - "startLine": 214, - "startTokenPos": 809 + "name": "isCloneable", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 6718, + "endLine": 214, + "endTokenPos": 801, + "startFilePos": 6708, + "startLine": 214, + "startTokenPos": 801 + }, + "name": "reflection", + "nodeType": "Expr_Variable" + } }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 6771, - "endLine": 214, - "endTokenPos": 815, - "startFilePos": 6763, - "startLine": 214, - "startTokenPos": 815 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 6772, + "endLine": 214, + "endTokenPos": 816, + "startFilePos": 6738, + "startLine": 214, + "startTokenPos": 809 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 6771, "endLine": 214, "endTokenPos": 815, - "kind": 1, "startFilePos": 6763, "startLine": 214, "startTokenPos": 815 }, - "nodeType": "Scalar_String", - "value": "__clone" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 6771, + "endLine": 214, + "endTokenPos": 815, + "kind": 1, + "startFilePos": 6763, + "startLine": 214, + "startTokenPos": 815 + }, + "nodeType": "Scalar_String", + "value": "__clone" + } } - } - ], - "attributes": { - "endFilePos": 6772, - "endLine": 214, - "endTokenPos": 816, - "startFilePos": 6740, - "startLine": 214, - "startTokenPos": 811 - }, - "name": "hasMethod", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 6750, + "endFilePos": 6772, "endLine": 214, - "endTokenPos": 811, + "endTokenPos": 816, "startFilePos": 6740, "startLine": 214, "startTokenPos": 811 }, - "name": "reflection", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_BooleanNot" - } - }, - "nodeType": "Stmt_Return" - } - ], - "type": 4 - } - ], - "type": 32 - } - ] - } - ] + "name": "hasMethod", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 6750, + "endLine": 214, + "endTokenPos": 811, + "startFilePos": 6740, + "startLine": 214, + "startTokenPos": 811 + }, + "name": "reflection", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_BooleanNot" + } + }, + "nodeType": "Stmt_Return" + } + ], + "type": 4 + } + ], + "type": 32 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/complex.php.uast b/fixtures/complex.php.uast index 9a41754..b1c647c 100644 --- a/fixtures/complex.php.uast +++ b/fixtures/complex.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Namespace { . . . Roles: Block @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -41,17 +41,12 @@ File { * . " . . . . . StartPosition: { -. . . . . . Offset: 6 -. . . . . . Line: 2 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 987 -. . . . . . Line: 18 -. . . . . . Col: 4 -. . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Name { @@ -72,7 +67,7 @@ File { . . . . . } . . . . } . . . . 2: Stmt_Use { -. . . . . Roles: Expression,Body,Alias +. . . . . Roles: Alias . . . . . StartPosition: { . . . . . . Offset: 1023 . . . . . . Line: 22 @@ -128,7 +123,7 @@ File { . . . . . } . . . . } . . . . 3: Stmt_Use { -. . . . . Roles: Expression,Body,Alias +. . . . . Roles: Alias . . . . . StartPosition: { . . . . . . Offset: 1085 . . . . . . Line: 23 @@ -184,7 +179,7 @@ File { . . . . . } . . . . } . . . . 4: Stmt_Use { -. . . . . Roles: Expression,Body,Alias +. . . . . Roles: Alias . . . . . StartPosition: { . . . . . . Offset: 1147 . . . . . . Line: 24 @@ -240,7 +235,7 @@ File { . . . . . } . . . . } . . . . 5: Stmt_Use { -. . . . . Roles: Expression,Body,Alias +. . . . . Roles: Alias . . . . . StartPosition: { . . . . . . Offset: 1162 . . . . . . Line: 25 @@ -296,8 +291,7 @@ File { . . . . . } . . . . } . . . . 6: Stmt_Class { -. . . . . Roles: Expression,Body,Statement,Declaration,Type -. . . . . TOKEN "Instantiator" +. . . . . Roles: Declaration,Statement,Type . . . . . StartPosition: { . . . . . . Offset: 1258 . . . . . . Line: 32 @@ -314,28 +308,30 @@ File { . . . . . . type: 32 . . . . . } . . . . . Children: { -. . . . . . 0: Comment_Doc { -. . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . TOKEN " +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "Instantiator" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment_Doc { +. . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . TOKEN "* * {@inheritDoc} * * @author Marco Pivetta " . . . . . . . StartPosition: { -. . . . . . . . Offset: 1184 -. . . . . . . . Line: 27 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 1257 -. . . . . . . . Line: 31 -. . . . . . . . Col: 4 -. . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } -. . . . . . 1: Name { +. . . . . . 2: Name { . . . . . . . Roles: Expression,Identifier,Implements . . . . . . . TOKEN "InstantiatorInterface" . . . . . . . StartPosition: { @@ -352,8 +348,8 @@ File { . . . . . . . . internalRole: implements . . . . . . . } . . . . . . } -. . . . . . 2: Stmt_ClassConst { -. . . . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . . . 3: Stmt_ClassConst { +. . . . . . . Roles: Body,Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 1564 . . . . . . . . Line: 39 @@ -370,29 +366,23 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * Markers used internally by PHP to define whether {@see \unserialize} should invoke * the method {@see \Serializable::unserialize()} when dealing with classes implementing * the {@see \Serializable} interface. " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 1322 -. . . . . . . . . . Line: 34 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 1559 -. . . . . . . . . . Line: 38 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Const { -. . . . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . . . TOKEN "SERIALIZATION_FORMAT_USE_UNSERIALIZER" +. . . . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 1570 . . . . . . . . . . Line: 39 @@ -407,7 +397,14 @@ File { . . . . . . . . . . internalRole: consts . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "SERIALIZATION_FORMAT_USE_UNSERIALIZER" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { . . . . . . . . . . . Roles: Expression,Literal,String . . . . . . . . . . . TOKEN "C" . . . . . . . . . . . StartPosition: { @@ -428,8 +425,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 3: Stmt_ClassConst { -. . . . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . . . 4: Stmt_ClassConst { +. . . . . . . Roles: Body,Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 1621 . . . . . . . . Line: 40 @@ -446,8 +443,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Const { -. . . . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . . . TOKEN "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER" +. . . . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 1627 . . . . . . . . . . Line: 40 @@ -462,7 +458,14 @@ File { . . . . . . . . . . internalRole: consts . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { . . . . . . . . . . . Roles: Expression,Literal,String . . . . . . . . . . . TOKEN "O" . . . . . . . . . . . StartPosition: { @@ -483,8 +486,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 4: Stmt_Property { -. . . . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . . . 5: Stmt_Property { +. . . . . . . Roles: Body,Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 1779 . . . . . . . . Line: 45 @@ -502,27 +505,21 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * @var \callable[] used to instantiate specific classes, indexed by class name " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 1679 -. . . . . . . . . . Line: 42 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 1774 -. . . . . . . . . . Line: 44 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Stmt_PropertyProperty { -. . . . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . Roles: Incomplete,Type,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 1794 . . . . . . . . . . Line: 45 @@ -537,8 +534,15 @@ File { . . . . . . . . . . internalRole: props . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Array { +. . . . . . . . . . . Roles: Default,Expression,List,Literal . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 1817 . . . . . . . . . . . . Line: 45 @@ -557,8 +561,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 5: Stmt_Property { -. . . . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . . . 6: Stmt_Property { +. . . . . . . Roles: Body,Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 1925 . . . . . . . . Line: 50 @@ -576,27 +580,21 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * @var object[] of objects that can directly be cloned, indexed by class name " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 1826 -. . . . . . . . . . Line: 47 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 1920 -. . . . . . . . . . Line: 49 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Stmt_PropertyProperty { -. . . . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . Roles: Incomplete,Type,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 1940 . . . . . . . . . . Line: 50 @@ -611,8 +609,15 @@ File { . . . . . . . . . . internalRole: props . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Array { +. . . . . . . . . . . Roles: Default,Expression,List,Literal . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 1960 . . . . . . . . . . . . Line: 50 @@ -631,9 +636,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 6: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "instantiate" +. . . . . . 7: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 2006 . . . . . . . . Line: 55 @@ -651,28 +655,29 @@ File { . . . . . . . . type: 1 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "instantiate" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * {@inheritDoc} " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 1969 -. . . . . . . . . . Line: 52 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 2001 -. . . . . . . . . . Line: 54 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "className" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2034 . . . . . . . . . . Line: 55 @@ -688,9 +693,18 @@ File { . . . . . . . . . . internalRole: params . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 3: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2060 . . . . . . . . . . Line: 57 @@ -706,8 +720,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Isset { -. . . . . . . . . . . Roles: Expression,Call,Condition -. . . . . . . . . . . TOKEN "isset" +. . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2064 . . . . . . . . . . . . Line: 57 @@ -723,7 +736,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List,Value . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2070 . . . . . . . . . . . . . . Line: 57 @@ -739,8 +752,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2070 . . . . . . . . . . . . . . . . Line: 57 @@ -756,7 +768,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2070 @@ -776,7 +795,6 @@ File { . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2094 . . . . . . . . . . . . . . . . Line: 57 @@ -790,13 +808,22 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: dim . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Return { -. . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2122 . . . . . . . . . . . . Line: 58 @@ -812,8 +839,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Clone { -. . . . . . . . . . . . . Roles: Expression,Call,Incomplete -. . . . . . . . . . . . . TOKEN "clone" +. . . . . . . . . . . . . Roles: Call,Expression,Incomplete . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2129 . . . . . . . . . . . . . . Line: 58 @@ -829,7 +855,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . . . . . . . . . Roles: Entry,Expression,List,Value . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2135 . . . . . . . . . . . . . . . . Line: 58 @@ -845,8 +871,7 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2135 . . . . . . . . . . . . . . . . . . Line: 58 @@ -862,7 +887,14 @@ File { . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 2135 @@ -882,7 +914,6 @@ File { . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2159 . . . . . . . . . . . . . . . . . . Line: 58 @@ -896,6 +927,15 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: dim . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } @@ -905,8 +945,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 4: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2191 . . . . . . . . . . Line: 61 @@ -922,8 +962,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Isset { -. . . . . . . . . . . Roles: Expression,Call,Condition -. . . . . . . . . . . TOKEN "isset" +. . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2195 . . . . . . . . . . . . Line: 61 @@ -939,7 +978,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List,Value . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2201 . . . . . . . . . . . . . . Line: 61 @@ -955,8 +994,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2201 . . . . . . . . . . . . . . . . Line: 61 @@ -972,7 +1010,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2201 @@ -992,7 +1037,6 @@ File { . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2228 . . . . . . . . . . . . . . . . Line: 61 @@ -1006,13 +1050,22 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: dim . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_Assign { -. . . . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . . . . Roles: Assignment,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2256 . . . . . . . . . . . . Line: 62 @@ -1028,8 +1081,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2256 . . . . . . . . . . . . . . Line: 62 @@ -1043,9 +1095,18 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_ArrayDimFetch { -. . . . . . . . . . . . . Roles: Expression,List,Value,Entry,Right +. . . . . . . . . . . . . Roles: Entry,Expression,List,Right,Value . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2267 . . . . . . . . . . . . . . Line: 62 @@ -1061,8 +1122,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2267 . . . . . . . . . . . . . . . . Line: 62 @@ -1078,7 +1138,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2267 @@ -1098,7 +1165,6 @@ File { . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2294 . . . . . . . . . . . . . . . . Line: 62 @@ -1112,13 +1178,22 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: dim . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 2: Stmt_Return { -. . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2320 . . . . . . . . . . . . Line: 64 @@ -1134,7 +1209,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . . . Roles: Expression,Call +. . . . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2327 . . . . . . . . . . . . . . Line: 64 @@ -1150,8 +1225,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . Roles: Identifier,Variable,Function,Name -. . . . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . . . Roles: Identifier,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2327 . . . . . . . . . . . . . . . . Line: 64 @@ -1165,6 +1239,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: name . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -1172,8 +1255,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 4: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 5: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2358 . . . . . . . . . . Line: 67 @@ -1189,8 +1272,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . Roles: Expression,Call,Identifier -. . . . . . . . . . . TOKEN "buildAndCacheFromFactory" +. . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2365 . . . . . . . . . . . . Line: 67 @@ -1205,9 +1287,15 @@ File { . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "buildAndCacheFromFactory" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2365 . . . . . . . . . . . . . . Line: 67 @@ -1221,8 +1309,17 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } -. . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2397 @@ -1242,7 +1339,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2397 . . . . . . . . . . . . . . . . Line: 67 @@ -1256,6 +1352,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -1265,9 +1370,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 7: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "buildAndCacheFromFactory" +. . . . . . 8: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 2552 . . . . . . . . Line: 75 @@ -1285,30 +1389,31 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "buildAndCacheFromFactory" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * Builds the requested object and caches it in static properties for performance * * @return object " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 2421 -. . . . . . . . . . Line: 70 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 2547 -. . . . . . . . . . Line: 74 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "className" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2594 . . . . . . . . . . Line: 75 @@ -1325,9 +1430,18 @@ File { . . . . . . . . . . type: string . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Expr_Assign { -. . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . 3: Expr_Assign { +. . . . . . . . . Roles: Assignment,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2627 . . . . . . . . . . Line: 77 @@ -1343,8 +1457,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2627 . . . . . . . . . . . . Line: 77 @@ -1358,9 +1471,18 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_Assign { -. . . . . . . . . . . Roles: Right,Expression,Assignment +. . . . . . . . . . . Roles: Assignment,Expression,Right . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2639 . . . . . . . . . . . . Line: 77 @@ -1376,7 +1498,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . . . . . Roles: Expression,List,Value,Entry,Left +. . . . . . . . . . . . . Roles: Entry,Expression,Left,List,Value . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2639 . . . . . . . . . . . . . . Line: 77 @@ -1392,8 +1514,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2639 . . . . . . . . . . . . . . . . Line: 77 @@ -1409,7 +1530,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "cachedInstantiators" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2639 @@ -1429,7 +1557,6 @@ File { . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2666 . . . . . . . . . . . . . . . . Line: 77 @@ -1443,12 +1570,20 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: dim . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_MethodCall { -. . . . . . . . . . . . . Roles: Right,Expression,Call,Identifier -. . . . . . . . . . . . . TOKEN "buildFactory" +. . . . . . . . . . . . . Roles: Call,Expression,Identifier,Right . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2680 . . . . . . . . . . . . . . Line: 77 @@ -1463,9 +1598,15 @@ File { . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "buildFactory" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2680 . . . . . . . . . . . . . . . . Line: 77 @@ -1479,8 +1620,17 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2700 @@ -1500,7 +1650,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2700 . . . . . . . . . . . . . . . . . . Line: 77 @@ -1514,6 +1663,15 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } @@ -1523,8 +1681,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Expr_Assign { -. . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . 4: Expr_Assign { +. . . . . . . . . Roles: Assignment,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2721 . . . . . . . . . . Line: 78 @@ -1540,8 +1698,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . TOKEN "instance" +. . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2721 . . . . . . . . . . . . Line: 78 @@ -1555,14 +1712,23 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } -. . . . . . . . . . } -. . . . . . . . . . 1: Expr_FuncCall { -. . . . . . . . . . . Roles: Right,Expression,Call -. . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 2733 -. . . . . . . . . . . . Line: 78 -. . . . . . . . . . . . Col: 21 -. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "instance" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_FuncCall { +. . . . . . . . . . . Roles: Call,Expression,Right +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 2733 +. . . . . . . . . . . . Line: 78 +. . . . . . . . . . . . Col: 21 +. . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 2742 . . . . . . . . . . . . Line: 78 @@ -1573,8 +1739,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Function,Name -. . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . Roles: Identifier,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2733 . . . . . . . . . . . . . . Line: 78 @@ -1588,13 +1753,22 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: name . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "factory" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 4: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 5: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2754 . . . . . . . . . . Line: 80 @@ -1610,8 +1784,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . Roles: Condition,Expression,Call,Identifier -. . . . . . . . . . . TOKEN "isSafeToClone" +. . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2758 . . . . . . . . . . . . Line: 80 @@ -1626,9 +1799,15 @@ File { . . . . . . . . . . . . internalRole: cond . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "isSafeToClone" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2758 . . . . . . . . . . . . . . Line: 80 @@ -1642,8 +1821,17 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } -. . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2779 @@ -1662,8 +1850,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_New { -. . . . . . . . . . . . . . . Roles: Expression,Initialization,Call -. . . . . . . . . . . . . . . TOKEN "new" +. . . . . . . . . . . . . . . Roles: Call,Expression,Initialization . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2779 . . . . . . . . . . . . . . . . Line: 80 @@ -1679,7 +1866,7 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Type . . . . . . . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2783 @@ -1715,7 +1902,6 @@ File { . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "instance" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 2799 . . . . . . . . . . . . . . . . . . . . Line: 80 @@ -1729,6 +1915,15 @@ File { . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . TOKEN "instance" +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } @@ -1739,7 +1934,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_Assign { -. . . . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . . . . Roles: Assignment,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2826 . . . . . . . . . . . . Line: 81 @@ -1755,7 +1950,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . . . . . Roles: Expression,List,Value,Entry,Left +. . . . . . . . . . . . . Roles: Entry,Expression,Left,List,Value . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2826 . . . . . . . . . . . . . . Line: 81 @@ -1771,8 +1966,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2826 . . . . . . . . . . . . . . . . Line: 81 @@ -1788,7 +1982,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "cachedCloneables" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 2826 @@ -1808,7 +2009,6 @@ File { . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2850 . . . . . . . . . . . . . . . . Line: 81 @@ -1822,12 +2022,20 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: dim . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_Clone { -. . . . . . . . . . . . . Roles: Expression,Call,Incomplete,Right -. . . . . . . . . . . . . TOKEN "clone" +. . . . . . . . . . . . . Roles: Call,Expression,Incomplete,Right . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 2864 . . . . . . . . . . . . . . Line: 81 @@ -1844,7 +2052,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "instance" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 2870 . . . . . . . . . . . . . . . . Line: 81 @@ -1858,6 +2065,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "instance" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -1865,8 +2081,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 5: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 6: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 2900 . . . . . . . . . . Line: 84 @@ -1883,7 +2099,6 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "instance" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 2907 . . . . . . . . . . . . Line: 84 @@ -1897,14 +2112,22 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "instance" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 8: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "buildFactory" +. . . . . . 9: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 3180 . . . . . . . . Line: 95 @@ -1923,9 +2146,16 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "buildFactory" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * Builds a callable capable of instantiating the given $className without * invoking its constructor. * @@ -1934,22 +2164,16 @@ File { * @throws \ReflectionException " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 2929 -. . . . . . . . . . Line: 87 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 3175 -. . . . . . . . . . Line: 94 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "className" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 3210 . . . . . . . . . . Line: 95 @@ -1966,9 +2190,18 @@ File { . . . . . . . . . . type: string . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Expr_Assign { -. . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . 3: Expr_Assign { +. . . . . . . . . Roles: Assignment,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 3254 . . . . . . . . . . Line: 97 @@ -1984,8 +2217,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3254 . . . . . . . . . . . . Line: 97 @@ -1999,10 +2231,18 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_MethodCall { -. . . . . . . . . . . Roles: Right,Expression,Call,Identifier -. . . . . . . . . . . TOKEN "getReflectionClass" +. . . . . . . . . . . Roles: Call,Expression,Identifier,Right . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3273 . . . . . . . . . . . . Line: 97 @@ -2017,9 +2257,15 @@ File { . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "getReflectionClass" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3273 . . . . . . . . . . . . . . Line: 97 @@ -2033,8 +2279,17 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } -. . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3299 @@ -2054,7 +2309,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3299 . . . . . . . . . . . . . . . . Line: 97 @@ -2068,6 +2322,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -2075,8 +2338,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 4: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 3321 . . . . . . . . . . Line: 99 @@ -2092,8 +2355,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . Roles: Condition,Expression,Call,Identifier -. . . . . . . . . . . TOKEN "isInstantiableViaReflection" +. . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3325 . . . . . . . . . . . . Line: 99 @@ -2108,9 +2370,15 @@ File { . . . . . . . . . . . . internalRole: cond . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "isInstantiableViaReflection" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3325 . . . . . . . . . . . . . . Line: 99 @@ -2124,8 +2392,17 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } -. . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3360 @@ -2145,7 +2422,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3360 . . . . . . . . . . . . . . . . Line: 99 @@ -2159,13 +2435,22 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Return { -. . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3393 . . . . . . . . . . . . Line: 100 @@ -2181,7 +2466,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3400 . . . . . . . . . . . . . . Line: 100 @@ -2197,7 +2482,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3401 . . . . . . . . . . . . . . . . Line: 100 @@ -2215,7 +2500,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 3401 . . . . . . . . . . . . . . . . . . Line: 100 @@ -2229,11 +2513,20 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3419 . . . . . . . . . . . . . . . . Line: 100 @@ -2274,8 +2567,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 4: Expr_Assign { -. . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . 5: Expr_Assign { +. . . . . . . . . Roles: Assignment,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 3472 . . . . . . . . . . Line: 103 @@ -2291,8 +2584,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3472 . . . . . . . . . . . . Line: 103 @@ -2306,9 +2598,18 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_FuncCall { -. . . . . . . . . . . Roles: Right,Expression,Call +. . . . . . . . . . . Roles: Call,Expression,Right . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3492 . . . . . . . . . . . . Line: 103 @@ -2324,7 +2625,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . TOKEN "sprintf" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3492 @@ -2396,8 +2697,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_ClassConstFetch { -. . . . . . . . . . . . . . . Roles: Expression,Type,Incomplete -. . . . . . . . . . . . . . . TOKEN "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER" +. . . . . . . . . . . . . . . Roles: Expression,Incomplete,Type . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3544 . . . . . . . . . . . . . . . . Line: 105 @@ -2413,7 +2713,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "SERIALIZATION_FORMAT_AVOID_UNSERIALIZER" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "self" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 3544 @@ -2452,7 +2759,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . . . . . Roles: Expression,Call +. . . . . . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3603 . . . . . . . . . . . . . . . . Line: 106 @@ -2468,7 +2775,7 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "strlen" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 3603 @@ -2504,7 +2811,6 @@ File { . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 3610 . . . . . . . . . . . . . . . . . . . . Line: 106 @@ -2518,6 +2824,15 @@ File { . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } @@ -2545,7 +2860,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3635 . . . . . . . . . . . . . . . . Line: 107 @@ -2559,6 +2873,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -2566,9 +2889,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 5: Expr_MethodCall { -. . . . . . . . . Roles: Expression,Body,Call,Identifier -. . . . . . . . . TOKEN "checkIfUnSerializationIsSupported" +. . . . . . . . 6: Expr_MethodCall { +. . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 3666 . . . . . . . . . . Line: 110 @@ -2583,9 +2905,15 @@ File { . . . . . . . . . . internalRole: stmts . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . TOKEN "this" +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "checkIfUnSerializationIsSupported" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3666 . . . . . . . . . . . . Line: 110 @@ -2599,8 +2927,17 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 1: Arg { +. . . . . . . . . . 2: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3707 @@ -2620,7 +2957,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3707 . . . . . . . . . . . . . . Line: 110 @@ -2634,10 +2970,19 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 2: Arg { +. . . . . . . . . . 3: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3725 @@ -2657,7 +3002,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "serializedString" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3725 . . . . . . . . . . . . . . Line: 110 @@ -2671,13 +3015,22 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 6: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 7: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 3754 . . . . . . . . . . Line: 112 @@ -2693,7 +3046,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Closure { -. . . . . . . . . . . Roles: Function,Declaration,Expression,Anonymous +. . . . . . . . . . . Roles: Anonymous,Declaration,Expression,Function . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 3761 . . . . . . . . . . . . Line: 112 @@ -2711,8 +3064,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ClosureUse { -. . . . . . . . . . . . . Roles: Visibility,Incomplete -. . . . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . . . Roles: Incomplete,Visibility . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3778 . . . . . . . . . . . . . . Line: 112 @@ -2726,10 +3078,11 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . byRef: false . . . . . . . . . . . . . . internalRole: uses +. . . . . . . . . . . . . . var: serializedString . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Stmt_Return { -. . . . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 3811 . . . . . . . . . . . . . . Line: 113 @@ -2745,7 +3098,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . . . . . Roles: Expression,Call +. . . . . . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 3818 . . . . . . . . . . . . . . . . Line: 113 @@ -2761,7 +3114,7 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . TOKEN "unserialize" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 3818 @@ -2797,7 +3150,6 @@ File { . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "serializedString" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 3830 . . . . . . . . . . . . . . . . . . . . Line: 113 @@ -2811,6 +3163,15 @@ File { . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } @@ -2824,9 +3185,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 9: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "getReflectionClass" +. . . . . . 10: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 4041 . . . . . . . . Line: 125 @@ -2844,9 +3204,16 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "getReflectionClass" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * @param string $className * * @return ReflectionClass @@ -2855,22 +3222,16 @@ File { * @throws \ReflectionException " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 3872 -. . . . . . . . . . Line: 117 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 4036 -. . . . . . . . . . Line: 124 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "className" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4077 . . . . . . . . . . Line: 125 @@ -2886,8 +3247,17 @@ File { . . . . . . . . . . internalRole: params . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Name { +. . . . . . . . 3: Name { . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . StartPosition: { @@ -2904,8 +3274,8 @@ File { . . . . . . . . . . internalRole: returnType . . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 4: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4121 . . . . . . . . . . Line: 127 @@ -2921,7 +3291,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_BooleanNot { -. . . . . . . . . . . Roles: Condition,Expression,Operator,Boolean,Not +. . . . . . . . . . . Roles: Boolean,Expression,Not,Operator . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4125 . . . . . . . . . . . . Line: 127 @@ -2937,7 +3307,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . . . Roles: Expression,Call +. . . . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 4127 . . . . . . . . . . . . . . Line: 127 @@ -2953,7 +3323,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . TOKEN "class_exists" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4127 @@ -2989,7 +3359,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 4140 . . . . . . . . . . . . . . . . . . Line: 127 @@ -3003,6 +3372,15 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } @@ -3011,7 +3389,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Throw { -. . . . . . . . . . . Roles: Expression,Body,Statement,Throw +. . . . . . . . . . . Roles: Statement,Throw . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4167 . . . . . . . . . . . . Line: 128 @@ -3027,8 +3405,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_StaticCall { -. . . . . . . . . . . . . Roles: Expression,Call,Identifier -. . . . . . . . . . . . . TOKEN "fromNonExistingClass" +. . . . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 4173 . . . . . . . . . . . . . . Line: 128 @@ -3044,7 +3421,14 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "fromNonExistingClass" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier,Receiver,Type . . . . . . . . . . . . . . . TOKEN "InvalidArgumentException" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4173 @@ -3060,7 +3444,7 @@ File { . . . . . . . . . . . . . . . . internalRole: class . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4220 @@ -3080,7 +3464,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 4220 . . . . . . . . . . . . . . . . . . Line: 128 @@ -3094,6 +3477,15 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } @@ -3103,8 +3495,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 4: Expr_Assign { -. . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . 5: Expr_Assign { +. . . . . . . . . Roles: Assignment,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4252 . . . . . . . . . . Line: 131 @@ -3120,8 +3512,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4252 . . . . . . . . . . . . Line: 131 @@ -3135,10 +3526,18 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_New { -. . . . . . . . . . . Roles: Right,Expression,Initialization,Call -. . . . . . . . . . . TOKEN "new" +. . . . . . . . . . . Roles: Call,Expression,Initialization,Right . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4266 . . . . . . . . . . . . Line: 131 @@ -3154,7 +3553,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . . . . . . . . . Roles: Expression,Identifier,Type . . . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 4270 @@ -3190,7 +3589,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "className" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4286 . . . . . . . . . . . . . . . . Line: 131 @@ -3204,6 +3602,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "className" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -3211,8 +3618,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 5: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 6: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4308 . . . . . . . . . . Line: 133 @@ -3228,8 +3635,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . Roles: Condition,Expression,Call,Identifier -. . . . . . . . . . . TOKEN "isAbstract" +. . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4312 . . . . . . . . . . . . Line: 133 @@ -3244,9 +3650,15 @@ File { . . . . . . . . . . . . internalRole: cond . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "isAbstract" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 4312 . . . . . . . . . . . . . . Line: 133 @@ -3260,11 +3672,20 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Throw { -. . . . . . . . . . . Roles: Expression,Body,Statement,Throw +. . . . . . . . . . . Roles: Statement,Throw . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4353 . . . . . . . . . . . . Line: 134 @@ -3280,8 +3701,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_StaticCall { -. . . . . . . . . . . . . Roles: Expression,Call,Identifier -. . . . . . . . . . . . . TOKEN "fromAbstractClass" +. . . . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 4359 . . . . . . . . . . . . . . Line: 134 @@ -3297,7 +3717,14 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "fromAbstractClass" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier,Receiver,Type . . . . . . . . . . . . . . . TOKEN "InvalidArgumentException" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4359 @@ -3313,7 +3740,7 @@ File { . . . . . . . . . . . . . . . . internalRole: class . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4403 @@ -3333,7 +3760,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "reflection" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 4403 . . . . . . . . . . . . . . . . . . Line: 134 @@ -3347,6 +3773,15 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } @@ -3356,8 +3791,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 6: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 7: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4436 . . . . . . . . . . Line: 137 @@ -3374,7 +3809,6 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "reflection" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4443 . . . . . . . . . . . . Line: 137 @@ -3388,14 +3822,22 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 10: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "checkIfUnSerializationIsSupported" +. . . . . . 11: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 4652 . . . . . . . . Line: 148 @@ -3414,9 +3856,16 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "checkIfUnSerializationIsSupported" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * @param ReflectionClass $reflectionClass * @param string $serializedString * @@ -3425,22 +3874,16 @@ File { * @return void " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 4467 -. . . . . . . . . . Line: 140 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 4647 -. . . . . . . . . . Line: 147 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4703 . . . . . . . . . . Line: 148 @@ -3459,6 +3902,13 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Name { . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4703 @@ -3476,9 +3926,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Param { +. . . . . . . . 3: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "serializedString" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4737 . . . . . . . . . . Line: 148 @@ -3494,9 +3943,18 @@ File { . . . . . . . . . . internalRole: params . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Expr_FuncCall { -. . . . . . . . . Roles: Expression,Body,Call +. . . . . . . . 4: Expr_FuncCall { +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 4777 . . . . . . . . . . Line: 150 @@ -3512,7 +3970,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "set_error_handler" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 4777 @@ -3547,7 +4005,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Closure { -. . . . . . . . . . . . . Roles: Function,Declaration,Expression,Anonymous +. . . . . . . . . . . . . Roles: Anonymous,Declaration,Expression,Function . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 4795 . . . . . . . . . . . . . . Line: 150 @@ -3567,7 +4025,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Param { . . . . . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . . . . . TOKEN "code" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4805 . . . . . . . . . . . . . . . . Line: 150 @@ -3583,10 +4040,18 @@ File { . . . . . . . . . . . . . . . . internalRole: params . . . . . . . . . . . . . . . . variadic: false . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "code" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Param { . . . . . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . . . . . TOKEN "message" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4812 . . . . . . . . . . . . . . . . Line: 150 @@ -3602,10 +4067,18 @@ File { . . . . . . . . . . . . . . . . internalRole: params . . . . . . . . . . . . . . . . variadic: false . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "message" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 2: Param { . . . . . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . . . . . TOKEN "file" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4822 . . . . . . . . . . . . . . . . Line: 150 @@ -3621,10 +4094,18 @@ File { . . . . . . . . . . . . . . . . internalRole: params . . . . . . . . . . . . . . . . variadic: false . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "file" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 3: Param { . . . . . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . . . . . TOKEN "line" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4829 . . . . . . . . . . . . . . . . Line: 150 @@ -3640,10 +4121,18 @@ File { . . . . . . . . . . . . . . . . internalRole: params . . . . . . . . . . . . . . . . variadic: false . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "line" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 4: Expr_ClosureUse { -. . . . . . . . . . . . . . . Roles: Visibility,Incomplete -. . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . Roles: Incomplete,Visibility . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4841 . . . . . . . . . . . . . . . . Line: 150 @@ -3657,11 +4146,11 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . byRef: false . . . . . . . . . . . . . . . . internalRole: uses +. . . . . . . . . . . . . . . . var: reflectionClass . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 5: Expr_ClosureUse { -. . . . . . . . . . . . . . . Roles: Visibility,Incomplete -. . . . . . . . . . . . . . . TOKEN "error" +. . . . . . . . . . . . . . . Roles: Incomplete,Visibility . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4859 . . . . . . . . . . . . . . . . Line: 150 @@ -3675,10 +4164,11 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . byRef: true . . . . . . . . . . . . . . . . internalRole: uses +. . . . . . . . . . . . . . . . var: error . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 6: Expr_Assign { -. . . . . . . . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . . . . . . . . Roles: Assignment,Expression . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 4890 . . . . . . . . . . . . . . . . Line: 151 @@ -3694,8 +4184,7 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . . . . . . . TOKEN "error" +. . . . . . . . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 4890 . . . . . . . . . . . . . . . . . . Line: 151 @@ -3709,10 +4198,18 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "error" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . 1: Expr_StaticCall { -. . . . . . . . . . . . . . . . . Roles: Right,Expression,Call,Identifier -. . . . . . . . . . . . . . . . . TOKEN "fromUncleanUnSerialization" +. . . . . . . . . . . . . . . . . Roles: Call,Expression,Identifier,Right . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 4899 . . . . . . . . . . . . . . . . . . Line: 151 @@ -3728,7 +4225,14 @@ File { . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "fromUncleanUnSerialization" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Receiver,Type . . . . . . . . . . . . . . . . . . . TOKEN "UnexpectedValueException" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 4899 @@ -3744,7 +4248,7 @@ File { . . . . . . . . . . . . . . . . . . . . internalRole: class . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 4969 @@ -3764,7 +4268,6 @@ File { . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 4969 . . . . . . . . . . . . . . . . . . . . . . Line: 152 @@ -3778,10 +4281,19 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . . 2: Arg { +. . . . . . . . . . . . . . . . . . 3: Arg { . . . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 5003 @@ -3801,7 +4313,6 @@ File { . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . . . TOKEN "message" . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 5003 . . . . . . . . . . . . . . . . . . . . . . Line: 153 @@ -3815,10 +4326,19 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "message" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . . 3: Arg { +. . . . . . . . . . . . . . . . . . 4: Arg { . . . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 5029 @@ -3838,7 +4358,6 @@ File { . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . . . TOKEN "code" . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 5029 . . . . . . . . . . . . . . . . . . . . . . Line: 154 @@ -3852,10 +4371,19 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "code" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . . 4: Arg { +. . . . . . . . . . . . . . . . . . 5: Arg { . . . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 5052 @@ -3875,7 +4403,6 @@ File { . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . . . TOKEN "file" . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 5052 . . . . . . . . . . . . . . . . . . . . . . Line: 155 @@ -3889,10 +4416,19 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "file" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . . 5: Arg { +. . . . . . . . . . . . . . . . . . 6: Arg { . . . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 5075 @@ -3912,7 +4448,6 @@ File { . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . . . TOKEN "line" . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 5075 . . . . . . . . . . . . . . . . . . . . . . Line: 156 @@ -3926,6 +4461,15 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "line" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } @@ -3939,9 +4483,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 4: Expr_MethodCall { -. . . . . . . . . Roles: Expression,Body,Call,Identifier -. . . . . . . . . TOKEN "attemptInstantiationViaUnSerialization" +. . . . . . . . 5: Expr_MethodCall { +. . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5117 . . . . . . . . . . Line: 160 @@ -3956,9 +4499,15 @@ File { . . . . . . . . . . internalRole: stmts . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . TOKEN "this" +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "attemptInstantiationViaUnSerialization" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5117 . . . . . . . . . . . . Line: 160 @@ -3972,8 +4521,17 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 1: Arg { +. . . . . . . . . . 2: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5163 @@ -3993,7 +4551,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5163 . . . . . . . . . . . . . . Line: 160 @@ -4007,10 +4564,19 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 2: Arg { +. . . . . . . . . . 3: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5181 @@ -4030,7 +4596,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "serializedString" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5181 . . . . . . . . . . . . . . Line: 160 @@ -4044,13 +4609,22 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 5: Expr_FuncCall { -. . . . . . . . . Roles: Expression,Body,Call +. . . . . . . . 6: Expr_FuncCall { +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5210 . . . . . . . . . . Line: 162 @@ -4066,7 +4640,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "restore_error_handler" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5210 @@ -4084,8 +4658,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 6: Stmt_If { -. . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . 7: Stmt_If { +. . . . . . . . . Roles: If,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5244 . . . . . . . . . . Line: 164 @@ -4101,8 +4675,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . . . . . TOKEN "error" +. . . . . . . . . . . Roles: Identifier,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5248 . . . . . . . . . . . . Line: 164 @@ -4116,9 +4689,18 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: cond . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "error" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Throw { -. . . . . . . . . . . Roles: Expression,Body,Statement,Throw +. . . . . . . . . . . Roles: Statement,Throw . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5270 . . . . . . . . . . . . Line: 165 @@ -4135,7 +4717,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "error" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5276 . . . . . . . . . . . . . . Line: 165 @@ -4149,6 +4730,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "error" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } @@ -4156,9 +4746,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 11: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "attemptInstantiationViaUnSerialization" +. . . . . . 12: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 5490 . . . . . . . . Line: 177 @@ -4177,9 +4766,16 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "attemptInstantiationViaUnSerialization" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * @param ReflectionClass $reflectionClass * @param string $serializedString * @@ -4188,22 +4784,16 @@ File { * @return void " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 5305 -. . . . . . . . . . Line: 169 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 5485 -. . . . . . . . . . Line: 176 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5546 . . . . . . . . . . Line: 177 @@ -4222,6 +4812,13 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Name { . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5546 @@ -4239,9 +4836,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Param { +. . . . . . . . 3: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "serializedString" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5580 . . . . . . . . . . Line: 177 @@ -4257,9 +4853,18 @@ File { . . . . . . . . . . internalRole: params . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Stmt_TryCatch { -. . . . . . . . . Roles: Expression,Body,Statement,Try +. . . . . . . . 4: Stmt_TryCatch { +. . . . . . . . . Roles: Statement,Try . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5620 . . . . . . . . . . Line: 179 @@ -4275,7 +4880,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . Roles: Expression,Body,Call +. . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5638 . . . . . . . . . . . . Line: 180 @@ -4291,7 +4896,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . TOKEN "unserialize" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5638 @@ -4327,7 +4932,6 @@ File { . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . TOKEN "serializedString" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 5650 . . . . . . . . . . . . . . . . Line: 180 @@ -4341,13 +4945,22 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "serializedString" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Catch { -. . . . . . . . . . . Roles: Statement,Catch +. . . . . . . . . . . Roles: Catch,Type . . . . . . . . . . . TOKEN "exception" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5680 @@ -4364,7 +4977,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . . . . . . . TOKEN "Exception" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5687 @@ -4381,7 +4994,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_FuncCall { -. . . . . . . . . . . . . Roles: Expression,Body,Call +. . . . . . . . . . . . . Roles: Body,Call,Catch,Expression . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5723 . . . . . . . . . . . . . . Line: 182 @@ -4397,7 +5010,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . TOKEN "restore_error_handler" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 5723 @@ -4416,7 +5029,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 2: Stmt_Throw { -. . . . . . . . . . . . . Roles: Expression,Body,Statement,Throw +. . . . . . . . . . . . . Roles: Body,Catch,Statement,Throw . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5761 . . . . . . . . . . . . . . Line: 184 @@ -4432,8 +5045,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_StaticCall { -. . . . . . . . . . . . . . . Roles: Expression,Call,Identifier -. . . . . . . . . . . . . . . TOKEN "fromSerializationTriggeredException" +. . . . . . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 5767 . . . . . . . . . . . . . . . . Line: 184 @@ -4449,7 +5061,14 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "fromSerializationTriggeredException" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Receiver,Type . . . . . . . . . . . . . . . . . TOKEN "UnexpectedValueException" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 5767 @@ -4465,7 +5084,7 @@ File { . . . . . . . . . . . . . . . . . . internalRole: class . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 5829 @@ -4485,7 +5104,6 @@ File { . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 5829 . . . . . . . . . . . . . . . . . . . . Line: 184 @@ -4499,10 +5117,19 @@ File { . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 2: Arg { +. . . . . . . . . . . . . . . . 3: Arg { . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 5847 @@ -4522,7 +5149,6 @@ File { . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "exception" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 5847 . . . . . . . . . . . . . . . . . . . . Line: 184 @@ -4536,6 +5162,15 @@ File { . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . TOKEN "exception" +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } @@ -4549,9 +5184,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 12: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "isInstantiableViaReflection" +. . . . . . 13: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 5881 . . . . . . . . Line: 188 @@ -4570,9 +5204,15 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Param { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "isInstantiableViaReflection" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5926 . . . . . . . . . . Line: 188 @@ -4591,6 +5231,13 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Name { . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5926 @@ -4608,8 +5255,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 2: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 5981 . . . . . . . . . . Line: 190 @@ -4625,7 +5272,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_BooleanNot { -. . . . . . . . . . . Roles: Expression,Operator,Boolean,Not +. . . . . . . . . . . Roles: Boolean,Expression,Not,Operator . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 5988 . . . . . . . . . . . . Line: 190 @@ -4641,7 +5288,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_BinaryOp_BooleanAnd { -. . . . . . . . . . . . . Roles: Expression,Binary,Operator,Boolean,And +. . . . . . . . . . . . . Roles: And,Binary,Boolean,Expression,Operator . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 5991 . . . . . . . . . . . . . . Line: 190 @@ -4657,8 +5304,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . . . . . Roles: Left,Expression,Call,Identifier -. . . . . . . . . . . . . . . TOKEN "hasInternalAncestors" +. . . . . . . . . . . . . . . Roles: Call,Expression,Identifier,Left . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 5991 . . . . . . . . . . . . . . . . Line: 190 @@ -4673,9 +5319,15 @@ File { . . . . . . . . . . . . . . . . internalRole: left . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "hasInternalAncestors" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 5991 . . . . . . . . . . . . . . . . . . Line: 190 @@ -4689,8 +5341,17 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 6019 @@ -4710,7 +5371,6 @@ File { . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 6019 . . . . . . . . . . . . . . . . . . . . Line: 190 @@ -4724,14 +5384,22 @@ File { . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_MethodCall { -. . . . . . . . . . . . . . . Roles: Right,Expression,Call,Identifier -. . . . . . . . . . . . . . . TOKEN "isFinal" +. . . . . . . . . . . . . . . Roles: Call,Expression,Identifier,Right . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 6040 . . . . . . . . . . . . . . . . Line: 190 @@ -4746,9 +5414,15 @@ File { . . . . . . . . . . . . . . . . internalRole: right . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "isFinal" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 6040 . . . . . . . . . . . . . . . . . . Line: 190 @@ -4762,6 +5436,15 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } @@ -4773,9 +5456,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 13: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "hasInternalAncestors" +. . . . . . 14: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 6166 . . . . . . . . Line: 196 @@ -4794,28 +5476,29 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "hasInternalAncestors" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * Verifies whether the given class is to be considered internal " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 6081 -. . . . . . . . . . Line: 193 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 6161 -. . . . . . . . . . Line: 195 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "reflectionClass" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 6204 . . . . . . . . . . Line: 196 @@ -4834,6 +5517,13 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Name { . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 6204 @@ -4851,8 +5541,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Stmt_Do { -. . . . . . . . . Roles: Expression,Body,Statement,DoWhile +. . . . . . . . 3: Stmt_Do { +. . . . . . . . . Roles: DoWhile,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 6259 . . . . . . . . . . Line: 198 @@ -4868,7 +5558,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Stmt_If { -. . . . . . . . . . . Roles: Expression,Body,Statement,If +. . . . . . . . . . . Roles: If,Statement . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 6276 . . . . . . . . . . . . Line: 199 @@ -4884,8 +5574,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . . . Roles: Condition,Expression,Call,Identifier -. . . . . . . . . . . . . TOKEN "isInternal" +. . . . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 6280 . . . . . . . . . . . . . . Line: 199 @@ -4900,9 +5589,15 @@ File { . . . . . . . . . . . . . . internalRole: cond . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "isInternal" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 6280 . . . . . . . . . . . . . . . . Line: 199 @@ -4916,11 +5611,20 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Stmt_Return { -. . . . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 6330 . . . . . . . . . . . . . . Line: 200 @@ -4936,7 +5640,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_ConstFetch { -. . . . . . . . . . . . . . . Roles: Expression,Variable,Incomplete +. . . . . . . . . . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 6337 . . . . . . . . . . . . . . . . Line: 200 @@ -4975,7 +5679,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_Assign { -. . . . . . . . . . . Roles: Condition,Expression,Assignment +. . . . . . . . . . . Roles: Assignment,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 6374 . . . . . . . . . . . . Line: 202 @@ -4991,8 +5695,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 6374 . . . . . . . . . . . . . . Line: 202 @@ -5006,10 +5709,18 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_MethodCall { -. . . . . . . . . . . . . Roles: Right,Expression,Call,Identifier -. . . . . . . . . . . . . TOKEN "getParentClass" +. . . . . . . . . . . . . Roles: Call,Expression,Identifier,Right . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 6393 . . . . . . . . . . . . . . Line: 202 @@ -5024,9 +5735,15 @@ File { . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "getParentClass" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 6393 . . . . . . . . . . . . . . . . Line: 202 @@ -5040,6 +5757,15 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "reflectionClass" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } @@ -5047,8 +5773,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 3: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 4: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 6439 . . . . . . . . . . Line: 204 @@ -5064,7 +5790,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_ConstFetch { -. . . . . . . . . . . Roles: Expression,Variable,Incomplete +. . . . . . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 6446 . . . . . . . . . . . . Line: 204 @@ -5102,9 +5828,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 14: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "isSafeToClone" +. . . . . . 15: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 6620 . . . . . . . . Line: 212 @@ -5123,30 +5848,31 @@ File { . . . . . . . . type: 4 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment_Doc { -. . . . . . . . . Roles: Noop,Comment,Documentation -. . . . . . . . . TOKEN " +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "isSafeToClone" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment_Doc { +. . . . . . . . . Roles: Comment,Documentation,Noop +. . . . . . . . . TOKEN "* * Checks if a class is cloneable * * Classes implementing `__clone` cannot be safely cloned, as that may cause side-effects. " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 6464 -. . . . . . . . . . Line: 207 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 6615 -. . . . . . . . . . Line: 211 -. . . . . . . . . . Col: 8 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { +. . . . . . . . 2: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "reflection" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 6651 . . . . . . . . . . Line: 212 @@ -5165,6 +5891,13 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Name { . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "ReflectionClass" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 6651 @@ -5182,8 +5915,8 @@ File { . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . 3: Stmt_Return { +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 6701 . . . . . . . . . . Line: 214 @@ -5199,7 +5932,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_BinaryOp_BooleanAnd { -. . . . . . . . . . . Roles: Expression,Binary,Operator,Boolean,And +. . . . . . . . . . . Roles: And,Binary,Boolean,Expression,Operator . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 6708 . . . . . . . . . . . . Line: 214 @@ -5215,8 +5948,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . . . Roles: Left,Expression,Call,Identifier -. . . . . . . . . . . . . TOKEN "isCloneable" +. . . . . . . . . . . . . Roles: Call,Expression,Identifier,Left . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 6708 . . . . . . . . . . . . . . Line: 214 @@ -5231,9 +5963,15 @@ File { . . . . . . . . . . . . . . internalRole: left . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "isCloneable" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 6708 . . . . . . . . . . . . . . . . Line: 214 @@ -5247,11 +5985,20 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_BooleanNot { -. . . . . . . . . . . . . Roles: Right,Expression,Operator,Boolean,Not +. . . . . . . . . . . . . Roles: Boolean,Expression,Not,Operator,Right . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 6738 . . . . . . . . . . . . . . Line: 214 @@ -5267,8 +6014,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_MethodCall { -. . . . . . . . . . . . . . . Roles: Expression,Call,Identifier -. . . . . . . . . . . . . . . TOKEN "hasMethod" +. . . . . . . . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 6740 . . . . . . . . . . . . . . . . Line: 214 @@ -5283,9 +6029,15 @@ File { . . . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "hasMethod" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 6740 . . . . . . . . . . . . . . . . . . Line: 214 @@ -5299,8 +6051,17 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "reflection" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . . . 2: Arg { . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 6763 diff --git a/fixtures/const.php.native b/fixtures/const.php.native index 38b29f3..6643a4e 100644 --- a/fixtures/const.php.native +++ b/fixtures/const.php.native @@ -2,112 +2,104 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 43, - "endLine": 3, - "endTokenPos": 30, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "consts": [ - { - "attributes": { - "endFilePos": 17, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 13, - "startLine": 3, - "startTokenPos": 4 - }, - "name": "A", - "nodeType": "Const", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 43, + "endLine": 3, + "endTokenPos": 30, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "consts": [ + { "attributes": { "endFilePos": 17, "endLine": 3, "endTokenPos": 8, - "kind": 10, - "startFilePos": 17, + "startFilePos": 13, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 4 }, - "nodeType": "Scalar_LNumber", - "value": 0 - } - }, - { - "attributes": { - "endFilePos": 26, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 20, - "startLine": 3, - "startTokenPos": 11 + "name": "A", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 17, + "endLine": 3, + "endTokenPos": 8, + "kind": 10, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 8 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } }, - "name": "B", - "nodeType": "Const", - "value": { + { "attributes": { "endFilePos": 26, "endLine": 3, "endTokenPos": 15, - "startFilePos": 24, + "startFilePos": 20, "startLine": 3, - "startTokenPos": 15 + "startTokenPos": 11 }, - "nodeType": "Scalar_DNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 35, - "endLine": 3, - "endTokenPos": 22, - "startFilePos": 29, - "startLine": 3, - "startTokenPos": 18 + "name": "B", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 26, + "endLine": 3, + "endTokenPos": 15, + "startFilePos": 24, + "startLine": 3, + "startTokenPos": 15 + }, + "nodeType": "Scalar_DNumber", + "value": 1 + } }, - "name": "C", - "nodeType": "Const", - "value": { + { "attributes": { "endFilePos": 35, "endLine": 3, "endTokenPos": 22, - "kind": 1, - "startFilePos": 33, + "startFilePos": 29, "startLine": 3, - "startTokenPos": 22 + "startTokenPos": 18 }, - "nodeType": "Scalar_String", - "value": "A" - } - }, - { - "attributes": { - "endFilePos": 42, - "endLine": 3, - "endTokenPos": 29, - "startFilePos": 38, - "startLine": 3, - "startTokenPos": 25 + "name": "C", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 35, + "endLine": 3, + "endTokenPos": 22, + "kind": 1, + "startFilePos": 33, + "startLine": 3, + "startTokenPos": 22 + }, + "nodeType": "Scalar_String", + "value": "A" + } }, - "name": "D", - "nodeType": "Const", - "value": { + { "attributes": { "endFilePos": 42, "endLine": 3, "endTokenPos": 29, - "startFilePos": 42, + "startFilePos": 38, "startLine": 3, - "startTokenPos": 29 + "startTokenPos": 25 }, - "name": { + "name": "D", + "nodeType": "Const", + "value": { "attributes": { "endFilePos": 42, "endLine": 3, @@ -116,16 +108,27 @@ "startLine": 3, "startTokenPos": 29 }, - "nodeType": "Name", - "parts": [ - "E" - ] - }, - "nodeType": "Expr_ConstFetch" + "name": { + "attributes": { + "endFilePos": 42, + "endLine": 3, + "endTokenPos": 29, + "startFilePos": 42, + "startLine": 3, + "startTokenPos": 29 + }, + "nodeType": "Name", + "parts": [ + "E" + ] + }, + "nodeType": "Expr_ConstFetch" + } } - } - ], - "nodeType": "Stmt_Const" - } - ] + ], + "nodeType": "Stmt_Const" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/const.php.uast b/fixtures/const.php.uast index eb8e3a1..ccb39fc 100644 --- a/fixtures/const.php.uast +++ b/fixtures/const.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "A" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 3 @@ -38,7 +37,14 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_LNumber { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_LNumber { . . . . . . . Roles: Expression,Literal,Number . . . . . . . TOKEN "0" . . . . . . . StartPosition: { @@ -58,8 +64,7 @@ File { . . . . . } . . . . } . . . . 1: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "B" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 3 @@ -74,7 +79,14 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_DNumber { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "B" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_DNumber { . . . . . . . Roles: Expression,Literal,Number . . . . . . . TOKEN "1" . . . . . . . StartPosition: { @@ -94,8 +106,7 @@ File { . . . . . } . . . . } . . . . 2: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "C" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 3 @@ -110,7 +121,14 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_String { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "C" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String . . . . . . . TOKEN "A" . . . . . . . StartPosition: { @@ -130,8 +148,7 @@ File { . . . . . } . . . . } . . . . 3: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "D" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 38 . . . . . . Line: 3 @@ -146,8 +163,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_ConstFetch { -. . . . . . . Roles: Expression,Variable,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "D" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ConstFetch { +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 42 . . . . . . . . Line: 3 diff --git a/fixtures/const_fetch.php.native b/fixtures/const_fetch.php.native index 067b417..362a3a5 100644 --- a/fixtures/const_fetch.php.native +++ b/fixtures/const_fetch.php.native @@ -2,17 +2,9 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 7, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 7, "endLine": 3, @@ -21,64 +13,75 @@ "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - { - "attributes": { - "endFilePos": 13, - "endLine": 4, - "endTokenPos": 7, - "startFilePos": 10, - "startLine": 4, - "startTokenPos": 5 + "name": { + "attributes": { + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "class": { + { "attributes": { - "endFilePos": 10, + "endFilePos": 13, "endLine": 4, - "endTokenPos": 5, + "endTokenPos": 7, "startFilePos": 10, "startLine": 4, "startTokenPos": 5 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "B", - "nodeType": "Expr_ClassConstFetch" - }, - { - "attributes": { - "endFilePos": 23, - "endLine": 5, - "endTokenPos": 12, - "startFilePos": 16, - "startLine": 5, - "startTokenPos": 10 + "class": { + "attributes": { + "endFilePos": 10, + "endLine": 4, + "endTokenPos": 5, + "startFilePos": 10, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "B", + "nodeType": "Expr_ClassConstFetch" }, - "class": { + { "attributes": { - "endFilePos": 16, + "endFilePos": 23, "endLine": 5, - "endTokenPos": 10, + "endTokenPos": 12, "startFilePos": 16, "startLine": 5, "startTokenPos": 10 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "class", - "nodeType": "Expr_ClassConstFetch" - } - ] + "class": { + "attributes": { + "endFilePos": 16, + "endLine": 5, + "endTokenPos": 10, + "startFilePos": 16, + "startLine": 5, + "startTokenPos": 10 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "class", + "nodeType": "Expr_ClassConstFetch" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/const_fetch.php.uast b/fixtures/const_fetch.php.uast index a77f5bf..aa07d08 100644 --- a/fixtures/const_fetch.php.uast +++ b/fixtures/const_fetch.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ConstFetch { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -41,8 +41,7 @@ File { . . . } . . } . . 1: Expr_ClassConstFetch { -. . . Roles: Expression,Type,Incomplete -. . . TOKEN "B" +. . . Roles: Expression,Incomplete,Type . . . StartPosition: { . . . . Offset: 10 . . . . Line: 4 @@ -58,7 +57,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "B" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 10 @@ -77,8 +83,7 @@ File { . . . } . . } . . 2: Expr_ClassConstFetch { -. . . Roles: Expression,Type,Incomplete -. . . TOKEN "class" +. . . Roles: Expression,Incomplete,Type . . . StartPosition: { . . . . Offset: 16 . . . . Line: 5 @@ -94,7 +99,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "class" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 16 diff --git a/fixtures/constant_deref.php.native b/fixtures/constant_deref.php.native index b78846e..60ebf07 100644 --- a/fixtures/constant_deref.php.native +++ b/fixtures/constant_deref.php.native @@ -2,85 +2,63 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "dim": { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 4, - "kind": 10, - "startFilePos": 13, - "startLine": 3, - "startTokenPos": 4 - }, - "nodeType": "Scalar_LNumber", - "value": 2 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 11, + "endFilePos": 14, "endLine": 3, - "endTokenPos": 2, - "kind": 2, + "endTokenPos": 5, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Scalar_String", - "value": "abc" - } - }, - { - "attributes": { - "endFilePos": 30, - "endLine": 4, - "endTokenPos": 17, - "startFilePos": 17, - "startLine": 4, - "startTokenPos": 8 - }, - "dim": { - "attributes": { - "endFilePos": 29, - "endLine": 4, - "endTokenPos": 16, - "kind": 10, - "startFilePos": 29, - "startLine": 4, - "startTokenPos": 16 + "dim": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 4, + "kind": 10, + "startFilePos": 13, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_LNumber", + "value": 2 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 11, + "endLine": 3, + "endTokenPos": 2, + "kind": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_String", + "value": "abc" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 27, + "endFilePos": 30, "endLine": 4, - "endTokenPos": 14, + "endTokenPos": 17, "startFilePos": 17, "startLine": 4, "startTokenPos": 8 }, "dim": { "attributes": { - "endFilePos": 26, + "endFilePos": 29, "endLine": 4, - "endTokenPos": 13, + "endTokenPos": 16, "kind": 10, - "startFilePos": 26, + "startFilePos": 29, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 16 }, "nodeType": "Scalar_LNumber", "value": 0 @@ -88,200 +66,200 @@ "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 24, + "endFilePos": 27, "endLine": 4, - "endTokenPos": 11, + "endTokenPos": 14, "startFilePos": 17, "startLine": 4, "startTokenPos": 8 }, "dim": { "attributes": { - "endFilePos": 23, + "endFilePos": 26, "endLine": 4, - "endTokenPos": 10, + "endTokenPos": 13, "kind": 10, - "startFilePos": 23, + "startFilePos": 26, "startLine": 4, - "startTokenPos": 10 + "startTokenPos": 13 }, "nodeType": "Scalar_LNumber", - "value": 2 + "value": 0 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 21, + "endFilePos": 24, "endLine": 4, - "endTokenPos": 8, - "kind": 2, + "endTokenPos": 11, "startFilePos": 17, "startLine": 4, "startTokenPos": 8 }, - "nodeType": "Scalar_String", - "value": "abc" + "dim": { + "attributes": { + "endFilePos": 23, + "endLine": 4, + "endTokenPos": 10, + "kind": 10, + "startFilePos": 23, + "startLine": 4, + "startTokenPos": 10 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 8, + "kind": 2, + "startFilePos": 17, + "startLine": 4, + "startTokenPos": 8 + }, + "nodeType": "Scalar_String", + "value": "abc" + } } } - } - }, - { - "attributes": { - "endFilePos": 45, - "endLine": 6, - "endTokenPos": 31, - "startFilePos": 34, - "startLine": 6, - "startTokenPos": 20 - }, - "dim": { - "attributes": { - "endFilePos": 44, - "endLine": 6, - "endTokenPos": 30, - "kind": 10, - "startFilePos": 44, - "startLine": 6, - "startTokenPos": 30 - }, - "nodeType": "Scalar_LNumber", - "value": 2 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 42, + "endFilePos": 45, "endLine": 6, - "endTokenPos": 28, - "kind": 2, + "endTokenPos": 31, "startFilePos": 34, "startLine": 6, "startTokenPos": 20 }, - "items": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 6, - "endTokenPos": 21, - "startFilePos": 35, - "startLine": 6, - "startTokenPos": 21 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "dim": { + "attributes": { + "endFilePos": 44, + "endLine": 6, + "endTokenPos": 30, + "kind": 10, + "startFilePos": 44, + "startLine": 6, + "startTokenPos": 30 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 42, + "endLine": 6, + "endTokenPos": 28, + "kind": 2, + "startFilePos": 34, + "startLine": 6, + "startTokenPos": 20 + }, + "items": [ + { "attributes": { "endFilePos": 35, "endLine": 6, "endTokenPos": 21, - "kind": 10, "startFilePos": 35, "startLine": 6, "startTokenPos": 21 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 38, - "endLine": 6, - "endTokenPos": 24, - "startFilePos": 38, - "startLine": 6, - "startTokenPos": 24 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 35, + "endLine": 6, + "endTokenPos": 21, + "kind": 10, + "startFilePos": 35, + "startLine": 6, + "startTokenPos": 21 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 38, "endLine": 6, "endTokenPos": 24, - "kind": 10, "startFilePos": 38, "startLine": 6, "startTokenPos": 24 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 41, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 41, - "startLine": 6, - "startTokenPos": 27 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 38, + "endLine": 6, + "endTokenPos": 24, + "kind": 10, + "startFilePos": 38, + "startLine": 6, + "startTokenPos": 24 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 41, "endLine": 6, "endTokenPos": 27, - "kind": 10, "startFilePos": 41, "startLine": 6, "startTokenPos": 27 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 41, + "endLine": 6, + "endTokenPos": 27, + "kind": 10, + "startFilePos": 41, + "startLine": 6, + "startTokenPos": 27 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 65, - "endLine": 7, - "endTokenPos": 51, - "startFilePos": 48, - "startLine": 7, - "startTokenPos": 34 - }, - "dim": { - "attributes": { - "endFilePos": 64, - "endLine": 7, - "endTokenPos": 50, - "kind": 10, - "startFilePos": 64, - "startLine": 7, - "startTokenPos": 50 - }, - "nodeType": "Scalar_LNumber", - "value": 0 + ], + "nodeType": "Expr_Array" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 62, + "endFilePos": 65, "endLine": 7, - "endTokenPos": 48, + "endTokenPos": 51, "startFilePos": 48, "startLine": 7, "startTokenPos": 34 }, "dim": { "attributes": { - "endFilePos": 61, + "endFilePos": 64, "endLine": 7, - "endTokenPos": 47, + "endTokenPos": 50, "kind": 10, - "startFilePos": 61, + "startFilePos": 64, "startLine": 7, - "startTokenPos": 47 + "startTokenPos": 50 }, "nodeType": "Scalar_LNumber", "value": 0 @@ -289,279 +267,279 @@ "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 59, + "endFilePos": 62, "endLine": 7, - "endTokenPos": 45, + "endTokenPos": 48, "startFilePos": 48, "startLine": 7, "startTokenPos": 34 }, "dim": { "attributes": { - "endFilePos": 58, + "endFilePos": 61, "endLine": 7, - "endTokenPos": 44, + "endTokenPos": 47, "kind": 10, - "startFilePos": 58, + "startFilePos": 61, "startLine": 7, - "startTokenPos": 44 + "startTokenPos": 47 }, "nodeType": "Scalar_LNumber", - "value": 2 + "value": 0 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 56, + "endFilePos": 59, "endLine": 7, - "endTokenPos": 42, - "kind": 2, + "endTokenPos": 45, "startFilePos": 48, "startLine": 7, "startTokenPos": 34 }, - "items": [ - { - "attributes": { - "endFilePos": 49, - "endLine": 7, - "endTokenPos": 35, - "startFilePos": 49, - "startLine": 7, - "startTokenPos": 35 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "dim": { + "attributes": { + "endFilePos": 58, + "endLine": 7, + "endTokenPos": 44, + "kind": 10, + "startFilePos": 58, + "startLine": 7, + "startTokenPos": 44 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 56, + "endLine": 7, + "endTokenPos": 42, + "kind": 2, + "startFilePos": 48, + "startLine": 7, + "startTokenPos": 34 + }, + "items": [ + { "attributes": { "endFilePos": 49, "endLine": 7, "endTokenPos": 35, - "kind": 10, "startFilePos": 49, "startLine": 7, "startTokenPos": 35 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 52, - "endLine": 7, - "endTokenPos": 38, - "startFilePos": 52, - "startLine": 7, - "startTokenPos": 38 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 49, + "endLine": 7, + "endTokenPos": 35, + "kind": 10, + "startFilePos": 49, + "startLine": 7, + "startTokenPos": 35 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 52, "endLine": 7, "endTokenPos": 38, - "kind": 10, "startFilePos": 52, "startLine": 7, "startTokenPos": 38 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 55, - "endLine": 7, - "endTokenPos": 41, - "startFilePos": 55, - "startLine": 7, - "startTokenPos": 41 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 52, + "endLine": 7, + "endTokenPos": 38, + "kind": 10, + "startFilePos": 52, + "startLine": 7, + "startTokenPos": 38 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 55, "endLine": 7, "endTokenPos": 41, - "kind": 10, "startFilePos": 55, "startLine": 7, "startTokenPos": 41 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 55, + "endLine": 7, + "endTokenPos": 41, + "kind": 10, + "startFilePos": 55, + "startLine": 7, + "startTokenPos": 41 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } } - } - }, - { - "attributes": { - "endFilePos": 85, - "endLine": 9, - "endTokenPos": 66, - "startFilePos": 69, - "startLine": 9, - "startTokenPos": 54 - }, - "dim": { - "attributes": { - "endFilePos": 84, - "endLine": 9, - "endTokenPos": 65, - "kind": 10, - "startFilePos": 84, - "startLine": 9, - "startTokenPos": 65 - }, - "nodeType": "Scalar_LNumber", - "value": 2 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 82, + "endFilePos": 85, "endLine": 9, - "endTokenPos": 63, - "kind": 1, + "endTokenPos": 66, "startFilePos": 69, "startLine": 9, "startTokenPos": 54 }, - "items": [ - { - "attributes": { - "endFilePos": 75, - "endLine": 9, - "endTokenPos": 56, - "startFilePos": 75, - "startLine": 9, - "startTokenPos": 56 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "dim": { + "attributes": { + "endFilePos": 84, + "endLine": 9, + "endTokenPos": 65, + "kind": 10, + "startFilePos": 84, + "startLine": 9, + "startTokenPos": 65 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 82, + "endLine": 9, + "endTokenPos": 63, + "kind": 1, + "startFilePos": 69, + "startLine": 9, + "startTokenPos": 54 + }, + "items": [ + { "attributes": { "endFilePos": 75, "endLine": 9, "endTokenPos": 56, - "kind": 10, "startFilePos": 75, "startLine": 9, "startTokenPos": 56 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 78, - "endLine": 9, - "endTokenPos": 59, - "startFilePos": 78, - "startLine": 9, - "startTokenPos": 59 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 75, + "endLine": 9, + "endTokenPos": 56, + "kind": 10, + "startFilePos": 75, + "startLine": 9, + "startTokenPos": 56 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 78, "endLine": 9, "endTokenPos": 59, - "kind": 10, "startFilePos": 78, "startLine": 9, "startTokenPos": 59 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 81, - "endLine": 9, - "endTokenPos": 62, - "startFilePos": 81, - "startLine": 9, - "startTokenPos": 62 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 78, + "endLine": 9, + "endTokenPos": 59, + "kind": 10, + "startFilePos": 78, + "startLine": 9, + "startTokenPos": 59 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 81, "endLine": 9, "endTokenPos": 62, - "kind": 10, "startFilePos": 81, "startLine": 9, "startTokenPos": 62 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 81, + "endLine": 9, + "endTokenPos": 62, + "kind": 10, + "startFilePos": 81, + "startLine": 9, + "startTokenPos": 62 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 110, - "endLine": 10, - "endTokenPos": 87, - "startFilePos": 88, - "startLine": 10, - "startTokenPos": 69 - }, - "dim": { - "attributes": { - "endFilePos": 109, - "endLine": 10, - "endTokenPos": 86, - "kind": 10, - "startFilePos": 109, - "startLine": 10, - "startTokenPos": 86 - }, - "nodeType": "Scalar_LNumber", - "value": 0 + ], + "nodeType": "Expr_Array" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 107, + "endFilePos": 110, "endLine": 10, - "endTokenPos": 84, + "endTokenPos": 87, "startFilePos": 88, "startLine": 10, "startTokenPos": 69 }, "dim": { "attributes": { - "endFilePos": 106, + "endFilePos": 109, "endLine": 10, - "endTokenPos": 83, + "endTokenPos": 86, "kind": 10, - "startFilePos": 106, + "startFilePos": 109, "startLine": 10, - "startTokenPos": 83 + "startTokenPos": 86 }, "nodeType": "Scalar_LNumber", "value": 0 @@ -569,155 +547,169 @@ "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 104, + "endFilePos": 107, "endLine": 10, - "endTokenPos": 81, + "endTokenPos": 84, "startFilePos": 88, "startLine": 10, "startTokenPos": 69 }, "dim": { "attributes": { - "endFilePos": 103, + "endFilePos": 106, "endLine": 10, - "endTokenPos": 80, + "endTokenPos": 83, "kind": 10, - "startFilePos": 103, + "startFilePos": 106, "startLine": 10, - "startTokenPos": 80 + "startTokenPos": 83 }, "nodeType": "Scalar_LNumber", - "value": 2 + "value": 0 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 101, + "endFilePos": 104, "endLine": 10, - "endTokenPos": 78, - "kind": 1, + "endTokenPos": 81, "startFilePos": 88, "startLine": 10, "startTokenPos": 69 }, - "items": [ - { - "attributes": { - "endFilePos": 94, - "endLine": 10, - "endTokenPos": 71, - "startFilePos": 94, - "startLine": 10, - "startTokenPos": 71 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "dim": { + "attributes": { + "endFilePos": 103, + "endLine": 10, + "endTokenPos": 80, + "kind": 10, + "startFilePos": 103, + "startLine": 10, + "startTokenPos": 80 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 101, + "endLine": 10, + "endTokenPos": 78, + "kind": 1, + "startFilePos": 88, + "startLine": 10, + "startTokenPos": 69 + }, + "items": [ + { "attributes": { "endFilePos": 94, "endLine": 10, "endTokenPos": 71, - "kind": 10, "startFilePos": 94, "startLine": 10, "startTokenPos": 71 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 97, - "endLine": 10, - "endTokenPos": 74, - "startFilePos": 97, - "startLine": 10, - "startTokenPos": 74 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 94, + "endLine": 10, + "endTokenPos": 71, + "kind": 10, + "startFilePos": 94, + "startLine": 10, + "startTokenPos": 71 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 97, "endLine": 10, "endTokenPos": 74, - "kind": 10, "startFilePos": 97, "startLine": 10, "startTokenPos": 74 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 100, - "endLine": 10, - "endTokenPos": 77, - "startFilePos": 100, - "startLine": 10, - "startTokenPos": 77 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 97, + "endLine": 10, + "endTokenPos": 74, + "kind": 10, + "startFilePos": 97, + "startLine": 10, + "startTokenPos": 74 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 100, "endLine": 10, "endTokenPos": 77, - "kind": 10, "startFilePos": 100, "startLine": 10, "startTokenPos": 77 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 100, + "endLine": 10, + "endTokenPos": 77, + "kind": 10, + "startFilePos": 100, + "startLine": 10, + "startTokenPos": 77 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } } - } - }, - { - "attributes": { - "endFilePos": 119, - "endLine": 12, - "endTokenPos": 93, - "startFilePos": 114, - "startLine": 12, - "startTokenPos": 90 - }, - "dim": { - "attributes": { - "endFilePos": 118, - "endLine": 12, - "endTokenPos": 92, - "kind": 10, - "startFilePos": 118, - "startLine": 12, - "startTokenPos": 92 - }, - "nodeType": "Scalar_LNumber", - "value": 0 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 116, + "endFilePos": 119, "endLine": 12, - "endTokenPos": 90, + "endTokenPos": 93, "startFilePos": 114, "startLine": 12, "startTokenPos": 90 }, - "name": { + "dim": { + "attributes": { + "endFilePos": 118, + "endLine": 12, + "endTokenPos": 92, + "kind": 10, + "startFilePos": 118, + "startLine": 12, + "startTokenPos": 92 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { "endFilePos": 116, "endLine": 12, @@ -726,159 +718,170 @@ "startLine": 12, "startTokenPos": 90 }, - "nodeType": "Name", - "parts": [ - "FOO" - ] - }, - "nodeType": "Expr_ConstFetch" - } - }, - { - "attributes": { - "endFilePos": 132, - "endLine": 13, - "endTokenPos": 101, - "startFilePos": 122, - "startLine": 13, - "startTokenPos": 96 - }, - "dim": { - "attributes": { - "endFilePos": 131, - "endLine": 13, - "endTokenPos": 100, - "kind": 10, - "startFilePos": 131, - "startLine": 13, - "startTokenPos": 100 - }, - "nodeType": "Scalar_LNumber", - "value": 1 + "name": { + "attributes": { + "endFilePos": 116, + "endLine": 12, + "endTokenPos": 90, + "startFilePos": 114, + "startLine": 12, + "startTokenPos": 90 + }, + "nodeType": "Name", + "parts": [ + "FOO" + ] + }, + "nodeType": "Expr_ConstFetch" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 129, + "endFilePos": 132, "endLine": 13, - "endTokenPos": 98, + "endTokenPos": 101, "startFilePos": 122, "startLine": 13, "startTokenPos": 96 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 131, + "endLine": 13, + "endTokenPos": 100, + "kind": 10, + "startFilePos": 131, + "startLine": 13, + "startTokenPos": 100 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 124, + "endFilePos": 129, "endLine": 13, - "endTokenPos": 96, + "endTokenPos": 98, "startFilePos": 122, "startLine": 13, "startTokenPos": 96 }, - "nodeType": "Name", - "parts": [ - "Foo" - ] - }, - "name": "BAR", - "nodeType": "Expr_ClassConstFetch" - } - }, - { - "attributes": { - "endFilePos": 152, - "endLine": 14, - "endTokenPos": 115, - "startFilePos": 135, - "startLine": 14, - "startTokenPos": 104 - }, - "dim": { - "attributes": { - "endFilePos": 151, - "endLine": 14, - "endTokenPos": 114, - "kind": 10, - "startFilePos": 151, - "startLine": 14, - "startTokenPos": 114 - }, - "nodeType": "Scalar_LNumber", - "value": 0 + "class": { + "attributes": { + "endFilePos": 124, + "endLine": 13, + "endTokenPos": 96, + "startFilePos": 122, + "startLine": 13, + "startTokenPos": 96 + }, + "nodeType": "Name", + "parts": [ + "Foo" + ] + }, + "name": "BAR", + "nodeType": "Expr_ClassConstFetch" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 149, + "endFilePos": 152, "endLine": 14, - "endTokenPos": 112, + "endTokenPos": 115, "startFilePos": 135, "startLine": 14, "startTokenPos": 104 }, "dim": { "attributes": { - "endFilePos": 148, + "endFilePos": 151, "endLine": 14, - "endTokenPos": 111, + "endTokenPos": 114, "kind": 10, - "startFilePos": 148, + "startFilePos": 151, "startLine": 14, - "startTokenPos": 111 + "startTokenPos": 114 }, "nodeType": "Scalar_LNumber", - "value": 1 + "value": 0 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 146, + "endFilePos": 149, "endLine": 14, - "endTokenPos": 109, + "endTokenPos": 112, "startFilePos": 135, "startLine": 14, "startTokenPos": 104 }, "dim": { "attributes": { - "endFilePos": 145, + "endFilePos": 148, "endLine": 14, - "endTokenPos": 108, + "endTokenPos": 111, "kind": 10, - "startFilePos": 145, + "startFilePos": 148, "startLine": 14, - "startTokenPos": 108 + "startTokenPos": 111 }, "nodeType": "Scalar_LNumber", - "value": 2 + "value": 1 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 143, + "endFilePos": 146, "endLine": 14, - "endTokenPos": 106, + "endTokenPos": 109, "startFilePos": 135, "startLine": 14, "startTokenPos": 104 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 145, + "endLine": 14, + "endTokenPos": 108, + "kind": 10, + "startFilePos": 145, + "startLine": 14, + "startTokenPos": 108 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 138, + "endFilePos": 143, "endLine": 14, - "endTokenPos": 104, + "endTokenPos": 106, "startFilePos": 135, "startLine": 14, "startTokenPos": 104 }, - "name": "foo", - "nodeType": "Expr_Variable" - }, - "name": "BAR", - "nodeType": "Expr_ClassConstFetch" + "class": { + "attributes": { + "endFilePos": 138, + "endLine": 14, + "endTokenPos": 104, + "startFilePos": 135, + "startLine": 14, + "startTokenPos": 104 + }, + "name": "foo", + "nodeType": "Expr_Variable" + }, + "name": "BAR", + "nodeType": "Expr_ClassConstFetch" + } } } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/constant_deref.php.uast b/fixtures/constant_deref.php.uast index 330e396..9e61b0b 100644 --- a/fixtures/constant_deref.php.uast +++ b/fixtures/constant_deref.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -58,7 +58,7 @@ File { . . . } . . } . . 1: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 17 . . . . Line: 4 @@ -74,7 +74,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 17 . . . . . . Line: 4 @@ -90,7 +90,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 17 . . . . . . . . Line: 4 @@ -180,7 +180,7 @@ File { . . . } . . } . . 2: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 34 . . . . Line: 6 @@ -196,7 +196,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List +. . . . . Roles: Expression,List,Literal . . . . . StartPosition: { . . . . . . Offset: 34 . . . . . . Line: 6 @@ -212,7 +212,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 35 . . . . . . . . Line: 6 @@ -248,7 +248,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 38 . . . . . . . . Line: 6 @@ -284,7 +284,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 41 . . . . . . . . Line: 6 @@ -341,7 +341,7 @@ File { . . . } . . } . . 3: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 48 . . . . Line: 7 @@ -357,7 +357,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 48 . . . . . . Line: 7 @@ -373,7 +373,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 48 . . . . . . . . Line: 7 @@ -389,7 +389,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 48 . . . . . . . . . . Line: 7 @@ -405,7 +405,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 49 . . . . . . . . . . . . Line: 7 @@ -441,7 +441,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 52 . . . . . . . . . . . . Line: 7 @@ -477,7 +477,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 2: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 55 . . . . . . . . . . . . Line: 7 @@ -572,7 +572,7 @@ File { . . . } . . } . . 4: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 69 . . . . Line: 9 @@ -588,7 +588,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List +. . . . . Roles: Expression,List,Literal . . . . . StartPosition: { . . . . . . Offset: 69 . . . . . . Line: 9 @@ -604,7 +604,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 75 . . . . . . . . Line: 9 @@ -640,7 +640,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 78 . . . . . . . . Line: 9 @@ -676,7 +676,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 81 . . . . . . . . Line: 9 @@ -733,7 +733,7 @@ File { . . . } . . } . . 5: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 88 . . . . Line: 10 @@ -749,7 +749,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 88 . . . . . . Line: 10 @@ -765,7 +765,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 88 . . . . . . . . Line: 10 @@ -781,7 +781,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 88 . . . . . . . . . . Line: 10 @@ -797,7 +797,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 94 . . . . . . . . . . . . Line: 10 @@ -833,7 +833,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 97 . . . . . . . . . . . . Line: 10 @@ -869,7 +869,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 2: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 100 . . . . . . . . . . . . Line: 10 @@ -964,7 +964,7 @@ File { . . . } . . } . . 6: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 114 . . . . Line: 12 @@ -980,7 +980,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ConstFetch { -. . . . . Roles: Expression,Variable,Incomplete +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 114 . . . . . . Line: 12 @@ -1034,7 +1034,7 @@ File { . . . } . . } . . 7: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 122 . . . . Line: 13 @@ -1050,8 +1050,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ClassConstFetch { -. . . . . Roles: Expression,Type,Incomplete -. . . . . TOKEN "BAR" +. . . . . Roles: Expression,Incomplete,Type . . . . . StartPosition: { . . . . . . Offset: 122 . . . . . . Line: 13 @@ -1067,7 +1066,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "BAR" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "Foo" . . . . . . . StartPosition: { . . . . . . . . Offset: 122 @@ -1105,7 +1111,7 @@ File { . . . } . . } . . 8: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 135 . . . . Line: 14 @@ -1121,7 +1127,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 135 . . . . . . Line: 14 @@ -1137,7 +1143,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 135 . . . . . . . . Line: 14 @@ -1153,8 +1159,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ClassConstFetch { -. . . . . . . . . Roles: Expression,Type,Incomplete -. . . . . . . . . TOKEN "BAR" +. . . . . . . . . Roles: Expression,Incomplete,Type . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 135 . . . . . . . . . . Line: 14 @@ -1169,9 +1174,15 @@ File { . . . . . . . . . . internalRole: var . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "BAR" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "foo" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 135 . . . . . . . . . . . . Line: 14 @@ -1185,6 +1196,15 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: class . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } diff --git a/fixtures/constant_expr.php.native b/fixtures/constant_expr.php.native index 85b50e5..1ee99cb 100644 --- a/fixtures/constant_expr.php.native +++ b/fixtures/constant_expr.php.native @@ -2,2371 +2,2363 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 3, - "endTokenPos": 13, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "consts": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 12, - "startFilePos": 13, - "startLine": 3, - "startTokenPos": 4 - }, - "name": "T_1", - "nodeType": "Const", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 3, + "endTokenPos": 13, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "consts": [ + { "attributes": { "endFilePos": 24, "endLine": 3, "endTokenPos": 12, - "startFilePos": 19, + "startFilePos": 13, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 4 }, - "left": { + "name": "T_1", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 19, + "endFilePos": 24, "endLine": 3, - "endTokenPos": 8, - "kind": 10, + "endTokenPos": 12, "startFilePos": 19, "startLine": 3, "startTokenPos": 8 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_ShiftLeft", - "right": { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 12, - "kind": 10, - "startFilePos": 24, - "startLine": 3, - "startTokenPos": 12 + "left": { + "attributes": { + "endFilePos": 19, + "endLine": 3, + "endTokenPos": 8, + "kind": 10, + "startFilePos": 19, + "startLine": 3, + "startTokenPos": 8 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_BinaryOp_ShiftLeft", + "right": { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 12, + "kind": 10, + "startFilePos": 24, + "startLine": 3, + "startTokenPos": 12 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 4, - "endTokenPos": 26, - "startFilePos": 27, - "startLine": 4, - "startTokenPos": 15 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 43, - "endLine": 4, - "endTokenPos": 25, - "startFilePos": 33, - "startLine": 4, - "startTokenPos": 17 - }, - "name": "T_2", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 44, + "endLine": 4, + "endTokenPos": 26, + "startFilePos": 27, + "startLine": 4, + "startTokenPos": 15 + }, + "consts": [ + { "attributes": { "endFilePos": 43, "endLine": 4, "endTokenPos": 25, - "startFilePos": 39, + "startFilePos": 33, "startLine": 4, - "startTokenPos": 21 + "startTokenPos": 17 }, - "left": { + "name": "T_2", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 39, + "endFilePos": 43, "endLine": 4, - "endTokenPos": 21, - "kind": 10, + "endTokenPos": 25, "startFilePos": 39, "startLine": 4, "startTokenPos": 21 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_Div", - "right": { - "attributes": { - "endFilePos": 43, - "endLine": 4, - "endTokenPos": 25, - "kind": 10, - "startFilePos": 43, - "startLine": 4, - "startTokenPos": 25 + "left": { + "attributes": { + "endFilePos": 39, + "endLine": 4, + "endTokenPos": 21, + "kind": 10, + "startFilePos": 39, + "startLine": 4, + "startTokenPos": 21 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 2 + "nodeType": "Expr_BinaryOp_Div", + "right": { + "attributes": { + "endFilePos": 43, + "endLine": 4, + "endTokenPos": 25, + "kind": 10, + "startFilePos": 43, + "startLine": 4, + "startTokenPos": 25 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 67, - "endLine": 5, - "endTokenPos": 39, - "startFilePos": 46, - "startLine": 5, - "startTokenPos": 28 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 66, - "endLine": 5, - "endTokenPos": 38, - "startFilePos": 52, - "startLine": 5, - "startTokenPos": 30 - }, - "name": "T_3", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 67, + "endLine": 5, + "endTokenPos": 39, + "startFilePos": 46, + "startLine": 5, + "startTokenPos": 28 + }, + "consts": [ + { "attributes": { "endFilePos": 66, "endLine": 5, "endTokenPos": 38, - "startFilePos": 58, + "startFilePos": 52, "startLine": 5, - "startTokenPos": 34 + "startTokenPos": 30 }, - "left": { + "name": "T_3", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 60, + "endFilePos": 66, "endLine": 5, - "endTokenPos": 34, + "endTokenPos": 38, "startFilePos": 58, "startLine": 5, "startTokenPos": 34 }, - "nodeType": "Scalar_DNumber", - "value": 1.5 - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 66, - "endLine": 5, - "endTokenPos": 38, - "startFilePos": 64, - "startLine": 5, - "startTokenPos": 38 + "left": { + "attributes": { + "endFilePos": 60, + "endLine": 5, + "endTokenPos": 34, + "startFilePos": 58, + "startLine": 5, + "startTokenPos": 34 + }, + "nodeType": "Scalar_DNumber", + "value": 1.5 }, - "nodeType": "Scalar_DNumber", - "value": 1.5 + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 66, + "endLine": 5, + "endTokenPos": 38, + "startFilePos": 64, + "startLine": 5, + "startTokenPos": 38 + }, + "nodeType": "Scalar_DNumber", + "value": 1.5 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 94, - "endLine": 6, - "endTokenPos": 52, - "startFilePos": 69, - "startLine": 6, - "startTokenPos": 41 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 93, - "endLine": 6, - "endTokenPos": 51, - "startFilePos": 75, - "startLine": 6, - "startTokenPos": 43 - }, - "name": "T_4", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 94, + "endLine": 6, + "endTokenPos": 52, + "startFilePos": 69, + "startLine": 6, + "startTokenPos": 41 + }, + "consts": [ + { "attributes": { "endFilePos": 93, "endLine": 6, "endTokenPos": 51, - "startFilePos": 81, + "startFilePos": 75, "startLine": 6, - "startTokenPos": 47 + "startTokenPos": 43 }, - "left": { + "name": "T_4", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 85, + "endFilePos": 93, "endLine": 6, - "endTokenPos": 47, - "kind": 2, + "endTokenPos": 51, "startFilePos": 81, "startLine": 6, "startTokenPos": 47 }, - "nodeType": "Scalar_String", - "value": "foo" - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 93, - "endLine": 6, - "endTokenPos": 51, - "kind": 2, - "startFilePos": 89, - "startLine": 6, - "startTokenPos": 51 + "left": { + "attributes": { + "endFilePos": 85, + "endLine": 6, + "endTokenPos": 47, + "kind": 2, + "startFilePos": 81, + "startLine": 6, + "startTokenPos": 47 + }, + "nodeType": "Scalar_String", + "value": "foo" }, - "nodeType": "Scalar_String", - "value": "bar" + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 93, + "endLine": 6, + "endTokenPos": 51, + "kind": 2, + "startFilePos": 89, + "startLine": 6, + "startTokenPos": 51 + }, + "nodeType": "Scalar_String", + "value": "bar" + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 123, - "endLine": 7, - "endTokenPos": 71, - "startFilePos": 96, - "startLine": 7, - "startTokenPos": 54 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 122, - "endLine": 7, - "endTokenPos": 70, - "startFilePos": 102, - "startLine": 7, - "startTokenPos": 56 - }, - "name": "T_5", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 123, + "endLine": 7, + "endTokenPos": 71, + "startFilePos": 96, + "startLine": 7, + "startTokenPos": 54 + }, + "consts": [ + { "attributes": { "endFilePos": 122, "endLine": 7, "endTokenPos": 70, - "startFilePos": 108, + "startFilePos": 102, "startLine": 7, - "startTokenPos": 60 + "startTokenPos": 56 }, - "left": { + "name": "T_5", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 117, + "endFilePos": 122, "endLine": 7, - "endTokenPos": 65, - "startFilePos": 109, + "endTokenPos": 70, + "startFilePos": 108, "startLine": 7, - "startTokenPos": 61 + "startTokenPos": 60 }, "left": { "attributes": { - "endFilePos": 111, + "endFilePos": 117, "endLine": 7, - "endTokenPos": 61, + "endTokenPos": 65, "startFilePos": 109, "startLine": 7, "startTokenPos": 61 }, - "nodeType": "Scalar_DNumber", - "value": 1.5 + "left": { + "attributes": { + "endFilePos": 111, + "endLine": 7, + "endTokenPos": 61, + "startFilePos": 109, + "startLine": 7, + "startTokenPos": 61 + }, + "nodeType": "Scalar_DNumber", + "value": 1.5 + }, + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 117, + "endLine": 7, + "endTokenPos": 65, + "startFilePos": 115, + "startLine": 7, + "startTokenPos": 65 + }, + "nodeType": "Scalar_DNumber", + "value": 1.5 + } }, - "nodeType": "Expr_BinaryOp_Plus", + "nodeType": "Expr_BinaryOp_Mul", "right": { "attributes": { - "endFilePos": 117, + "endFilePos": 122, "endLine": 7, - "endTokenPos": 65, - "startFilePos": 115, + "endTokenPos": 70, + "kind": 10, + "startFilePos": 122, "startLine": 7, - "startTokenPos": 65 + "startTokenPos": 70 }, - "nodeType": "Scalar_DNumber", - "value": 1.5 + "nodeType": "Scalar_LNumber", + "value": 2 } - }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { - "attributes": { - "endFilePos": 122, - "endLine": 7, - "endTokenPos": 70, - "kind": 10, - "startFilePos": 122, - "startLine": 7, - "startTokenPos": 70 - }, - "nodeType": "Scalar_LNumber", - "value": 2 } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 156, - "endLine": 8, - "endTokenPos": 92, - "startFilePos": 125, - "startLine": 8, - "startTokenPos": 73 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 155, - "endLine": 8, - "endTokenPos": 91, - "startFilePos": 131, - "startLine": 8, - "startTokenPos": 75 - }, - "name": "T_6", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 156, + "endLine": 8, + "endTokenPos": 92, + "startFilePos": 125, + "startLine": 8, + "startTokenPos": 73 + }, + "consts": [ + { "attributes": { "endFilePos": 155, "endLine": 8, "endTokenPos": 91, - "startFilePos": 137, + "startFilePos": 131, "startLine": 8, - "startTokenPos": 79 + "startTokenPos": 75 }, - "left": { + "name": "T_6", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 149, + "endFilePos": 155, "endLine": 8, - "endTokenPos": 87, + "endTokenPos": 91, "startFilePos": 137, "startLine": 8, "startTokenPos": 79 }, "left": { "attributes": { - "endFilePos": 145, + "endFilePos": 149, "endLine": 8, - "endTokenPos": 83, + "endTokenPos": 87, "startFilePos": 137, "startLine": 8, "startTokenPos": 79 }, "left": { "attributes": { - "endFilePos": 141, + "endFilePos": 145, "endLine": 8, - "endTokenPos": 79, - "kind": 2, + "endTokenPos": 83, "startFilePos": 137, "startLine": 8, "startTokenPos": 79 }, - "nodeType": "Scalar_String", - "value": "foo" + "left": { + "attributes": { + "endFilePos": 141, + "endLine": 8, + "endTokenPos": 79, + "kind": 2, + "startFilePos": 137, + "startLine": 8, + "startTokenPos": 79 + }, + "nodeType": "Scalar_String", + "value": "foo" + }, + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 145, + "endLine": 8, + "endTokenPos": 83, + "kind": 10, + "startFilePos": 145, + "startLine": 8, + "startTokenPos": 83 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, "nodeType": "Expr_BinaryOp_Concat", "right": { "attributes": { - "endFilePos": 145, + "endFilePos": 149, "endLine": 8, - "endTokenPos": 83, + "endTokenPos": 87, "kind": 10, - "startFilePos": 145, + "startFilePos": 149, "startLine": 8, - "startTokenPos": 83 + "startTokenPos": 87 }, "nodeType": "Scalar_LNumber", - "value": 2 + "value": 3 } }, "nodeType": "Expr_BinaryOp_Concat", "right": { "attributes": { - "endFilePos": 149, + "endFilePos": 155, "endLine": 8, - "endTokenPos": 87, - "kind": 10, - "startFilePos": 149, + "endTokenPos": 91, + "startFilePos": 153, "startLine": 8, - "startTokenPos": 87 + "startTokenPos": 91 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "nodeType": "Scalar_DNumber", + "value": 4 } - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 155, - "endLine": 8, - "endTokenPos": 91, - "startFilePos": 153, - "startLine": 8, - "startTokenPos": 91 - }, - "nodeType": "Scalar_DNumber", - "value": 4 } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 178, - "endLine": 9, - "endTokenPos": 101, - "startFilePos": 158, - "startLine": 9, - "startTokenPos": 94 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 177, - "endLine": 9, - "endTokenPos": 100, - "startFilePos": 164, - "startLine": 9, - "startTokenPos": 96 - }, - "name": "T_7", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 178, + "endLine": 9, + "endTokenPos": 101, + "startFilePos": 158, + "startLine": 9, + "startTokenPos": 94 + }, + "consts": [ + { "attributes": { "endFilePos": 177, "endLine": 9, "endTokenPos": 100, - "startFilePos": 170, + "startFilePos": 164, "startLine": 9, - "startTokenPos": 100 + "startTokenPos": 96 }, - "nodeType": "Scalar_MagicConst_Line" + "name": "T_7", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 177, + "endLine": 9, + "endTokenPos": 100, + "startFilePos": 170, + "startLine": 9, + "startTokenPos": 100 + }, + "nodeType": "Scalar_MagicConst_Line" + } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 240, - "endLine": 12, - "endTokenPos": 112, - "startFilePos": 180, - "startLine": 10, - "startTokenPos": 103 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 239, - "endLine": 12, - "endTokenPos": 111, - "startFilePos": 186, - "startLine": 10, - "startTokenPos": 105 - }, - "name": "T_8", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 240, + "endLine": 12, + "endTokenPos": 112, + "startFilePos": 180, + "startLine": 10, + "startTokenPos": 103 + }, + "consts": [ + { "attributes": { - "docLabel": "ENDOFSTRING", "endFilePos": 239, "endLine": 12, "endTokenPos": 111, - "kind": 3, - "startFilePos": 192, + "startFilePos": 186, "startLine": 10, - "startTokenPos": 109 + "startTokenPos": 105 }, - "nodeType": "Scalar_String", - "value": "This is a test string" + "name": "T_8", + "nodeType": "Const", + "value": { + "attributes": { + "docLabel": "ENDOFSTRING", + "endFilePos": 239, + "endLine": 12, + "endTokenPos": 111, + "kind": 3, + "startFilePos": 192, + "startLine": 10, + "startTokenPos": 109 + }, + "nodeType": "Scalar_String", + "value": "This is a test string" + } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 257, - "endLine": 13, - "endTokenPos": 123, - "startFilePos": 242, - "startLine": 13, - "startTokenPos": 114 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 256, - "endLine": 13, - "endTokenPos": 122, - "startFilePos": 248, - "startLine": 13, - "startTokenPos": 116 - }, - "name": "T_9", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 257, + "endLine": 13, + "endTokenPos": 123, + "startFilePos": 242, + "startLine": 13, + "startTokenPos": 114 + }, + "consts": [ + { "attributes": { "endFilePos": 256, "endLine": 13, "endTokenPos": 122, - "startFilePos": 254, + "startFilePos": 248, "startLine": 13, - "startTokenPos": 120 + "startTokenPos": 116 }, - "expr": { + "name": "T_9", + "nodeType": "Const", + "value": { "attributes": { "endFilePos": 256, "endLine": 13, "endTokenPos": 122, - "startFilePos": 255, + "startFilePos": 254, "startLine": 13, - "startTokenPos": 121 + "startTokenPos": 120 }, "expr": { "attributes": { "endFilePos": 256, "endLine": 13, "endTokenPos": 122, - "kind": 10, - "startFilePos": 256, + "startFilePos": 255, "startLine": 13, - "startTokenPos": 122 + "startTokenPos": 121 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "expr": { + "attributes": { + "endFilePos": 256, + "endLine": 13, + "endTokenPos": 122, + "kind": 10, + "startFilePos": 256, + "startLine": 13, + "startTokenPos": 122 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_UnaryMinus" }, - "nodeType": "Expr_UnaryMinus" - }, - "nodeType": "Expr_BitwiseNot" + "nodeType": "Expr_BitwiseNot" + } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 289, - "endLine": 14, - "endTokenPos": 148, - "startFilePos": 259, - "startLine": 14, - "startTokenPos": 125 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 288, - "endLine": 14, - "endTokenPos": 147, - "startFilePos": 265, - "startLine": 14, - "startTokenPos": 127 - }, - "name": "T_10", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 289, + "endLine": 14, + "endTokenPos": 148, + "startFilePos": 259, + "startLine": 14, + "startTokenPos": 125 + }, + "consts": [ + { "attributes": { "endFilePos": 288, "endLine": 14, "endTokenPos": 147, - "startFilePos": 272, + "startFilePos": 265, "startLine": 14, - "startTokenPos": 131 + "startTokenPos": 127 }, - "left": { + "name": "T_10", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 277, + "endFilePos": 288, "endLine": 14, - "endTokenPos": 136, - "startFilePos": 273, + "endTokenPos": 147, + "startFilePos": 272, "startLine": 14, - "startTokenPos": 132 + "startTokenPos": 131 }, - "cond": { + "left": { "attributes": { - "endFilePos": 274, + "endFilePos": 277, "endLine": 14, - "endTokenPos": 133, + "endTokenPos": 136, "startFilePos": 273, "startLine": 14, "startTokenPos": 132 }, - "expr": { + "cond": { "attributes": { "endFilePos": 274, "endLine": 14, "endTokenPos": 133, + "startFilePos": 273, + "startLine": 14, + "startTokenPos": 132 + }, + "expr": { + "attributes": { + "endFilePos": 274, + "endLine": 14, + "endTokenPos": 133, + "kind": 10, + "startFilePos": 274, + "startLine": 14, + "startTokenPos": 133 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_UnaryMinus" + }, + "else": { + "attributes": { + "endFilePos": 277, + "endLine": 14, + "endTokenPos": 136, "kind": 10, - "startFilePos": 274, + "startFilePos": 277, "startLine": 14, - "startTokenPos": 133 + "startTokenPos": 136 }, "nodeType": "Scalar_LNumber", "value": 1 }, - "nodeType": "Expr_UnaryMinus" - }, - "else": { - "attributes": { - "endFilePos": 277, - "endLine": 14, - "endTokenPos": 136, - "kind": 10, - "startFilePos": 277, - "startLine": 14, - "startTokenPos": 136 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "if": null, - "nodeType": "Expr_Ternary" - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 287, - "endLine": 14, - "endTokenPos": 146, - "startFilePos": 283, - "startLine": 14, - "startTokenPos": 142 + "if": null, + "nodeType": "Expr_Ternary" }, - "cond": { + "nodeType": "Expr_BinaryOp_Plus", + "right": { "attributes": { - "endFilePos": 283, + "endFilePos": 287, "endLine": 14, - "endTokenPos": 142, - "kind": 10, + "endTokenPos": 146, "startFilePos": 283, "startLine": 14, "startTokenPos": 142 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "else": { - "attributes": { - "endFilePos": 287, - "endLine": 14, - "endTokenPos": 146, - "kind": 10, - "startFilePos": 287, - "startLine": 14, - "startTokenPos": 146 + "cond": { + "attributes": { + "endFilePos": 283, + "endLine": 14, + "endTokenPos": 142, + "kind": 10, + "startFilePos": 283, + "startLine": 14, + "startTokenPos": 142 + }, + "nodeType": "Scalar_LNumber", + "value": 0 }, - "nodeType": "Scalar_LNumber", - "value": 3 - }, - "if": { - "attributes": { - "endFilePos": 285, - "endLine": 14, - "endTokenPos": 144, - "kind": 10, - "startFilePos": 285, - "startLine": 14, - "startTokenPos": 144 + "else": { + "attributes": { + "endFilePos": 287, + "endLine": 14, + "endTokenPos": 146, + "kind": 10, + "startFilePos": 287, + "startLine": 14, + "startTokenPos": 146 + }, + "nodeType": "Scalar_LNumber", + "value": 3 }, - "nodeType": "Scalar_LNumber", - "value": 2 - }, - "nodeType": "Expr_Ternary" + "if": { + "attributes": { + "endFilePos": 285, + "endLine": 14, + "endTokenPos": 144, + "kind": 10, + "startFilePos": 285, + "startLine": 14, + "startTokenPos": 144 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_Ternary" + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 310, - "endLine": 15, - "endTokenPos": 161, - "startFilePos": 291, - "startLine": 15, - "startTokenPos": 150 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 309, - "endLine": 15, - "endTokenPos": 160, - "startFilePos": 297, - "startLine": 15, - "startTokenPos": 152 - }, - "name": "T_11", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 310, + "endLine": 15, + "endTokenPos": 161, + "startFilePos": 291, + "startLine": 15, + "startTokenPos": 150 + }, + "consts": [ + { "attributes": { "endFilePos": 309, "endLine": 15, "endTokenPos": 160, - "startFilePos": 304, + "startFilePos": 297, "startLine": 15, - "startTokenPos": 156 - }, - "left": { - "attributes": { - "endFilePos": 304, - "endLine": 15, - "endTokenPos": 156, - "kind": 10, - "startFilePos": 304, - "startLine": 15, - "startTokenPos": 156 - }, - "nodeType": "Scalar_LNumber", - "value": 1 + "startTokenPos": 152 }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { + "name": "T_11", + "nodeType": "Const", + "value": { "attributes": { "endFilePos": 309, "endLine": 15, "endTokenPos": 160, - "kind": 10, - "startFilePos": 309, + "startFilePos": 304, "startLine": 15, - "startTokenPos": 160 + "startTokenPos": 156 }, - "nodeType": "Scalar_LNumber", - "value": 0 - } - } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 332, - "endLine": 16, - "endTokenPos": 174, - "startFilePos": 312, - "startLine": 16, - "startTokenPos": 163 - }, - "consts": [ - { - "attributes": { - "endFilePos": 331, - "endLine": 16, - "endTokenPos": 173, - "startFilePos": 318, - "startLine": 16, - "startTokenPos": 165 - }, - "name": "T_12", - "nodeType": "Const", - "value": { + "left": { + "attributes": { + "endFilePos": 304, + "endLine": 15, + "endTokenPos": 156, + "kind": 10, + "startFilePos": 304, + "startLine": 15, + "startTokenPos": 156 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 309, + "endLine": 15, + "endTokenPos": 160, + "kind": 10, + "startFilePos": 309, + "startLine": 15, + "startTokenPos": 160 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } + } + } + ], + "nodeType": "Stmt_Const" + }, + { + "attributes": { + "endFilePos": 332, + "endLine": 16, + "endTokenPos": 174, + "startFilePos": 312, + "startLine": 16, + "startTokenPos": 163 + }, + "consts": [ + { "attributes": { "endFilePos": 331, "endLine": 16, "endTokenPos": 173, - "startFilePos": 325, + "startFilePos": 318, "startLine": 16, - "startTokenPos": 169 + "startTokenPos": 165 }, - "left": { + "name": "T_12", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 325, + "endFilePos": 331, "endLine": 16, - "endTokenPos": 169, - "kind": 10, + "endTokenPos": 173, "startFilePos": 325, "startLine": 16, "startTokenPos": 169 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_LogicalAnd", - "right": { - "attributes": { - "endFilePos": 331, - "endLine": 16, - "endTokenPos": 173, - "kind": 10, - "startFilePos": 331, - "startLine": 16, - "startTokenPos": 173 + "left": { + "attributes": { + "endFilePos": 325, + "endLine": 16, + "endTokenPos": 169, + "kind": 10, + "startFilePos": 325, + "startLine": 16, + "startTokenPos": 169 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_BinaryOp_LogicalAnd", + "right": { + "attributes": { + "endFilePos": 331, + "endLine": 16, + "endTokenPos": 173, + "kind": 10, + "startFilePos": 331, + "startLine": 16, + "startTokenPos": 173 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 353, - "endLine": 17, - "endTokenPos": 187, - "startFilePos": 334, - "startLine": 17, - "startTokenPos": 176 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 352, - "endLine": 17, - "endTokenPos": 186, - "startFilePos": 340, - "startLine": 17, - "startTokenPos": 178 - }, - "name": "T_13", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 353, + "endLine": 17, + "endTokenPos": 187, + "startFilePos": 334, + "startLine": 17, + "startTokenPos": 176 + }, + "consts": [ + { "attributes": { "endFilePos": 352, "endLine": 17, "endTokenPos": 186, - "startFilePos": 347, + "startFilePos": 340, "startLine": 17, - "startTokenPos": 182 + "startTokenPos": 178 }, - "left": { + "name": "T_13", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 347, + "endFilePos": 352, "endLine": 17, - "endTokenPos": 182, - "kind": 10, + "endTokenPos": 186, "startFilePos": 347, "startLine": 17, "startTokenPos": 182 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_BinaryOp_BooleanOr", - "right": { - "attributes": { - "endFilePos": 352, - "endLine": 17, - "endTokenPos": 186, - "kind": 10, - "startFilePos": 352, - "startLine": 17, - "startTokenPos": 186 + "left": { + "attributes": { + "endFilePos": 347, + "endLine": 17, + "endTokenPos": 182, + "kind": 10, + "startFilePos": 347, + "startLine": 17, + "startTokenPos": 182 + }, + "nodeType": "Scalar_LNumber", + "value": 0 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_BooleanOr", + "right": { + "attributes": { + "endFilePos": 352, + "endLine": 17, + "endTokenPos": 186, + "kind": 10, + "startFilePos": 352, + "startLine": 17, + "startTokenPos": 186 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 374, - "endLine": 18, - "endTokenPos": 200, - "startFilePos": 355, - "startLine": 18, - "startTokenPos": 189 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 373, - "endLine": 18, - "endTokenPos": 199, - "startFilePos": 361, - "startLine": 18, - "startTokenPos": 191 - }, - "name": "T_14", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 374, + "endLine": 18, + "endTokenPos": 200, + "startFilePos": 355, + "startLine": 18, + "startTokenPos": 189 + }, + "consts": [ + { "attributes": { "endFilePos": 373, "endLine": 18, "endTokenPos": 199, - "startFilePos": 368, + "startFilePos": 361, "startLine": 18, - "startTokenPos": 195 + "startTokenPos": 191 }, - "left": { + "name": "T_14", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 368, + "endFilePos": 373, "endLine": 18, - "endTokenPos": 195, - "kind": 10, + "endTokenPos": 199, "startFilePos": 368, "startLine": 18, "startTokenPos": 195 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_LogicalOr", - "right": { - "attributes": { - "endFilePos": 373, - "endLine": 18, - "endTokenPos": 199, - "kind": 10, - "startFilePos": 373, - "startLine": 18, - "startTokenPos": 199 + "left": { + "attributes": { + "endFilePos": 368, + "endLine": 18, + "endTokenPos": 195, + "kind": 10, + "startFilePos": 368, + "startLine": 18, + "startTokenPos": 195 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_LogicalOr", + "right": { + "attributes": { + "endFilePos": 373, + "endLine": 18, + "endTokenPos": 199, + "kind": 10, + "startFilePos": 373, + "startLine": 18, + "startTokenPos": 199 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 396, - "endLine": 19, - "endTokenPos": 213, - "startFilePos": 376, - "startLine": 19, - "startTokenPos": 202 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 395, - "endLine": 19, - "endTokenPos": 212, - "startFilePos": 382, - "startLine": 19, - "startTokenPos": 204 - }, - "name": "T_15", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 396, + "endLine": 19, + "endTokenPos": 213, + "startFilePos": 376, + "startLine": 19, + "startTokenPos": 202 + }, + "consts": [ + { "attributes": { "endFilePos": 395, "endLine": 19, "endTokenPos": 212, - "startFilePos": 389, + "startFilePos": 382, "startLine": 19, - "startTokenPos": 208 + "startTokenPos": 204 }, - "left": { + "name": "T_15", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 389, + "endFilePos": 395, "endLine": 19, - "endTokenPos": 208, - "kind": 10, + "endTokenPos": 212, "startFilePos": 389, "startLine": 19, "startTokenPos": 208 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_LogicalXor", - "right": { - "attributes": { - "endFilePos": 395, - "endLine": 19, - "endTokenPos": 212, - "kind": 10, - "startFilePos": 395, - "startLine": 19, - "startTokenPos": 212 + "left": { + "attributes": { + "endFilePos": 389, + "endLine": 19, + "endTokenPos": 208, + "kind": 10, + "startFilePos": 389, + "startLine": 19, + "startTokenPos": 208 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_BinaryOp_LogicalXor", + "right": { + "attributes": { + "endFilePos": 395, + "endLine": 19, + "endTokenPos": 212, + "kind": 10, + "startFilePos": 395, + "startLine": 19, + "startTokenPos": 212 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 418, - "endLine": 20, - "endTokenPos": 226, - "startFilePos": 398, - "startLine": 20, - "startTokenPos": 215 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 417, - "endLine": 20, - "endTokenPos": 225, - "startFilePos": 404, - "startLine": 20, - "startTokenPos": 217 - }, - "name": "T_16", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 418, + "endLine": 20, + "endTokenPos": 226, + "startFilePos": 398, + "startLine": 20, + "startTokenPos": 215 + }, + "consts": [ + { "attributes": { "endFilePos": 417, "endLine": 20, "endTokenPos": 225, - "startFilePos": 411, + "startFilePos": 404, "startLine": 20, - "startTokenPos": 221 + "startTokenPos": 217 }, - "left": { + "name": "T_16", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 411, + "endFilePos": 417, "endLine": 20, - "endTokenPos": 221, - "kind": 10, + "endTokenPos": 225, "startFilePos": 411, "startLine": 20, "startTokenPos": 221 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_LogicalXor", - "right": { - "attributes": { - "endFilePos": 417, - "endLine": 20, - "endTokenPos": 225, - "kind": 10, - "startFilePos": 417, - "startLine": 20, - "startTokenPos": 225 + "left": { + "attributes": { + "endFilePos": 411, + "endLine": 20, + "endTokenPos": 221, + "kind": 10, + "startFilePos": 411, + "startLine": 20, + "startTokenPos": 221 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_LogicalXor", + "right": { + "attributes": { + "endFilePos": 417, + "endLine": 20, + "endTokenPos": 225, + "kind": 10, + "startFilePos": 417, + "startLine": 20, + "startTokenPos": 225 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 438, - "endLine": 21, - "endTokenPos": 239, - "startFilePos": 420, - "startLine": 21, - "startTokenPos": 228 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 437, - "endLine": 21, - "endTokenPos": 238, - "startFilePos": 426, - "startLine": 21, - "startTokenPos": 230 - }, - "name": "T_17", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 438, + "endLine": 21, + "endTokenPos": 239, + "startFilePos": 420, + "startLine": 21, + "startTokenPos": 228 + }, + "consts": [ + { "attributes": { "endFilePos": 437, "endLine": 21, "endTokenPos": 238, - "startFilePos": 433, + "startFilePos": 426, "startLine": 21, - "startTokenPos": 234 + "startTokenPos": 230 }, - "left": { + "name": "T_17", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 433, + "endFilePos": 437, "endLine": 21, - "endTokenPos": 234, - "kind": 10, + "endTokenPos": 238, "startFilePos": 433, "startLine": 21, "startTokenPos": 234 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_Smaller", - "right": { - "attributes": { - "endFilePos": 437, - "endLine": 21, - "endTokenPos": 238, - "kind": 10, - "startFilePos": 437, - "startLine": 21, - "startTokenPos": 238 + "left": { + "attributes": { + "endFilePos": 433, + "endLine": 21, + "endTokenPos": 234, + "kind": 10, + "startFilePos": 433, + "startLine": 21, + "startTokenPos": 234 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_Smaller", + "right": { + "attributes": { + "endFilePos": 437, + "endLine": 21, + "endTokenPos": 238, + "kind": 10, + "startFilePos": 437, + "startLine": 21, + "startTokenPos": 238 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 459, - "endLine": 22, - "endTokenPos": 252, - "startFilePos": 440, - "startLine": 22, - "startTokenPos": 241 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 458, - "endLine": 22, - "endTokenPos": 251, - "startFilePos": 446, - "startLine": 22, - "startTokenPos": 243 - }, - "name": "T_18", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 459, + "endLine": 22, + "endTokenPos": 252, + "startFilePos": 440, + "startLine": 22, + "startTokenPos": 241 + }, + "consts": [ + { "attributes": { "endFilePos": 458, "endLine": 22, "endTokenPos": 251, - "startFilePos": 453, + "startFilePos": 446, "startLine": 22, - "startTokenPos": 247 + "startTokenPos": 243 }, - "left": { + "name": "T_18", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 453, + "endFilePos": 458, "endLine": 22, - "endTokenPos": 247, - "kind": 10, + "endTokenPos": 251, "startFilePos": 453, "startLine": 22, "startTokenPos": 247 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_BinaryOp_SmallerOrEqual", - "right": { - "attributes": { - "endFilePos": 458, - "endLine": 22, - "endTokenPos": 251, - "kind": 10, - "startFilePos": 458, - "startLine": 22, - "startTokenPos": 251 + "left": { + "attributes": { + "endFilePos": 453, + "endLine": 22, + "endTokenPos": 247, + "kind": 10, + "startFilePos": 453, + "startLine": 22, + "startTokenPos": 247 + }, + "nodeType": "Scalar_LNumber", + "value": 0 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_SmallerOrEqual", + "right": { + "attributes": { + "endFilePos": 458, + "endLine": 22, + "endTokenPos": 251, + "kind": 10, + "startFilePos": 458, + "startLine": 22, + "startTokenPos": 251 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 479, - "endLine": 23, - "endTokenPos": 265, - "startFilePos": 461, - "startLine": 23, - "startTokenPos": 254 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 478, - "endLine": 23, - "endTokenPos": 264, - "startFilePos": 467, - "startLine": 23, - "startTokenPos": 256 - }, - "name": "T_19", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 479, + "endLine": 23, + "endTokenPos": 265, + "startFilePos": 461, + "startLine": 23, + "startTokenPos": 254 + }, + "consts": [ + { "attributes": { "endFilePos": 478, "endLine": 23, "endTokenPos": 264, - "startFilePos": 474, + "startFilePos": 467, "startLine": 23, - "startTokenPos": 260 + "startTokenPos": 256 }, - "left": { + "name": "T_19", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 474, + "endFilePos": 478, "endLine": 23, - "endTokenPos": 260, - "kind": 10, + "endTokenPos": 264, "startFilePos": 474, "startLine": 23, "startTokenPos": 260 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_Greater", - "right": { - "attributes": { - "endFilePos": 478, - "endLine": 23, - "endTokenPos": 264, - "kind": 10, - "startFilePos": 478, - "startLine": 23, - "startTokenPos": 264 + "left": { + "attributes": { + "endFilePos": 474, + "endLine": 23, + "endTokenPos": 260, + "kind": 10, + "startFilePos": 474, + "startLine": 23, + "startTokenPos": 260 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_Greater", + "right": { + "attributes": { + "endFilePos": 478, + "endLine": 23, + "endTokenPos": 264, + "kind": 10, + "startFilePos": 478, + "startLine": 23, + "startTokenPos": 264 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 500, - "endLine": 24, - "endTokenPos": 278, - "startFilePos": 481, - "startLine": 24, - "startTokenPos": 267 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 499, - "endLine": 24, - "endTokenPos": 277, - "startFilePos": 487, - "startLine": 24, - "startTokenPos": 269 - }, - "name": "T_20", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 500, + "endLine": 24, + "endTokenPos": 278, + "startFilePos": 481, + "startLine": 24, + "startTokenPos": 267 + }, + "consts": [ + { "attributes": { "endFilePos": 499, "endLine": 24, "endTokenPos": 277, - "startFilePos": 494, + "startFilePos": 487, "startLine": 24, - "startTokenPos": 273 + "startTokenPos": 269 }, - "left": { + "name": "T_20", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 494, + "endFilePos": 499, "endLine": 24, - "endTokenPos": 273, - "kind": 10, + "endTokenPos": 277, "startFilePos": 494, "startLine": 24, "startTokenPos": 273 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_GreaterOrEqual", - "right": { - "attributes": { - "endFilePos": 499, - "endLine": 24, - "endTokenPos": 277, - "kind": 10, - "startFilePos": 499, - "startLine": 24, - "startTokenPos": 277 + "left": { + "attributes": { + "endFilePos": 494, + "endLine": 24, + "endTokenPos": 273, + "kind": 10, + "startFilePos": 494, + "startLine": 24, + "startTokenPos": 273 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "nodeType": "Expr_BinaryOp_GreaterOrEqual", + "right": { + "attributes": { + "endFilePos": 499, + "endLine": 24, + "endTokenPos": 277, + "kind": 10, + "startFilePos": 499, + "startLine": 24, + "startTokenPos": 277 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 522, - "endLine": 25, - "endTokenPos": 291, - "startFilePos": 502, - "startLine": 25, - "startTokenPos": 280 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 521, - "endLine": 25, - "endTokenPos": 290, - "startFilePos": 508, - "startLine": 25, - "startTokenPos": 282 - }, - "name": "T_21", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 522, + "endLine": 25, + "endTokenPos": 291, + "startFilePos": 502, + "startLine": 25, + "startTokenPos": 280 + }, + "consts": [ + { "attributes": { "endFilePos": 521, "endLine": 25, "endTokenPos": 290, - "startFilePos": 515, + "startFilePos": 508, "startLine": 25, - "startTokenPos": 286 + "startTokenPos": 282 }, - "left": { + "name": "T_21", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 515, + "endFilePos": 521, "endLine": 25, - "endTokenPos": 286, - "kind": 10, + "endTokenPos": 290, "startFilePos": 515, "startLine": 25, "startTokenPos": 286 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_Identical", - "right": { - "attributes": { - "endFilePos": 521, - "endLine": 25, - "endTokenPos": 290, - "kind": 10, - "startFilePos": 521, - "startLine": 25, - "startTokenPos": 290 + "left": { + "attributes": { + "endFilePos": 515, + "endLine": 25, + "endTokenPos": 286, + "kind": 10, + "startFilePos": 515, + "startLine": 25, + "startTokenPos": 286 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_BinaryOp_Identical", + "right": { + "attributes": { + "endFilePos": 521, + "endLine": 25, + "endTokenPos": 290, + "kind": 10, + "startFilePos": 521, + "startLine": 25, + "startTokenPos": 290 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 544, - "endLine": 26, - "endTokenPos": 304, - "startFilePos": 524, - "startLine": 26, - "startTokenPos": 293 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 543, - "endLine": 26, - "endTokenPos": 303, - "startFilePos": 530, - "startLine": 26, - "startTokenPos": 295 - }, - "name": "T_22", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 544, + "endLine": 26, + "endTokenPos": 304, + "startFilePos": 524, + "startLine": 26, + "startTokenPos": 293 + }, + "consts": [ + { "attributes": { "endFilePos": 543, "endLine": 26, "endTokenPos": 303, - "startFilePos": 537, + "startFilePos": 530, "startLine": 26, - "startTokenPos": 299 + "startTokenPos": 295 }, - "left": { + "name": "T_22", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 537, + "endFilePos": 543, "endLine": 26, - "endTokenPos": 299, - "kind": 10, + "endTokenPos": 303, "startFilePos": 537, "startLine": 26, "startTokenPos": 299 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_NotIdentical", - "right": { - "attributes": { - "endFilePos": 543, - "endLine": 26, - "endTokenPos": 303, - "kind": 10, - "startFilePos": 543, - "startLine": 26, - "startTokenPos": 303 + "left": { + "attributes": { + "endFilePos": 537, + "endLine": 26, + "endTokenPos": 299, + "kind": 10, + "startFilePos": 537, + "startLine": 26, + "startTokenPos": 299 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_BinaryOp_NotIdentical", + "right": { + "attributes": { + "endFilePos": 543, + "endLine": 26, + "endTokenPos": 303, + "kind": 10, + "startFilePos": 543, + "startLine": 26, + "startTokenPos": 303 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 567, - "endLine": 27, - "endTokenPos": 317, - "startFilePos": 546, - "startLine": 27, - "startTokenPos": 306 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 566, - "endLine": 27, - "endTokenPos": 316, - "startFilePos": 552, - "startLine": 27, - "startTokenPos": 308 - }, - "name": "T_23", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 567, + "endLine": 27, + "endTokenPos": 317, + "startFilePos": 546, + "startLine": 27, + "startTokenPos": 306 + }, + "consts": [ + { "attributes": { "endFilePos": 566, "endLine": 27, "endTokenPos": 316, - "startFilePos": 559, + "startFilePos": 552, "startLine": 27, - "startTokenPos": 312 + "startTokenPos": 308 }, - "left": { + "name": "T_23", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 559, + "endFilePos": 566, "endLine": 27, - "endTokenPos": 312, - "kind": 10, + "endTokenPos": 316, "startFilePos": 559, "startLine": 27, "startTokenPos": 312 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_BinaryOp_NotEqual", - "right": { - "attributes": { - "endFilePos": 566, - "endLine": 27, - "endTokenPos": 316, - "kind": 2, - "startFilePos": 564, - "startLine": 27, - "startTokenPos": 316 + "left": { + "attributes": { + "endFilePos": 559, + "endLine": 27, + "endTokenPos": 312, + "kind": 10, + "startFilePos": 559, + "startLine": 27, + "startTokenPos": 312 + }, + "nodeType": "Scalar_LNumber", + "value": 0 }, - "nodeType": "Scalar_String", - "value": "0" + "nodeType": "Expr_BinaryOp_NotEqual", + "right": { + "attributes": { + "endFilePos": 566, + "endLine": 27, + "endTokenPos": 316, + "kind": 2, + "startFilePos": 564, + "startLine": 27, + "startTokenPos": 316 + }, + "nodeType": "Scalar_String", + "value": "0" + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 590, - "endLine": 28, - "endTokenPos": 330, - "startFilePos": 569, - "startLine": 28, - "startTokenPos": 319 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 589, - "endLine": 28, - "endTokenPos": 329, - "startFilePos": 575, - "startLine": 28, - "startTokenPos": 321 - }, - "name": "T_24", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 590, + "endLine": 28, + "endTokenPos": 330, + "startFilePos": 569, + "startLine": 28, + "startTokenPos": 319 + }, + "consts": [ + { "attributes": { "endFilePos": 589, "endLine": 28, "endTokenPos": 329, - "startFilePos": 582, + "startFilePos": 575, "startLine": 28, - "startTokenPos": 325 + "startTokenPos": 321 }, - "left": { + "name": "T_24", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 582, + "endFilePos": 589, "endLine": 28, - "endTokenPos": 325, - "kind": 10, + "endTokenPos": 329, "startFilePos": 582, "startLine": 28, "startTokenPos": 325 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_BinaryOp_Equal", - "right": { - "attributes": { - "endFilePos": 589, - "endLine": 28, - "endTokenPos": 329, - "kind": 2, - "startFilePos": 587, - "startLine": 28, - "startTokenPos": 329 + "left": { + "attributes": { + "endFilePos": 582, + "endLine": 28, + "endTokenPos": 325, + "kind": 10, + "startFilePos": 582, + "startLine": 28, + "startTokenPos": 325 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_String", - "value": "1" + "nodeType": "Expr_BinaryOp_Equal", + "right": { + "attributes": { + "endFilePos": 589, + "endLine": 28, + "endTokenPos": 329, + "kind": 2, + "startFilePos": 587, + "startLine": 28, + "startTokenPos": 329 + }, + "nodeType": "Scalar_String", + "value": "1" + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 614, - "endLine": 29, - "endTokenPos": 347, - "startFilePos": 592, - "startLine": 29, - "startTokenPos": 332 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 613, - "endLine": 29, - "endTokenPos": 346, - "startFilePos": 598, - "startLine": 29, - "startTokenPos": 334 - }, - "name": "T_25", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 614, + "endLine": 29, + "endTokenPos": 347, + "startFilePos": 592, + "startLine": 29, + "startTokenPos": 332 + }, + "consts": [ + { "attributes": { "endFilePos": 613, "endLine": 29, "endTokenPos": 346, - "startFilePos": 605, + "startFilePos": 598, "startLine": 29, - "startTokenPos": 338 - }, - "left": { - "attributes": { - "endFilePos": 605, - "endLine": 29, - "endTokenPos": 338, - "kind": 10, - "startFilePos": 605, - "startLine": 29, - "startTokenPos": 338 - }, - "nodeType": "Scalar_LNumber", - "value": 1 + "startTokenPos": 334 }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { + "name": "T_25", + "nodeType": "Const", + "value": { "attributes": { "endFilePos": 613, "endLine": 29, "endTokenPos": 346, - "startFilePos": 609, + "startFilePos": 605, "startLine": 29, - "startTokenPos": 342 + "startTokenPos": 338 }, "left": { "attributes": { - "endFilePos": 609, + "endFilePos": 605, "endLine": 29, - "endTokenPos": 342, + "endTokenPos": 338, "kind": 10, - "startFilePos": 609, + "startFilePos": 605, "startLine": 29, - "startTokenPos": 342 + "startTokenPos": 338 }, "nodeType": "Scalar_LNumber", - "value": 2 + "value": 1 }, - "nodeType": "Expr_BinaryOp_Mul", + "nodeType": "Expr_BinaryOp_Plus", "right": { "attributes": { "endFilePos": 613, "endLine": 29, "endTokenPos": 346, - "kind": 10, - "startFilePos": 613, + "startFilePos": 609, "startLine": 29, - "startTokenPos": 346 + "startTokenPos": 342 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "left": { + "attributes": { + "endFilePos": 609, + "endLine": 29, + "endTokenPos": 342, + "kind": 10, + "startFilePos": 609, + "startLine": 29, + "startTokenPos": 342 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Expr_BinaryOp_Mul", + "right": { + "attributes": { + "endFilePos": 613, + "endLine": 29, + "endTokenPos": 346, + "kind": 10, + "startFilePos": 613, + "startLine": 29, + "startTokenPos": 346 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 642, - "endLine": 30, - "endTokenPos": 364, - "startFilePos": 616, - "startLine": 30, - "startTokenPos": 349 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 641, - "endLine": 30, - "endTokenPos": 363, - "startFilePos": 622, - "startLine": 30, - "startTokenPos": 351 - }, - "name": "T_26", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 642, + "endLine": 30, + "endTokenPos": 364, + "startFilePos": 616, + "startLine": 30, + "startTokenPos": 349 + }, + "consts": [ + { "attributes": { "endFilePos": 641, "endLine": 30, "endTokenPos": 363, - "startFilePos": 629, + "startFilePos": 622, "startLine": 30, - "startTokenPos": 355 + "startTokenPos": 351 }, - "left": { + "name": "T_26", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 635, + "endFilePos": 641, "endLine": 30, - "endTokenPos": 359, + "endTokenPos": 363, "startFilePos": 629, "startLine": 30, "startTokenPos": 355 }, "left": { "attributes": { - "endFilePos": 631, + "endFilePos": 635, "endLine": 30, - "endTokenPos": 355, - "kind": 2, + "endTokenPos": 359, "startFilePos": 629, "startLine": 30, "startTokenPos": 355 }, - "nodeType": "Scalar_String", - "value": "1" + "left": { + "attributes": { + "endFilePos": 631, + "endLine": 30, + "endTokenPos": 355, + "kind": 2, + "startFilePos": 629, + "startLine": 30, + "startTokenPos": 355 + }, + "nodeType": "Scalar_String", + "value": "1" + }, + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 635, + "endLine": 30, + "endTokenPos": 359, + "kind": 10, + "startFilePos": 635, + "startLine": 30, + "startTokenPos": 359 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, "nodeType": "Expr_BinaryOp_Plus", "right": { "attributes": { - "endFilePos": 635, + "endFilePos": 641, "endLine": 30, - "endTokenPos": 359, - "kind": 10, - "startFilePos": 635, + "endTokenPos": 363, + "kind": 2, + "startFilePos": 639, "startLine": 30, - "startTokenPos": 359 + "startTokenPos": 363 }, - "nodeType": "Scalar_LNumber", - "value": 2 + "nodeType": "Scalar_String", + "value": "3" } - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 641, - "endLine": 30, - "endTokenPos": 363, - "kind": 2, - "startFilePos": 639, - "startLine": 30, - "startTokenPos": 363 - }, - "nodeType": "Scalar_String", - "value": "3" } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 663, - "endLine": 31, - "endTokenPos": 377, - "startFilePos": 644, - "startLine": 31, - "startTokenPos": 366 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 662, - "endLine": 31, - "endTokenPos": 376, - "startFilePos": 650, - "startLine": 31, - "startTokenPos": 368 - }, - "name": "T_27", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 663, + "endLine": 31, + "endTokenPos": 377, + "startFilePos": 644, + "startLine": 31, + "startTokenPos": 366 + }, + "consts": [ + { "attributes": { "endFilePos": 662, "endLine": 31, "endTokenPos": 376, - "startFilePos": 657, + "startFilePos": 650, "startLine": 31, - "startTokenPos": 372 + "startTokenPos": 368 }, - "left": { + "name": "T_27", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 657, + "endFilePos": 662, "endLine": 31, - "endTokenPos": 372, - "kind": 10, + "endTokenPos": 376, "startFilePos": 657, "startLine": 31, "startTokenPos": 372 }, - "nodeType": "Scalar_LNumber", - "value": 2 - }, - "nodeType": "Expr_BinaryOp_Pow", - "right": { - "attributes": { - "endFilePos": 662, - "endLine": 31, - "endTokenPos": 376, - "kind": 10, - "startFilePos": 662, - "startLine": 31, - "startTokenPos": 376 + "left": { + "attributes": { + "endFilePos": 657, + "endLine": 31, + "endTokenPos": 372, + "kind": 10, + "startFilePos": 657, + "startLine": 31, + "startTokenPos": 372 + }, + "nodeType": "Scalar_LNumber", + "value": 2 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "nodeType": "Expr_BinaryOp_Pow", + "right": { + "attributes": { + "endFilePos": 662, + "endLine": 31, + "endTokenPos": 376, + "kind": 10, + "startFilePos": 662, + "startLine": 31, + "startTokenPos": 376 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 690, - "endLine": 32, - "endTokenPos": 397, - "startFilePos": 665, - "startLine": 32, - "startTokenPos": 379 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 689, - "endLine": 32, - "endTokenPos": 396, - "startFilePos": 671, - "startLine": 32, - "startTokenPos": 381 - }, - "name": "T_28", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 690, + "endLine": 32, + "endTokenPos": 397, + "startFilePos": 665, + "startLine": 32, + "startTokenPos": 379 + }, + "consts": [ + { "attributes": { "endFilePos": 689, "endLine": 32, "endTokenPos": 396, - "startFilePos": 678, + "startFilePos": 671, "startLine": 32, - "startTokenPos": 385 - }, - "dim": { - "attributes": { - "endFilePos": 688, - "endLine": 32, - "endTokenPos": 395, - "kind": 10, - "startFilePos": 688, - "startLine": 32, - "startTokenPos": 395 - }, - "nodeType": "Scalar_LNumber", - "value": 1 + "startTokenPos": 381 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": "T_28", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 686, + "endFilePos": 689, "endLine": 32, - "endTokenPos": 393, - "kind": 2, + "endTokenPos": 396, "startFilePos": 678, "startLine": 32, "startTokenPos": 385 }, - "items": [ - { - "attributes": { - "endFilePos": 679, - "endLine": 32, - "endTokenPos": 386, - "startFilePos": 679, - "startLine": 32, - "startTokenPos": 386 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "dim": { + "attributes": { + "endFilePos": 688, + "endLine": 32, + "endTokenPos": 395, + "kind": 10, + "startFilePos": 688, + "startLine": 32, + "startTokenPos": 395 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 686, + "endLine": 32, + "endTokenPos": 393, + "kind": 2, + "startFilePos": 678, + "startLine": 32, + "startTokenPos": 385 + }, + "items": [ + { "attributes": { "endFilePos": 679, "endLine": 32, "endTokenPos": 386, - "kind": 10, "startFilePos": 679, "startLine": 32, "startTokenPos": 386 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 682, - "endLine": 32, - "endTokenPos": 389, - "startFilePos": 682, - "startLine": 32, - "startTokenPos": 389 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 679, + "endLine": 32, + "endTokenPos": 386, + "kind": 10, + "startFilePos": 679, + "startLine": 32, + "startTokenPos": 386 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 682, "endLine": 32, "endTokenPos": 389, - "kind": 10, "startFilePos": 682, "startLine": 32, "startTokenPos": 389 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 685, - "endLine": 32, - "endTokenPos": 392, - "startFilePos": 685, - "startLine": 32, - "startTokenPos": 392 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 682, + "endLine": 32, + "endTokenPos": 389, + "kind": 10, + "startFilePos": 682, + "startLine": 32, + "startTokenPos": 389 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 685, "endLine": 32, "endTokenPos": 392, - "kind": 10, "startFilePos": 685, "startLine": 32, "startTokenPos": 392 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 685, + "endLine": 32, + "endTokenPos": 392, + "kind": 10, + "startFilePos": 685, + "startLine": 32, + "startTokenPos": 392 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 712, - "endLine": 33, - "endTokenPos": 410, - "startFilePos": 692, - "startLine": 33, - "startTokenPos": 399 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 711, - "endLine": 33, - "endTokenPos": 409, - "startFilePos": 698, - "startLine": 33, - "startTokenPos": 401 - }, - "name": "T_29", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 712, + "endLine": 33, + "endTokenPos": 410, + "startFilePos": 692, + "startLine": 33, + "startTokenPos": 399 + }, + "consts": [ + { "attributes": { "endFilePos": 711, "endLine": 33, "endTokenPos": 409, - "startFilePos": 705, + "startFilePos": 698, "startLine": 33, - "startTokenPos": 405 + "startTokenPos": 401 }, - "left": { + "name": "T_29", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 706, + "endFilePos": 711, "endLine": 33, - "endTokenPos": 405, - "kind": 10, + "endTokenPos": 409, "startFilePos": 705, "startLine": 33, "startTokenPos": 405 }, - "nodeType": "Scalar_LNumber", - "value": 12 - }, - "nodeType": "Expr_BinaryOp_Minus", - "right": { - "attributes": { - "endFilePos": 711, - "endLine": 33, - "endTokenPos": 409, - "kind": 10, - "startFilePos": 710, - "startLine": 33, - "startTokenPos": 409 + "left": { + "attributes": { + "endFilePos": 706, + "endLine": 33, + "endTokenPos": 405, + "kind": 10, + "startFilePos": 705, + "startLine": 33, + "startTokenPos": 405 + }, + "nodeType": "Scalar_LNumber", + "value": 12 }, - "nodeType": "Scalar_LNumber", - "value": 13 + "nodeType": "Expr_BinaryOp_Minus", + "right": { + "attributes": { + "endFilePos": 711, + "endLine": 33, + "endTokenPos": 409, + "kind": 10, + "startFilePos": 710, + "startLine": 33, + "startTokenPos": 409 + }, + "nodeType": "Scalar_LNumber", + "value": 13 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 734, - "endLine": 34, - "endTokenPos": 423, - "startFilePos": 714, - "startLine": 34, - "startTokenPos": 412 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 733, - "endLine": 34, - "endTokenPos": 422, - "startFilePos": 720, - "startLine": 34, - "startTokenPos": 414 - }, - "name": "T_30", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 734, + "endLine": 34, + "endTokenPos": 423, + "startFilePos": 714, + "startLine": 34, + "startTokenPos": 412 + }, + "consts": [ + { "attributes": { "endFilePos": 733, "endLine": 34, "endTokenPos": 422, - "startFilePos": 727, + "startFilePos": 720, "startLine": 34, - "startTokenPos": 418 + "startTokenPos": 414 }, - "left": { + "name": "T_30", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 728, + "endFilePos": 733, "endLine": 34, - "endTokenPos": 418, - "kind": 10, + "endTokenPos": 422, "startFilePos": 727, "startLine": 34, "startTokenPos": 418 }, - "nodeType": "Scalar_LNumber", - "value": 12 - }, - "nodeType": "Expr_BinaryOp_BitwiseXor", - "right": { - "attributes": { - "endFilePos": 733, - "endLine": 34, - "endTokenPos": 422, - "kind": 10, - "startFilePos": 732, - "startLine": 34, - "startTokenPos": 422 + "left": { + "attributes": { + "endFilePos": 728, + "endLine": 34, + "endTokenPos": 418, + "kind": 10, + "startFilePos": 727, + "startLine": 34, + "startTokenPos": 418 + }, + "nodeType": "Scalar_LNumber", + "value": 12 }, - "nodeType": "Scalar_LNumber", - "value": 13 + "nodeType": "Expr_BinaryOp_BitwiseXor", + "right": { + "attributes": { + "endFilePos": 733, + "endLine": 34, + "endTokenPos": 422, + "kind": 10, + "startFilePos": 732, + "startLine": 34, + "startTokenPos": 422 + }, + "nodeType": "Scalar_LNumber", + "value": 13 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 756, - "endLine": 35, - "endTokenPos": 436, - "startFilePos": 736, - "startLine": 35, - "startTokenPos": 425 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 755, - "endLine": 35, - "endTokenPos": 435, - "startFilePos": 742, - "startLine": 35, - "startTokenPos": 427 - }, - "name": "T_31", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 756, + "endLine": 35, + "endTokenPos": 436, + "startFilePos": 736, + "startLine": 35, + "startTokenPos": 425 + }, + "consts": [ + { "attributes": { "endFilePos": 755, "endLine": 35, "endTokenPos": 435, - "startFilePos": 749, + "startFilePos": 742, "startLine": 35, - "startTokenPos": 431 + "startTokenPos": 427 }, - "left": { + "name": "T_31", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 750, + "endFilePos": 755, "endLine": 35, - "endTokenPos": 431, - "kind": 10, + "endTokenPos": 435, "startFilePos": 749, "startLine": 35, "startTokenPos": 431 }, - "nodeType": "Scalar_LNumber", - "value": 12 - }, - "nodeType": "Expr_BinaryOp_BitwiseAnd", - "right": { - "attributes": { - "endFilePos": 755, - "endLine": 35, - "endTokenPos": 435, - "kind": 10, - "startFilePos": 754, - "startLine": 35, - "startTokenPos": 435 + "left": { + "attributes": { + "endFilePos": 750, + "endLine": 35, + "endTokenPos": 431, + "kind": 10, + "startFilePos": 749, + "startLine": 35, + "startTokenPos": 431 + }, + "nodeType": "Scalar_LNumber", + "value": 12 }, - "nodeType": "Scalar_LNumber", - "value": 13 + "nodeType": "Expr_BinaryOp_BitwiseAnd", + "right": { + "attributes": { + "endFilePos": 755, + "endLine": 35, + "endTokenPos": 435, + "kind": 10, + "startFilePos": 754, + "startLine": 35, + "startTokenPos": 435 + }, + "nodeType": "Scalar_LNumber", + "value": 13 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 778, - "endLine": 36, - "endTokenPos": 449, - "startFilePos": 758, - "startLine": 36, - "startTokenPos": 438 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 777, - "endLine": 36, - "endTokenPos": 448, - "startFilePos": 764, - "startLine": 36, - "startTokenPos": 440 - }, - "name": "T_32", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 778, + "endLine": 36, + "endTokenPos": 449, + "startFilePos": 758, + "startLine": 36, + "startTokenPos": 438 + }, + "consts": [ + { "attributes": { "endFilePos": 777, "endLine": 36, "endTokenPos": 448, - "startFilePos": 771, + "startFilePos": 764, "startLine": 36, - "startTokenPos": 444 + "startTokenPos": 440 }, - "left": { + "name": "T_32", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 772, + "endFilePos": 777, "endLine": 36, - "endTokenPos": 444, - "kind": 10, + "endTokenPos": 448, "startFilePos": 771, "startLine": 36, "startTokenPos": 444 }, - "nodeType": "Scalar_LNumber", - "value": 12 - }, - "nodeType": "Expr_BinaryOp_BitwiseOr", - "right": { - "attributes": { - "endFilePos": 777, - "endLine": 36, - "endTokenPos": 448, - "kind": 10, - "startFilePos": 776, - "startLine": 36, - "startTokenPos": 448 + "left": { + "attributes": { + "endFilePos": 772, + "endLine": 36, + "endTokenPos": 444, + "kind": 10, + "startFilePos": 771, + "startLine": 36, + "startTokenPos": 444 + }, + "nodeType": "Scalar_LNumber", + "value": 12 }, - "nodeType": "Scalar_LNumber", - "value": 13 + "nodeType": "Expr_BinaryOp_BitwiseOr", + "right": { + "attributes": { + "endFilePos": 777, + "endLine": 36, + "endTokenPos": 448, + "kind": 10, + "startFilePos": 776, + "startLine": 36, + "startTokenPos": 448 + }, + "nodeType": "Scalar_LNumber", + "value": 13 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 799, - "endLine": 37, - "endTokenPos": 462, - "startFilePos": 780, - "startLine": 37, - "startTokenPos": 451 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 798, - "endLine": 37, - "endTokenPos": 461, - "startFilePos": 786, - "startLine": 37, - "startTokenPos": 453 - }, - "name": "T_33", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 799, + "endLine": 37, + "endTokenPos": 462, + "startFilePos": 780, + "startLine": 37, + "startTokenPos": 451 + }, + "consts": [ + { "attributes": { "endFilePos": 798, "endLine": 37, "endTokenPos": 461, - "startFilePos": 793, + "startFilePos": 786, "startLine": 37, - "startTokenPos": 457 + "startTokenPos": 453 }, - "left": { + "name": "T_33", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 794, + "endFilePos": 798, "endLine": 37, - "endTokenPos": 457, - "kind": 10, + "endTokenPos": 461, "startFilePos": 793, "startLine": 37, "startTokenPos": 457 }, - "nodeType": "Scalar_LNumber", - "value": 12 - }, - "nodeType": "Expr_BinaryOp_Mod", - "right": { - "attributes": { - "endFilePos": 798, - "endLine": 37, - "endTokenPos": 461, - "kind": 10, - "startFilePos": 798, - "startLine": 37, - "startTokenPos": 461 + "left": { + "attributes": { + "endFilePos": 794, + "endLine": 37, + "endTokenPos": 457, + "kind": 10, + "startFilePos": 793, + "startLine": 37, + "startTokenPos": 457 + }, + "nodeType": "Scalar_LNumber", + "value": 12 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "nodeType": "Expr_BinaryOp_Mod", + "right": { + "attributes": { + "endFilePos": 798, + "endLine": 37, + "endTokenPos": 461, + "kind": 10, + "startFilePos": 798, + "startLine": 37, + "startTokenPos": 461 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 822, - "endLine": 38, - "endTokenPos": 475, - "startFilePos": 801, - "startLine": 38, - "startTokenPos": 464 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 821, - "endLine": 38, - "endTokenPos": 474, - "startFilePos": 807, - "startLine": 38, - "startTokenPos": 466 - }, - "name": "T_34", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 822, + "endLine": 38, + "endTokenPos": 475, + "startFilePos": 801, + "startLine": 38, + "startTokenPos": 464 + }, + "consts": [ + { "attributes": { "endFilePos": 821, "endLine": 38, "endTokenPos": 474, - "startFilePos": 814, + "startFilePos": 807, "startLine": 38, - "startTokenPos": 470 + "startTokenPos": 466 }, - "left": { + "name": "T_34", + "nodeType": "Const", + "value": { "attributes": { - "endFilePos": 816, + "endFilePos": 821, "endLine": 38, - "endTokenPos": 470, - "kind": 10, + "endTokenPos": 474, "startFilePos": 814, "startLine": 38, "startTokenPos": 470 }, - "nodeType": "Scalar_LNumber", - "value": 100 - }, - "nodeType": "Expr_BinaryOp_ShiftRight", - "right": { - "attributes": { - "endFilePos": 821, - "endLine": 38, - "endTokenPos": 474, - "kind": 10, - "startFilePos": 821, - "startLine": 38, - "startTokenPos": 474 + "left": { + "attributes": { + "endFilePos": 816, + "endLine": 38, + "endTokenPos": 470, + "kind": 10, + "startFilePos": 814, + "startLine": 38, + "startTokenPos": 470 + }, + "nodeType": "Scalar_LNumber", + "value": 100 }, - "nodeType": "Scalar_LNumber", - "value": 4 + "nodeType": "Expr_BinaryOp_ShiftRight", + "right": { + "attributes": { + "endFilePos": 821, + "endLine": 38, + "endTokenPos": 474, + "kind": 10, + "startFilePos": 821, + "startLine": 38, + "startTokenPos": 474 + }, + "nodeType": "Scalar_LNumber", + "value": 4 + } } } - } - ], - "nodeType": "Stmt_Const" - }, - { - "attributes": { - "endFilePos": 843, - "endLine": 39, - "endTokenPos": 485, - "startFilePos": 824, - "startLine": 39, - "startTokenPos": 477 + ], + "nodeType": "Stmt_Const" }, - "consts": [ - { - "attributes": { - "endFilePos": 842, - "endLine": 39, - "endTokenPos": 484, - "startFilePos": 830, - "startLine": 39, - "startTokenPos": 479 - }, - "name": "T_35", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 843, + "endLine": 39, + "endTokenPos": 485, + "startFilePos": 824, + "startLine": 39, + "startTokenPos": 477 + }, + "consts": [ + { "attributes": { "endFilePos": 842, "endLine": 39, "endTokenPos": 484, - "startFilePos": 837, + "startFilePos": 830, "startLine": 39, - "startTokenPos": 483 + "startTokenPos": 479 }, - "expr": { + "name": "T_35", + "nodeType": "Const", + "value": { "attributes": { "endFilePos": 842, "endLine": 39, "endTokenPos": 484, - "startFilePos": 838, + "startFilePos": 837, "startLine": 39, - "startTokenPos": 484 + "startTokenPos": 483 }, - "name": { + "expr": { "attributes": { "endFilePos": 842, "endLine": 39, @@ -2375,18 +2367,29 @@ "startLine": 39, "startTokenPos": 484 }, - "nodeType": "Name", - "parts": [ - "false" - ] + "name": { + "attributes": { + "endFilePos": 842, + "endLine": 39, + "endTokenPos": 484, + "startFilePos": 838, + "startLine": 39, + "startTokenPos": 484 + }, + "nodeType": "Name", + "parts": [ + "false" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "nodeType": "Expr_ConstFetch" - }, - "nodeType": "Expr_BooleanNot" + "nodeType": "Expr_BooleanNot" + } } - } - ], - "nodeType": "Stmt_Const" - } - ] + ], + "nodeType": "Stmt_Const" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/constant_expr.php.uast b/fixtures/constant_expr.php.uast index eb926bf..977d0ea 100644 --- a/fixtures/constant_expr.php.uast +++ b/fixtures/constant_expr.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_1" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 3 @@ -38,8 +37,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_ShiftLeft { -. . . . . . . Roles: Expression,Binary,Operator,Bitwise,LeftShift +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_ShiftLeft { +. . . . . . . Roles: Binary,Bitwise,Expression,LeftShift,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 19 . . . . . . . . Line: 3 @@ -55,7 +61,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 19 @@ -72,7 +78,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 24 @@ -95,7 +101,7 @@ File { . . . } . . } . . 1: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 27 . . . . Line: 4 @@ -111,8 +117,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_2" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 33 . . . . . . Line: 4 @@ -127,8 +132,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Div { -. . . . . . . Roles: Expression,Operator,Divide +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_2" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Div { +. . . . . . . Roles: Divide,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 39 . . . . . . . . Line: 4 @@ -144,7 +156,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 39 @@ -161,7 +173,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "2" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 43 @@ -184,7 +196,7 @@ File { . . . } . . } . . 2: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 46 . . . . Line: 5 @@ -200,8 +212,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_3" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 52 . . . . . . Line: 5 @@ -216,8 +227,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . Roles: Expression,Operator,Add +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_3" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Plus { +. . . . . . . Roles: Add,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 58 . . . . . . . . Line: 5 @@ -233,7 +251,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_DNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1.5" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 58 @@ -250,7 +268,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_DNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1.5" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 64 @@ -273,7 +291,7 @@ File { . . . } . . } . . 3: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 69 . . . . Line: 6 @@ -289,8 +307,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_4" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 75 . . . . . . Line: 6 @@ -305,8 +322,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Concat { -. . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_4" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 81 . . . . . . . . Line: 6 @@ -322,7 +346,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Left,Expression,Literal,String +. . . . . . . . . Roles: Expression,Left,Literal,String . . . . . . . . . TOKEN "foo" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 81 @@ -339,7 +363,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String +. . . . . . . . . Roles: Expression,Literal,Right,String . . . . . . . . . TOKEN "bar" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 89 @@ -362,7 +386,7 @@ File { . . . } . . } . . 4: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 96 . . . . Line: 7 @@ -378,8 +402,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_5" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 102 . . . . . . Line: 7 @@ -394,8 +417,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Mul { -. . . . . . . Roles: Expression,Operator,Multiply +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_5" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Mul { +. . . . . . . Roles: Expression,Multiply,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 108 . . . . . . . . Line: 7 @@ -411,7 +441,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . . . Roles: Left,Expression,Operator,Add +. . . . . . . . . Roles: Add,Expression,Left,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 109 . . . . . . . . . . Line: 7 @@ -427,7 +457,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_DNumber { -. . . . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . . . TOKEN "1.5" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 109 @@ -444,7 +474,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_DNumber { -. . . . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . . . TOKEN "1.5" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 115 @@ -463,7 +493,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "2" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 122 @@ -486,7 +516,7 @@ File { . . . } . . } . . 5: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 125 . . . . Line: 8 @@ -502,8 +532,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_6" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 131 . . . . . . Line: 8 @@ -518,8 +547,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Concat { -. . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_6" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 137 . . . . . . . . Line: 8 @@ -535,7 +571,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_BinaryOp_Concat { -. . . . . . . . . Roles: Left,Expression,Binary,Operator,Add,Incomplete +. . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Left,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 137 . . . . . . . . . . Line: 8 @@ -551,7 +587,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_BinaryOp_Concat { -. . . . . . . . . . . Roles: Left,Expression,Binary,Operator,Add,Incomplete +. . . . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Left,Operator . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 137 . . . . . . . . . . . . Line: 8 @@ -567,7 +603,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . Roles: Left,Expression,Literal,String +. . . . . . . . . . . . . Roles: Expression,Left,Literal,String . . . . . . . . . . . . . TOKEN "foo" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 137 @@ -584,7 +620,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . . . . . TOKEN "2" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 145 @@ -603,7 +639,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . . . TOKEN "3" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 149 @@ -622,7 +658,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_DNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "4" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 153 @@ -645,7 +681,7 @@ File { . . . } . . } . . 6: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 158 . . . . Line: 9 @@ -661,8 +697,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_7" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 164 . . . . . . Line: 9 @@ -677,8 +712,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_MagicConst_Line { -. . . . . . . Roles: Expression,Literal,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_7" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_MagicConst_Line { +. . . . . . . Roles: Expression,Incomplete,Literal . . . . . . . StartPosition: { . . . . . . . . Offset: 170 . . . . . . . . Line: 9 @@ -698,7 +740,7 @@ File { . . . } . . } . . 7: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 180 . . . . Line: 10 @@ -714,8 +756,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_8" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 186 . . . . . . Line: 10 @@ -730,7 +771,14 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_String { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_8" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String . . . . . . . TOKEN "This is a test string" . . . . . . . StartPosition: { @@ -752,7 +800,7 @@ File { . . . } . . } . . 8: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 242 . . . . Line: 13 @@ -768,8 +816,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_9" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 248 . . . . . . Line: 13 @@ -784,8 +831,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BitwiseNot { -. . . . . . . Roles: Expression,Unary,Operator,Bitwise,Not +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_9" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BitwiseNot { +. . . . . . . Roles: Bitwise,Expression,Not,Operator,Unary . . . . . . . StartPosition: { . . . . . . . . Offset: 254 . . . . . . . . Line: 13 @@ -801,7 +855,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_UnaryMinus { -. . . . . . . . . Roles: Expression,Unary,Incomplete +. . . . . . . . . Roles: Expression,Incomplete,Unary . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 255 . . . . . . . . . . Line: 13 @@ -842,7 +896,7 @@ File { . . . } . . } . . 9: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 259 . . . . Line: 14 @@ -858,8 +912,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_10" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 265 . . . . . . Line: 14 @@ -874,8 +927,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . Roles: Expression,Operator,Add +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_10" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Plus { +. . . . . . . Roles: Add,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 272 . . . . . . . . Line: 14 @@ -891,7 +951,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Ternary { -. . . . . . . . . Roles: Left,Expression,If +. . . . . . . . . Roles: Expression,If,Left . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 273 . . . . . . . . . . Line: 14 @@ -907,7 +967,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_UnaryMinus { -. . . . . . . . . . . Roles: Condition,Expression,Unary,Incomplete +. . . . . . . . . . . Roles: Condition,Expression,If,Incomplete,Unary . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 273 . . . . . . . . . . . . Line: 14 @@ -942,7 +1002,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . . . Roles: Expression,Literal,Number,Else +. . . . . . . . . . . Roles: Else,Expression,Literal,Number . . . . . . . . . . . TOKEN "1" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 277 @@ -961,7 +1021,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_Ternary { -. . . . . . . . . Roles: Right,Expression,If +. . . . . . . . . Roles: Expression,If,Right . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 283 . . . . . . . . . . Line: 14 @@ -977,7 +1037,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . . . Roles: Condition,Expression,Literal,Number +. . . . . . . . . . . Roles: Condition,Expression,If,Literal,Number . . . . . . . . . . . TOKEN "0" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 283 @@ -1011,7 +1071,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 2: Scalar_LNumber { -. . . . . . . . . . . Roles: Expression,Literal,Number,Else +. . . . . . . . . . . Roles: Else,Expression,Literal,Number . . . . . . . . . . . TOKEN "3" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 287 @@ -1036,7 +1096,7 @@ File { . . . } . . } . . 10: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 291 . . . . Line: 15 @@ -1052,8 +1112,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_11" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 297 . . . . . . Line: 15 @@ -1068,8 +1127,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_BooleanAnd { -. . . . . . . Roles: Expression,Binary,Operator,Boolean,And +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_11" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_BooleanAnd { +. . . . . . . Roles: And,Binary,Boolean,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 304 . . . . . . . . Line: 15 @@ -1085,7 +1151,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 304 @@ -1102,7 +1168,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 309 @@ -1125,7 +1191,7 @@ File { . . . } . . } . . 11: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 312 . . . . Line: 16 @@ -1141,8 +1207,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_12" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 318 . . . . . . Line: 16 @@ -1157,8 +1222,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_LogicalAnd { -. . . . . . . Roles: Expression,Binary,Operator,Boolean,And +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_12" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_LogicalAnd { +. . . . . . . Roles: And,Binary,Boolean,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 325 . . . . . . . . Line: 16 @@ -1174,7 +1246,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 325 @@ -1191,7 +1263,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 331 @@ -1214,7 +1286,7 @@ File { . . . } . . } . . 12: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 334 . . . . Line: 17 @@ -1230,8 +1302,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_13" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 340 . . . . . . Line: 17 @@ -1246,8 +1317,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_BooleanOr { -. . . . . . . Roles: Expression,Binary,Operator,Boolean,Or +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_13" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_BooleanOr { +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Or . . . . . . . StartPosition: { . . . . . . . . Offset: 347 . . . . . . . . Line: 17 @@ -1263,7 +1341,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 347 @@ -1280,7 +1358,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 352 @@ -1303,7 +1381,7 @@ File { . . . } . . } . . 13: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 355 . . . . Line: 18 @@ -1319,8 +1397,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_14" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 361 . . . . . . Line: 18 @@ -1335,8 +1412,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_LogicalOr { -. . . . . . . Roles: Expression,Binary,Operator,Boolean,Or +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_14" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_LogicalOr { +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Or . . . . . . . StartPosition: { . . . . . . . . Offset: 368 . . . . . . . . Line: 18 @@ -1352,7 +1436,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 368 @@ -1369,7 +1453,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 373 @@ -1392,7 +1476,7 @@ File { . . . } . . } . . 14: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 376 . . . . Line: 19 @@ -1408,8 +1492,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_15" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 382 . . . . . . Line: 19 @@ -1424,8 +1507,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_LogicalXor { -. . . . . . . Roles: Expression,Binary,Operator,Boolean,Xor +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_15" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_LogicalXor { +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Xor . . . . . . . StartPosition: { . . . . . . . . Offset: 389 . . . . . . . . Line: 19 @@ -1441,7 +1531,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 389 @@ -1458,7 +1548,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 395 @@ -1481,7 +1571,7 @@ File { . . . } . . } . . 15: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 398 . . . . Line: 20 @@ -1497,8 +1587,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_16" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 404 . . . . . . Line: 20 @@ -1513,8 +1602,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_LogicalXor { -. . . . . . . Roles: Expression,Binary,Operator,Boolean,Xor +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_16" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_LogicalXor { +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Xor . . . . . . . StartPosition: { . . . . . . . . Offset: 411 . . . . . . . . Line: 20 @@ -1530,7 +1626,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 411 @@ -1547,7 +1643,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 417 @@ -1570,7 +1666,7 @@ File { . . . } . . } . . 16: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 420 . . . . Line: 21 @@ -1586,8 +1682,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_17" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 426 . . . . . . Line: 21 @@ -1602,8 +1697,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Smaller { -. . . . . . . Roles: Expression,Binary,Operator,Relational,LessThan +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_17" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Smaller { +. . . . . . . Roles: Binary,Expression,LessThan,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 433 . . . . . . . . Line: 21 @@ -1619,7 +1721,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 433 @@ -1636,7 +1738,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 437 @@ -1659,7 +1761,7 @@ File { . . . } . . } . . 17: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 440 . . . . Line: 22 @@ -1675,8 +1777,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_18" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 446 . . . . . . Line: 22 @@ -1691,8 +1792,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_SmallerOrEqual { -. . . . . . . Roles: Expression,Binary,Operator,Relational,LessThanOrEqual +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_18" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_SmallerOrEqual { +. . . . . . . Roles: Binary,Expression,LessThanOrEqual,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 453 . . . . . . . . Line: 22 @@ -1708,7 +1816,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 453 @@ -1725,7 +1833,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 458 @@ -1748,7 +1856,7 @@ File { . . . } . . } . . 18: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 461 . . . . Line: 23 @@ -1764,8 +1872,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_19" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 467 . . . . . . Line: 23 @@ -1780,8 +1887,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Greater { -. . . . . . . Roles: Expression,Binary,Operator,Relational,GreaterThan +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_19" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Greater { +. . . . . . . Roles: Binary,Expression,GreaterThan,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 474 . . . . . . . . Line: 23 @@ -1797,7 +1911,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 474 @@ -1814,7 +1928,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 478 @@ -1837,7 +1951,7 @@ File { . . . } . . } . . 19: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 481 . . . . Line: 24 @@ -1853,8 +1967,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_20" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 487 . . . . . . Line: 24 @@ -1869,8 +1982,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_GreaterOrEqual { -. . . . . . . Roles: Expression,Binary,Operator,Relational,GreaterThanOrEqual +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_20" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_GreaterOrEqual { +. . . . . . . Roles: Binary,Expression,GreaterThanOrEqual,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 494 . . . . . . . . Line: 24 @@ -1886,7 +2006,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 494 @@ -1903,7 +2023,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 499 @@ -1926,7 +2046,7 @@ File { . . . } . . } . . 20: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 502 . . . . Line: 25 @@ -1942,8 +2062,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_21" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 508 . . . . . . Line: 25 @@ -1958,8 +2077,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Identical { -. . . . . . . Roles: Expression,Binary,Operator,Relational,Identical +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_21" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Identical { +. . . . . . . Roles: Binary,Expression,Identical,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 515 . . . . . . . . Line: 25 @@ -1975,7 +2101,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 515 @@ -1992,7 +2118,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 521 @@ -2015,7 +2141,7 @@ File { . . . } . . } . . 21: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 524 . . . . Line: 26 @@ -2031,8 +2157,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_22" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 530 . . . . . . Line: 26 @@ -2047,8 +2172,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_NotIdentical { -. . . . . . . Roles: Expression,Binary,Operator,Relational,Not,Identical +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_22" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_NotIdentical { +. . . . . . . Roles: Binary,Expression,Identical,Not,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 537 . . . . . . . . Line: 26 @@ -2064,7 +2196,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 537 @@ -2081,7 +2213,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 543 @@ -2104,7 +2236,7 @@ File { . . . } . . } . . 22: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 546 . . . . Line: 27 @@ -2120,8 +2252,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_23" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 552 . . . . . . Line: 27 @@ -2136,8 +2267,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_NotEqual { -. . . . . . . Roles: Expression,Binary,Operator,Relational,Not,Equal +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_23" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_NotEqual { +. . . . . . . Roles: Binary,Equal,Expression,Not,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 559 . . . . . . . . Line: 27 @@ -2153,7 +2291,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 559 @@ -2170,7 +2308,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String +. . . . . . . . . Roles: Expression,Literal,Right,String . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 564 @@ -2193,7 +2331,7 @@ File { . . . } . . } . . 23: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 569 . . . . Line: 28 @@ -2209,8 +2347,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_24" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 575 . . . . . . Line: 28 @@ -2225,8 +2362,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Equal { -. . . . . . . Roles: Expression,Binary,Operator,Relational,Equal +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_24" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Equal { +. . . . . . . Roles: Binary,Equal,Expression,Operator,Relational . . . . . . . StartPosition: { . . . . . . . . Offset: 582 . . . . . . . . Line: 28 @@ -2242,7 +2386,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 582 @@ -2259,7 +2403,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String +. . . . . . . . . Roles: Expression,Literal,Right,String . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 587 @@ -2282,7 +2426,7 @@ File { . . . } . . } . . 24: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 592 . . . . Line: 29 @@ -2298,8 +2442,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_25" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 598 . . . . . . Line: 29 @@ -2314,8 +2457,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . Roles: Expression,Operator,Add +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_25" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Plus { +. . . . . . . Roles: Add,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 605 . . . . . . . . Line: 29 @@ -2331,7 +2481,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 605 @@ -2348,7 +2498,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_BinaryOp_Mul { -. . . . . . . . . Roles: Right,Expression,Operator,Multiply +. . . . . . . . . Roles: Expression,Multiply,Operator,Right . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 609 . . . . . . . . . . Line: 29 @@ -2364,7 +2514,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . . . TOKEN "2" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 609 @@ -2381,7 +2531,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . . . TOKEN "3" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 613 @@ -2406,7 +2556,7 @@ File { . . . } . . } . . 25: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 616 . . . . Line: 30 @@ -2422,8 +2572,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_26" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 622 . . . . . . Line: 30 @@ -2438,8 +2587,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . Roles: Expression,Operator,Add +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_26" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Plus { +. . . . . . . Roles: Add,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 629 . . . . . . . . Line: 30 @@ -2455,7 +2611,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . . . Roles: Left,Expression,Operator,Add +. . . . . . . . . Roles: Add,Expression,Left,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 629 . . . . . . . . . . Line: 30 @@ -2471,7 +2627,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . Roles: Left,Expression,Literal,String +. . . . . . . . . . . Roles: Expression,Left,Literal,String . . . . . . . . . . . TOKEN "1" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 629 @@ -2488,7 +2644,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . . . TOKEN "2" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 635 @@ -2507,7 +2663,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String +. . . . . . . . . Roles: Expression,Literal,Right,String . . . . . . . . . TOKEN "3" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 639 @@ -2530,7 +2686,7 @@ File { . . . } . . } . . 26: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 644 . . . . Line: 31 @@ -2546,8 +2702,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_27" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 650 . . . . . . Line: 31 @@ -2562,8 +2717,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Pow { -. . . . . . . Roles: Expression,Operator,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_27" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Pow { +. . . . . . . Roles: Expression,Incomplete,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 657 . . . . . . . . Line: 31 @@ -2579,7 +2741,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "2" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 657 @@ -2596,7 +2758,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "3" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 662 @@ -2619,7 +2781,7 @@ File { . . . } . . } . . 27: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 665 . . . . Line: 32 @@ -2635,8 +2797,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_28" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 671 . . . . . . Line: 32 @@ -2651,8 +2812,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_28" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ArrayDimFetch { +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 678 . . . . . . . . Line: 32 @@ -2668,7 +2836,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 678 . . . . . . . . . . Line: 32 @@ -2684,7 +2852,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 679 . . . . . . . . . . . . Line: 32 @@ -2720,7 +2888,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 682 . . . . . . . . . . . . Line: 32 @@ -2756,7 +2924,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 2: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 685 . . . . . . . . . . . . Line: 32 @@ -2817,7 +2985,7 @@ File { . . . } . . } . . 28: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 692 . . . . Line: 33 @@ -2833,8 +3001,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_29" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 698 . . . . . . Line: 33 @@ -2849,7 +3016,14 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Minus { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_29" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Minus { . . . . . . . Roles: Expression,Operator,Substract . . . . . . . StartPosition: { . . . . . . . . Offset: 705 @@ -2866,7 +3040,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "12" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 705 @@ -2883,7 +3057,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "13" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 710 @@ -2906,7 +3080,7 @@ File { . . . } . . } . . 29: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 714 . . . . Line: 34 @@ -2922,8 +3096,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_30" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 720 . . . . . . Line: 34 @@ -2938,8 +3111,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_BitwiseXor { -. . . . . . . Roles: Expression,Binary,Operator,Bitwise,Xor +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_30" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_BitwiseXor { +. . . . . . . Roles: Binary,Bitwise,Expression,Operator,Xor . . . . . . . StartPosition: { . . . . . . . . Offset: 727 . . . . . . . . Line: 34 @@ -2955,7 +3135,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "12" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 727 @@ -2972,7 +3152,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "13" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 732 @@ -2995,7 +3175,7 @@ File { . . . } . . } . . 30: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 736 . . . . Line: 35 @@ -3011,8 +3191,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_31" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 742 . . . . . . Line: 35 @@ -3027,8 +3206,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_BitwiseAnd { -. . . . . . . Roles: Expression,Binary,Operator,Bitwise,And +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_31" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_BitwiseAnd { +. . . . . . . Roles: And,Binary,Bitwise,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 749 . . . . . . . . Line: 35 @@ -3044,7 +3230,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "12" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 749 @@ -3061,7 +3247,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "13" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 754 @@ -3084,7 +3270,7 @@ File { . . . } . . } . . 31: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 758 . . . . Line: 36 @@ -3100,8 +3286,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_32" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 764 . . . . . . Line: 36 @@ -3116,8 +3301,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_BitwiseOr { -. . . . . . . Roles: Expression,Binary,Operator,Bitwise,Or +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_32" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_BitwiseOr { +. . . . . . . Roles: Binary,Bitwise,Expression,Operator,Or . . . . . . . StartPosition: { . . . . . . . . Offset: 771 . . . . . . . . Line: 36 @@ -3133,7 +3325,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "12" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 771 @@ -3150,7 +3342,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "13" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 776 @@ -3173,7 +3365,7 @@ File { . . . } . . } . . 32: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 780 . . . . Line: 37 @@ -3189,8 +3381,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_33" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 786 . . . . . . Line: 37 @@ -3205,8 +3396,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Mod { -. . . . . . . Roles: Expression,Operator,Modulo +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_33" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_Mod { +. . . . . . . Roles: Expression,Modulo,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 793 . . . . . . . . Line: 37 @@ -3222,7 +3420,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "12" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 793 @@ -3239,7 +3437,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "3" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 798 @@ -3262,7 +3460,7 @@ File { . . . } . . } . . 33: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 801 . . . . Line: 38 @@ -3278,8 +3476,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_34" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 807 . . . . . . Line: 38 @@ -3294,8 +3491,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_ShiftRight { -. . . . . . . Roles: Expression,Binary,Operator,Bitwise,RightShift +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_34" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BinaryOp_ShiftRight { +. . . . . . . Roles: Binary,Bitwise,Expression,Operator,RightShift . . . . . . . StartPosition: { . . . . . . . . Offset: 814 . . . . . . . . Line: 38 @@ -3311,7 +3515,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Left,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Left,Literal,Number . . . . . . . . . TOKEN "100" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 814 @@ -3328,7 +3532,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "4" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 821 @@ -3351,7 +3555,7 @@ File { . . . } . . } . . 34: Stmt_Const { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 824 . . . . Line: 39 @@ -3367,8 +3571,7 @@ File { . . . } . . . Children: { . . . . 0: Const { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "T_35" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 830 . . . . . . Line: 39 @@ -3383,8 +3586,15 @@ File { . . . . . . internalRole: consts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BooleanNot { -. . . . . . . Roles: Expression,Operator,Boolean,Not +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "T_35" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_BooleanNot { +. . . . . . . Roles: Boolean,Expression,Not,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 837 . . . . . . . . Line: 39 @@ -3400,7 +3610,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ConstFetch { -. . . . . . . . . Roles: Expression,Variable,Incomplete +. . . . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 838 . . . . . . . . . . Line: 39 diff --git a/fixtures/controlflow.php.native b/fixtures/controlflow.php.native index 3b4edc3..c205861 100644 --- a/fixtures/controlflow.php.native +++ b/fixtures/controlflow.php.native @@ -2,160 +2,163 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 3, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "nodeType": "Stmt_Break", - "num": null - }, - { - "attributes": { - "endFilePos": 21, - "endLine": 4, - "endTokenPos": 8, - "startFilePos": 14, - "startLine": 4, - "startTokenPos": 5 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 3, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Stmt_Break", + "num": null }, - "nodeType": "Stmt_Break", - "num": { + { "attributes": { - "endFilePos": 20, + "endFilePos": 21, "endLine": 4, - "endTokenPos": 7, - "kind": 10, - "startFilePos": 20, + "endTokenPos": 8, + "startFilePos": 14, "startLine": 4, - "startTokenPos": 7 + "startTokenPos": 5 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 32, - "endLine": 6, - "endTokenPos": 11, - "startFilePos": 24, - "startLine": 6, - "startTokenPos": 10 + "nodeType": "Stmt_Break", + "num": { + "attributes": { + "endFilePos": 20, + "endLine": 4, + "endTokenPos": 7, + "kind": 10, + "startFilePos": 20, + "startLine": 4, + "startTokenPos": 7 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "nodeType": "Stmt_Continue", - "num": null - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 7, - "endTokenPos": 16, - "startFilePos": 34, - "startLine": 7, - "startTokenPos": 13 + { + "attributes": { + "endFilePos": 32, + "endLine": 6, + "endTokenPos": 11, + "startFilePos": 24, + "startLine": 6, + "startTokenPos": 10 + }, + "nodeType": "Stmt_Continue", + "num": null }, - "nodeType": "Stmt_Continue", - "num": { + { "attributes": { - "endFilePos": 43, + "endFilePos": 44, "endLine": 7, - "endTokenPos": 15, - "kind": 10, - "startFilePos": 43, + "endTokenPos": 16, + "startFilePos": 34, "startLine": 7, - "startTokenPos": 15 + "startTokenPos": 13 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 9, - "endTokenPos": 19, - "startFilePos": 47, - "startLine": 9, - "startTokenPos": 18 + "nodeType": "Stmt_Continue", + "num": { + "attributes": { + "endFilePos": 43, + "endLine": 7, + "endTokenPos": 15, + "kind": 10, + "startFilePos": 43, + "startLine": 7, + "startTokenPos": 15 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "expr": null, - "nodeType": "Stmt_Return" - }, - { - "attributes": { - "endFilePos": 64, - "endLine": 10, - "endTokenPos": 24, - "startFilePos": 55, - "startLine": 10, - "startTokenPos": 21 + { + "attributes": { + "endFilePos": 53, + "endLine": 9, + "endTokenPos": 19, + "startFilePos": 47, + "startLine": 9, + "startTokenPos": 18 + }, + "expr": null, + "nodeType": "Stmt_Return" }, - "expr": { + { "attributes": { - "endFilePos": 63, + "endFilePos": 64, "endLine": 10, - "endTokenPos": 23, - "startFilePos": 62, + "endTokenPos": 24, + "startFilePos": 55, "startLine": 10, - "startTokenPos": 23 + "startTokenPos": 21 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Return" - }, - { - "attributes": { - "endFilePos": 75, - "endLine": 12, - "endTokenPos": 29, - "startFilePos": 67, - "startLine": 12, - "startTokenPos": 26 + "expr": { + "attributes": { + "endFilePos": 63, + "endLine": 10, + "endTokenPos": 23, + "startFilePos": 62, + "startLine": 10, + "startTokenPos": 23 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Return" }, - "expr": { + { "attributes": { - "endFilePos": 74, + "endFilePos": 75, "endLine": 12, - "endTokenPos": 28, - "startFilePos": 73, + "endTokenPos": 29, + "startFilePos": 67, "startLine": 12, - "startTokenPos": 28 + "startTokenPos": 26 }, - "name": "e", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Throw" - }, - { - "attributes": { - "endFilePos": 83, - "endLine": 14, - "endTokenPos": 32, - "startFilePos": 78, - "startLine": 14, - "startTokenPos": 31 + "expr": { + "attributes": { + "endFilePos": 74, + "endLine": 12, + "endTokenPos": 28, + "startFilePos": 73, + "startLine": 12, + "startTokenPos": 28 + }, + "name": "e", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Throw" }, - "name": "label", - "nodeType": "Stmt_Label" - }, - { - "attributes": { - "endFilePos": 95, - "endLine": 15, - "endTokenPos": 37, - "startFilePos": 85, - "startLine": 15, - "startTokenPos": 34 + { + "attributes": { + "endFilePos": 83, + "endLine": 14, + "endTokenPos": 32, + "startFilePos": 78, + "startLine": 14, + "startTokenPos": 31 + }, + "name": "label", + "nodeType": "Stmt_Label" }, - "name": "label", - "nodeType": "Stmt_Goto" - } - ] + { + "attributes": { + "endFilePos": 95, + "endLine": 15, + "endTokenPos": 37, + "startFilePos": 85, + "startLine": 15, + "startTokenPos": 34 + }, + "name": "label", + "nodeType": "Stmt_Goto" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/controlflow.php.uast b/fixtures/controlflow.php.uast index 0e55593..5d34c33 100644 --- a/fixtures/controlflow.php.uast +++ b/fixtures/controlflow.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Break { -. . . Roles: Statement,Break +. . . Roles: Break,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . } . . 1: Stmt_Break { -. . . Roles: Statement,Break +. . . Roles: Break,Statement . . . StartPosition: { . . . . Offset: 14 . . . . Line: 4 @@ -57,7 +57,7 @@ File { . . . } . . } . . 2: Stmt_Continue { -. . . Roles: Statement,Continue +. . . Roles: Continue,Statement . . . StartPosition: { . . . . Offset: 24 . . . . Line: 6 @@ -73,7 +73,7 @@ File { . . . } . . } . . 3: Stmt_Continue { -. . . Roles: Statement,Continue +. . . Roles: Continue,Statement . . . StartPosition: { . . . . Offset: 34 . . . . Line: 7 @@ -108,7 +108,7 @@ File { . . . } . . } . . 4: Stmt_Return { -. . . Roles: Statement,Return +. . . Roles: Return,Statement . . . StartPosition: { . . . . Offset: 47 . . . . Line: 9 @@ -124,7 +124,7 @@ File { . . . } . . } . . 5: Stmt_Return { -. . . Roles: Statement,Return +. . . Roles: Return,Statement . . . StartPosition: { . . . . Offset: 55 . . . . Line: 10 @@ -141,7 +141,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 62 . . . . . . Line: 10 @@ -155,6 +154,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -176,7 +184,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "e" . . . . . StartPosition: { . . . . . . Offset: 73 . . . . . . Line: 12 @@ -190,12 +197,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Stmt_Label { -. . . Roles: Statement,Goto,Incomplete -. . . TOKEN "label" +. . . Roles: Goto,Incomplete,Statement . . . StartPosition: { . . . . Offset: 78 . . . . Line: 14 @@ -209,10 +224,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "label" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 8: Stmt_Goto { -. . . Roles: Statement,Goto -. . . TOKEN "label" +. . . Roles: Goto,Statement . . . StartPosition: { . . . . Offset: 85 . . . . Line: 15 @@ -226,6 +249,15 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "label" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/declare.php.native b/fixtures/declare.php.native index 5463193..bfe650c 100644 --- a/fixtures/declare.php.native +++ b/fixtures/declare.php.native @@ -2,173 +2,176 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 22, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "declares": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 3, - "endTokenPos": 7, - "startFilePos": 16, - "startLine": 3, - "startTokenPos": 5 - }, - "key": "X", - "nodeType": "Stmt_DeclareDeclare", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 22, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "declares": [ + { "attributes": { "endFilePos": 20, "endLine": 3, "endTokenPos": 7, - "kind": 1, - "startFilePos": 18, + "startFilePos": 16, "startLine": 3, - "startTokenPos": 7 + "startTokenPos": 5 }, - "nodeType": "Scalar_String", - "value": "Y" + "key": "X", + "nodeType": "Stmt_DeclareDeclare", + "value": { + "attributes": { + "endFilePos": 20, + "endLine": 3, + "endTokenPos": 7, + "kind": 1, + "startFilePos": 18, + "startLine": 3, + "startTokenPos": 7 + }, + "nodeType": "Scalar_String", + "value": "Y" + } } - } - ], - "nodeType": "Stmt_Declare", - "stmts": null - }, - { - "attributes": { - "endFilePos": 49, - "endLine": 5, - "endTokenPos": 25, - "startFilePos": 25, - "startLine": 5, - "startTokenPos": 11 + ], + "nodeType": "Stmt_Declare", + "stmts": null }, - "declares": [ - { - "attributes": { - "endFilePos": 38, - "endLine": 5, - "endTokenPos": 16, - "startFilePos": 34, - "startLine": 5, - "startTokenPos": 14 - }, - "key": "A", - "nodeType": "Stmt_DeclareDeclare", - "value": { + { + "attributes": { + "endFilePos": 49, + "endLine": 5, + "endTokenPos": 25, + "startFilePos": 25, + "startLine": 5, + "startTokenPos": 11 + }, + "declares": [ + { "attributes": { "endFilePos": 38, "endLine": 5, "endTokenPos": 16, - "kind": 1, - "startFilePos": 36, + "startFilePos": 34, "startLine": 5, - "startTokenPos": 16 + "startTokenPos": 14 }, - "nodeType": "Scalar_String", - "value": "B" - } - }, - { - "attributes": { - "endFilePos": 45, - "endLine": 5, - "endTokenPos": 21, - "startFilePos": 41, - "startLine": 5, - "startTokenPos": 19 + "key": "A", + "nodeType": "Stmt_DeclareDeclare", + "value": { + "attributes": { + "endFilePos": 38, + "endLine": 5, + "endTokenPos": 16, + "kind": 1, + "startFilePos": 36, + "startLine": 5, + "startTokenPos": 16 + }, + "nodeType": "Scalar_String", + "value": "B" + } }, - "key": "C", - "nodeType": "Stmt_DeclareDeclare", - "value": { + { "attributes": { "endFilePos": 45, "endLine": 5, "endTokenPos": 21, - "kind": 1, - "startFilePos": 43, + "startFilePos": 41, "startLine": 5, - "startTokenPos": 21 + "startTokenPos": 19 }, - "nodeType": "Scalar_String", - "value": "D" + "key": "C", + "nodeType": "Stmt_DeclareDeclare", + "value": { + "attributes": { + "endFilePos": 45, + "endLine": 5, + "endTokenPos": 21, + "kind": 1, + "startFilePos": 43, + "startLine": 5, + "startTokenPos": 21 + }, + "nodeType": "Scalar_String", + "value": "D" + } } - } - ], - "nodeType": "Stmt_Declare", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 86, - "endLine": 8, - "endTokenPos": 42, - "startFilePos": 52, - "startLine": 7, - "startTokenPos": 27 + ], + "nodeType": "Stmt_Declare", + "stmts": [] }, - "declares": [ - { - "attributes": { - "endFilePos": 65, - "endLine": 7, - "endTokenPos": 32, - "startFilePos": 61, - "startLine": 7, - "startTokenPos": 30 - }, - "key": "A", - "nodeType": "Stmt_DeclareDeclare", - "value": { + { + "attributes": { + "endFilePos": 86, + "endLine": 8, + "endTokenPos": 42, + "startFilePos": 52, + "startLine": 7, + "startTokenPos": 27 + }, + "declares": [ + { "attributes": { "endFilePos": 65, "endLine": 7, "endTokenPos": 32, - "kind": 1, - "startFilePos": 63, + "startFilePos": 61, "startLine": 7, - "startTokenPos": 32 + "startTokenPos": 30 }, - "nodeType": "Scalar_String", - "value": "B" - } - }, - { - "attributes": { - "endFilePos": 72, - "endLine": 7, - "endTokenPos": 37, - "startFilePos": 68, - "startLine": 7, - "startTokenPos": 35 + "key": "A", + "nodeType": "Stmt_DeclareDeclare", + "value": { + "attributes": { + "endFilePos": 65, + "endLine": 7, + "endTokenPos": 32, + "kind": 1, + "startFilePos": 63, + "startLine": 7, + "startTokenPos": 32 + }, + "nodeType": "Scalar_String", + "value": "B" + } }, - "key": "C", - "nodeType": "Stmt_DeclareDeclare", - "value": { + { "attributes": { "endFilePos": 72, "endLine": 7, "endTokenPos": 37, - "kind": 1, - "startFilePos": 70, + "startFilePos": 68, "startLine": 7, - "startTokenPos": 37 + "startTokenPos": 35 }, - "nodeType": "Scalar_String", - "value": "D" + "key": "C", + "nodeType": "Stmt_DeclareDeclare", + "value": { + "attributes": { + "endFilePos": 72, + "endLine": 7, + "endTokenPos": 37, + "kind": 1, + "startFilePos": 70, + "startLine": 7, + "startTokenPos": 37 + }, + "nodeType": "Scalar_String", + "value": "D" + } } - } - ], - "nodeType": "Stmt_Declare", - "stmts": [] - } - ] + ], + "nodeType": "Stmt_Declare", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/declare.php.uast b/fixtures/declare.php.uast index 70e81a0..bd838bd 100644 --- a/fixtures/declare.php.uast +++ b/fixtures/declare.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Declare { -. . . Roles: Expression,Assignment,Incomplete +. . . Roles: Assignment,Expression,Incomplete . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -21,7 +21,13 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_DeclareDeclare { +. . . . 0: Declare.stmts { +. . . . . Roles: Assignment,Body +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 1: Stmt_DeclareDeclare { . . . . . Roles: Identifier,Left . . . . . TOKEN "X" . . . . . StartPosition: { @@ -39,7 +45,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Right +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . TOKEN "Y" . . . . . . . StartPosition: { . . . . . . . . Offset: 18 @@ -60,7 +66,7 @@ File { . . . } . . } . . 1: Stmt_Declare { -. . . Roles: Expression,Assignment,Incomplete +. . . Roles: Assignment,Expression,Incomplete . . . StartPosition: { . . . . Offset: 25 . . . . Line: 5 @@ -75,7 +81,13 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_DeclareDeclare { +. . . . 0: Declare.stmts { +. . . . . Roles: Assignment,Body +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 1: Stmt_DeclareDeclare { . . . . . Roles: Identifier,Left . . . . . TOKEN "A" . . . . . StartPosition: { @@ -93,7 +105,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Right +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . TOKEN "B" . . . . . . . StartPosition: { . . . . . . . . Offset: 36 @@ -111,7 +123,7 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_DeclareDeclare { +. . . . 2: Stmt_DeclareDeclare { . . . . . Roles: Identifier,Left . . . . . TOKEN "C" . . . . . StartPosition: { @@ -129,7 +141,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Right +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . TOKEN "D" . . . . . . . StartPosition: { . . . . . . . . Offset: 43 @@ -150,7 +162,7 @@ File { . . . } . . } . . 2: Stmt_Declare { -. . . Roles: Expression,Assignment,Incomplete +. . . Roles: Assignment,Expression,Incomplete . . . StartPosition: { . . . . Offset: 52 . . . . Line: 7 @@ -165,7 +177,13 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_DeclareDeclare { +. . . . 0: Declare.stmts { +. . . . . Roles: Assignment,Body +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 1: Stmt_DeclareDeclare { . . . . . Roles: Identifier,Left . . . . . TOKEN "A" . . . . . StartPosition: { @@ -183,7 +201,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Right +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . TOKEN "B" . . . . . . . StartPosition: { . . . . . . . . Offset: 63 @@ -201,7 +219,7 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_DeclareDeclare { +. . . . 2: Stmt_DeclareDeclare { . . . . . Roles: Identifier,Left . . . . . TOKEN "C" . . . . . StartPosition: { @@ -219,7 +237,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Right +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . TOKEN "D" . . . . . . . StartPosition: { . . . . . . . . Offset: 70 diff --git a/fixtures/echo.php.native b/fixtures/echo.php.native index 3d42b6e..9d07bd2 100644 --- a/fixtures/echo.php.native +++ b/fixtures/echo.php.native @@ -2,97 +2,100 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 26, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "exprs": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 3, - "endTokenPos": 4, - "kind": 1, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 4 - }, - "nodeType": "Scalar_String", - "value": "Hallo World!" - } - ], - "nodeType": "Stmt_Echo" - }, - { - "attributes": { - "endFilePos": 59, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 7 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 26, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "exprs": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 3, + "endTokenPos": 4, + "kind": 1, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "Hallo World!" + } + ], + "nodeType": "Stmt_Echo" }, - "exprs": [ - { - "attributes": { - "endFilePos": 39, - "endLine": 4, - "endTokenPos": 9, - "kind": 1, - "startFilePos": 33, - "startLine": 4, - "startTokenPos": 9 - }, - "nodeType": "Scalar_String", - "value": "Hallo" + { + "attributes": { + "endFilePos": 59, + "endLine": 4, + "endTokenPos": 19, + "startFilePos": 28, + "startLine": 4, + "startTokenPos": 7 }, - { - "attributes": { - "endFilePos": 44, - "endLine": 4, - "endTokenPos": 12, - "kind": 1, - "startFilePos": 42, - "startLine": 4, - "startTokenPos": 12 + "exprs": [ + { + "attributes": { + "endFilePos": 39, + "endLine": 4, + "endTokenPos": 9, + "kind": 1, + "startFilePos": 33, + "startLine": 4, + "startTokenPos": 9 + }, + "nodeType": "Scalar_String", + "value": "Hallo" }, - "nodeType": "Scalar_String", - "value": " " - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 4, - "endTokenPos": 15, - "kind": 1, - "startFilePos": 47, - "startLine": 4, - "startTokenPos": 15 + { + "attributes": { + "endFilePos": 44, + "endLine": 4, + "endTokenPos": 12, + "kind": 1, + "startFilePos": 42, + "startLine": 4, + "startTokenPos": 12 + }, + "nodeType": "Scalar_String", + "value": " " }, - "nodeType": "Scalar_String", - "value": "World" - }, - { - "attributes": { - "endFilePos": 58, - "endLine": 4, - "endTokenPos": 18, - "kind": 1, - "startFilePos": 56, - "startLine": 4, - "startTokenPos": 18 + { + "attributes": { + "endFilePos": 53, + "endLine": 4, + "endTokenPos": 15, + "kind": 1, + "startFilePos": 47, + "startLine": 4, + "startTokenPos": 15 + }, + "nodeType": "Scalar_String", + "value": "World" }, - "nodeType": "Scalar_String", - "value": "!" - } - ], - "nodeType": "Stmt_Echo" - } - ] + { + "attributes": { + "endFilePos": 58, + "endLine": 4, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 56, + "startLine": 4, + "startTokenPos": 18 + }, + "nodeType": "Scalar_String", + "value": "!" + } + ], + "nodeType": "Stmt_Echo" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/echo.php.uast b/fixtures/echo.php.uast index d29cc42..c269ca0 100644 --- a/fixtures/echo.php.uast +++ b/fixtures/echo.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Echo { -. . . Roles: Statement,Call -. . . TOKEN "echo" +. . . Roles: Call,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -42,8 +41,7 @@ File { . . . } . . } . . 1: Stmt_Echo { -. . . Roles: Statement,Call -. . . TOKEN "echo" +. . . Roles: Call,Statement . . . StartPosition: { . . . . Offset: 28 . . . . Line: 4 diff --git a/fixtures/empty.php b/fixtures/empty.php deleted file mode 100644 index e69de29..0000000 diff --git a/fixtures/empty.php.native b/fixtures/empty.php.native deleted file mode 100644 index 0a940b8..0000000 --- a/fixtures/empty.php.native +++ /dev/null @@ -1,6 +0,0 @@ -{ - "status": "ok", - "language": "", - "errors": [], - "ast": null -} diff --git a/fixtures/empty.php.uast b/fixtures/empty.php.uast deleted file mode 100644 index 5001938..0000000 --- a/fixtures/empty.php.uast +++ /dev/null @@ -1,5 +0,0 @@ -Status: ok -Language: -Errors: -UAST: - diff --git a/fixtures/error_supress.php.native b/fixtures/error_supress.php.native index a92f390..1089487 100644 --- a/fixtures/error_supress.php.native +++ b/fixtures/error_supress.php.native @@ -2,29 +2,32 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 8, - "endLine": 2, - "endTokenPos": 2, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 8, "endLine": 2, "endTokenPos": 2, - "startFilePos": 7, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 2 + "startTokenPos": 1 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_ErrorSuppress" - } - ] + "expr": { + "attributes": { + "endFilePos": 8, + "endLine": 2, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 2, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ErrorSuppress" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/error_supress.php.uast b/fixtures/error_supress.php.uast index cabd9cf..b2ad84e 100644 --- a/fixtures/error_supress.php.uast +++ b/fixtures/error_supress.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ErrorSuppress { . . . Roles: Expression,Incomplete @@ -23,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 2 @@ -37,6 +36,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/eval.php.native b/fixtures/eval.php.native index 8a22992..8ffe019 100644 --- a/fixtures/eval.php.native +++ b/fixtures/eval.php.native @@ -2,30 +2,33 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 15, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 14, + "endFilePos": 15, "endLine": 3, - "endTokenPos": 4, - "kind": 2, - "startFilePos": 12, + "endTokenPos": 5, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "nodeType": "Scalar_String", - "value": "1" - }, - "nodeType": "Expr_Eval" - } - ] + "expr": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 4, + "kind": 2, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "1" + }, + "nodeType": "Expr_Eval" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/eval.php.uast b/fixtures/eval.php.uast index 78d8473..4a3aaf1 100644 --- a/fixtures/eval.php.uast +++ b/fixtures/eval.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Eval { -. . . Roles: Expression,Call -. . . TOKEN "eval" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 diff --git a/fixtures/exit.php.native b/fixtures/exit.php.native index 3c3bf4f..2cf46ff 100644 --- a/fixtures/exit.php.native +++ b/fixtures/exit.php.native @@ -2,108 +2,111 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 9, - "endLine": 2, - "endTokenPos": 1, - "kind": 1, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": null, - "nodeType": "Expr_Exit" - }, - { - "attributes": { - "endFilePos": 17, - "endLine": 3, - "endTokenPos": 6, - "kind": 1, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 4 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 9, + "endLine": 2, + "endTokenPos": 1, + "kind": 1, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "expr": null, + "nodeType": "Expr_Exit" }, - "expr": null, - "nodeType": "Expr_Exit" - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 12, - "kind": 1, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 9 + { + "attributes": { + "endFilePos": 17, + "endLine": 3, + "endTokenPos": 6, + "kind": 1, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 4 + }, + "expr": null, + "nodeType": "Expr_Exit" }, - "expr": { + { "attributes": { - "endFilePos": 30, + "endFilePos": 31, "endLine": 4, - "endTokenPos": 11, + "endTokenPos": 12, "kind": 1, - "startFilePos": 25, + "startFilePos": 20, "startLine": 4, - "startTokenPos": 11 + "startTokenPos": 9 }, - "nodeType": "Scalar_String", - "value": "Die!" - }, - "nodeType": "Expr_Exit" - }, - { - "attributes": { - "endFilePos": 36, - "endLine": 5, - "endTokenPos": 15, - "kind": 2, - "startFilePos": 34, - "startLine": 5, - "startTokenPos": 15 + "expr": { + "attributes": { + "endFilePos": 30, + "endLine": 4, + "endTokenPos": 11, + "kind": 1, + "startFilePos": 25, + "startLine": 4, + "startTokenPos": 11 + }, + "nodeType": "Scalar_String", + "value": "Die!" + }, + "nodeType": "Expr_Exit" }, - "expr": null, - "nodeType": "Expr_Exit" - }, - { - "attributes": { - "endFilePos": 43, - "endLine": 6, - "endTokenPos": 20, - "kind": 2, - "startFilePos": 39, - "startLine": 6, - "startTokenPos": 18 + { + "attributes": { + "endFilePos": 36, + "endLine": 5, + "endTokenPos": 15, + "kind": 2, + "startFilePos": 34, + "startLine": 5, + "startTokenPos": 15 + }, + "expr": null, + "nodeType": "Expr_Exit" }, - "expr": null, - "nodeType": "Expr_Exit" - }, - { - "attributes": { - "endFilePos": 57, - "endLine": 7, - "endTokenPos": 26, - "kind": 2, - "startFilePos": 46, - "startLine": 7, - "startTokenPos": 23 + { + "attributes": { + "endFilePos": 43, + "endLine": 6, + "endTokenPos": 20, + "kind": 2, + "startFilePos": 39, + "startLine": 6, + "startTokenPos": 18 + }, + "expr": null, + "nodeType": "Expr_Exit" }, - "expr": { + { "attributes": { - "endFilePos": 56, + "endFilePos": 57, "endLine": 7, - "endTokenPos": 25, - "kind": 1, - "startFilePos": 50, + "endTokenPos": 26, + "kind": 2, + "startFilePos": 46, "startLine": 7, - "startTokenPos": 25 + "startTokenPos": 23 }, - "nodeType": "Scalar_String", - "value": "Exit!" - }, - "nodeType": "Expr_Exit" - } - ] + "expr": { + "attributes": { + "endFilePos": 56, + "endLine": 7, + "endTokenPos": 25, + "kind": 1, + "startFilePos": 50, + "startLine": 7, + "startTokenPos": 25 + }, + "nodeType": "Scalar_String", + "value": "Exit!" + }, + "nodeType": "Expr_Exit" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/exit.php.uast b/fixtures/exit.php.uast index 31bdecc..e878d41 100644 --- a/fixtures/exit.php.uast +++ b/fixtures/exit.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Exit { -. . . Roles: Expression,Call -. . . TOKEN "exit" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,8 +22,7 @@ File { . . . } . . } . . 1: Expr_Exit { -. . . Roles: Expression,Call -. . . TOKEN "exit" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 12 . . . . Line: 3 @@ -40,8 +38,7 @@ File { . . . } . . } . . 2: Expr_Exit { -. . . Roles: Expression,Call -. . . TOKEN "exit" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 20 . . . . Line: 4 @@ -76,8 +73,7 @@ File { . . . } . . } . . 3: Expr_Exit { -. . . Roles: Expression,Call -. . . TOKEN "exit" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 34 . . . . Line: 5 @@ -93,8 +89,7 @@ File { . . . } . . } . . 4: Expr_Exit { -. . . Roles: Expression,Call -. . . TOKEN "exit" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 39 . . . . Line: 6 @@ -110,8 +105,7 @@ File { . . . } . . } . . 5: Expr_Exit { -. . . Roles: Expression,Call -. . . TOKEN "exit" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 46 . . . . Line: 7 diff --git a/fixtures/for.php b/fixtures/for.php index bec9099..887cfa1 100644 --- a/fixtures/for.php +++ b/fixtures/for.php @@ -2,6 +2,6 @@ for ($i = 0; $i < $c; ++$i) {} for ($a, $b; $c, $d; $e, $f) {} -for (;;) {} +for (;;) { print "foo"; print 3; } for (;;): endfor; diff --git a/fixtures/for.php.native b/fixtures/for.php.native index 7bb5e06..813baf2 100644 --- a/fixtures/for.php.native +++ b/fixtures/for.php.native @@ -2,238 +2,290 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 3, - "endTokenPos": 24, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": [ - { - "attributes": { - "endFilePos": 26, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 20, - "startLine": 3, - "startTokenPos": 12 - }, - "left": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 36, + "endLine": 3, + "endTokenPos": 24, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "cond": [ + { "attributes": { - "endFilePos": 21, + "endFilePos": 26, "endLine": 3, - "endTokenPos": 12, + "endTokenPos": 16, "startFilePos": 20, "startLine": 3, "startTokenPos": 12 }, - "name": "i", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Smaller", - "right": { - "attributes": { - "endFilePos": 26, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 25, - "startLine": 3, - "startTokenPos": 16 + "left": { + "attributes": { + "endFilePos": 21, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 20, + "startLine": 3, + "startTokenPos": 12 + }, + "name": "i", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BinaryOp_Smaller", + "right": { + "attributes": { + "endFilePos": 26, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 25, + "startLine": 3, + "startTokenPos": 16 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - ], - "init": [ - { - "attributes": { - "endFilePos": 17, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 5 - }, - "expr": { + ], + "init": [ + { "attributes": { "endFilePos": 17, "endLine": 3, "endTokenPos": 9, - "kind": 10, - "startFilePos": 17, - "startLine": 3, - "startTokenPos": 9 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 5, "startFilePos": 12, "startLine": 3, "startTokenPos": 5 }, - "name": "i", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 17, + "endLine": 3, + "endTokenPos": 9, + "kind": 10, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 9 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 5 + }, + "name": "i", + "nodeType": "Expr_Variable" + } } - } - ], - "loop": [ - { - "attributes": { - "endFilePos": 32, - "endLine": 3, - "endTokenPos": 20, - "startFilePos": 29, - "startLine": 3, - "startTokenPos": 19 - }, - "nodeType": "Expr_PreInc", - "var": { + ], + "loop": [ + { "attributes": { "endFilePos": 32, "endLine": 3, "endTokenPos": 20, - "startFilePos": 31, + "startFilePos": 29, "startLine": 3, - "startTokenPos": 20 + "startTokenPos": 19 }, - "name": "i", - "nodeType": "Expr_Variable" + "nodeType": "Expr_PreInc", + "var": { + "attributes": { + "endFilePos": 32, + "endLine": 3, + "endTokenPos": 20, + "startFilePos": 31, + "startLine": 3, + "startTokenPos": 20 + }, + "name": "i", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Stmt_For", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 68, - "endLine": 4, - "endTokenPos": 48, - "startFilePos": 38, - "startLine": 4, - "startTokenPos": 26 + ], + "nodeType": "Stmt_For", + "stmts": [] }, - "cond": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 4, - "endTokenPos": 35, - "startFilePos": 51, - "startLine": 4, - "startTokenPos": 35 - }, - "name": "c", - "nodeType": "Expr_Variable" + { + "attributes": { + "endFilePos": 68, + "endLine": 4, + "endTokenPos": 48, + "startFilePos": 38, + "startLine": 4, + "startTokenPos": 26 }, - { - "attributes": { - "endFilePos": 56, - "endLine": 4, - "endTokenPos": 38, - "startFilePos": 55, - "startLine": 4, - "startTokenPos": 38 - }, - "name": "d", - "nodeType": "Expr_Variable" - } - ], - "init": [ - { - "attributes": { - "endFilePos": 44, - "endLine": 4, - "endTokenPos": 29, - "startFilePos": 43, - "startLine": 4, - "startTokenPos": 29 + "cond": [ + { + "attributes": { + "endFilePos": 52, + "endLine": 4, + "endTokenPos": 35, + "startFilePos": 51, + "startLine": 4, + "startTokenPos": 35 + }, + "name": "c", + "nodeType": "Expr_Variable" }, - "name": "a", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 48, - "endLine": 4, - "endTokenPos": 32, - "startFilePos": 47, - "startLine": 4, - "startTokenPos": 32 + { + "attributes": { + "endFilePos": 56, + "endLine": 4, + "endTokenPos": 38, + "startFilePos": 55, + "startLine": 4, + "startTokenPos": 38 + }, + "name": "d", + "nodeType": "Expr_Variable" + } + ], + "init": [ + { + "attributes": { + "endFilePos": 44, + "endLine": 4, + "endTokenPos": 29, + "startFilePos": 43, + "startLine": 4, + "startTokenPos": 29 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - ], - "loop": [ - { - "attributes": { - "endFilePos": 60, - "endLine": 4, - "endTokenPos": 41, - "startFilePos": 59, - "startLine": 4, - "startTokenPos": 41 + { + "attributes": { + "endFilePos": 48, + "endLine": 4, + "endTokenPos": 32, + "startFilePos": 47, + "startLine": 4, + "startTokenPos": 32 + }, + "name": "b", + "nodeType": "Expr_Variable" + } + ], + "loop": [ + { + "attributes": { + "endFilePos": 60, + "endLine": 4, + "endTokenPos": 41, + "startFilePos": 59, + "startLine": 4, + "startTokenPos": 41 + }, + "name": "e", + "nodeType": "Expr_Variable" }, - "name": "e", - "nodeType": "Expr_Variable" + { + "attributes": { + "endFilePos": 64, + "endLine": 4, + "endTokenPos": 44, + "startFilePos": 63, + "startLine": 4, + "startTokenPos": 44 + }, + "name": "f", + "nodeType": "Expr_Variable" + } + ], + "nodeType": "Stmt_For", + "stmts": [] + }, + { + "attributes": { + "endFilePos": 103, + "endLine": 5, + "endTokenPos": 69, + "startFilePos": 70, + "startLine": 5, + "startTokenPos": 50 }, - { - "attributes": { - "endFilePos": 64, - "endLine": 4, - "endTokenPos": 44, - "startFilePos": 63, - "startLine": 4, - "startTokenPos": 44 + "cond": [], + "init": [], + "loop": [], + "nodeType": "Stmt_For", + "stmts": [ + { + "attributes": { + "endFilePos": 91, + "endLine": 5, + "endTokenPos": 61, + "startFilePos": 81, + "startLine": 5, + "startTokenPos": 59 + }, + "expr": { + "attributes": { + "endFilePos": 91, + "endLine": 5, + "endTokenPos": 61, + "kind": 2, + "startFilePos": 87, + "startLine": 5, + "startTokenPos": 61 + }, + "nodeType": "Scalar_String", + "value": "foo" + }, + "nodeType": "Expr_Print" }, - "name": "f", - "nodeType": "Expr_Variable" - } - ], - "nodeType": "Stmt_For", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 80, - "endLine": 5, - "endTokenPos": 58, - "startFilePos": 70, - "startLine": 5, - "startTokenPos": 50 - }, - "cond": [], - "init": [], - "loop": [], - "nodeType": "Stmt_For", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 98, - "endLine": 7, - "endTokenPos": 69, - "startFilePos": 82, - "startLine": 6, - "startTokenPos": 60 + { + "attributes": { + "endFilePos": 100, + "endLine": 5, + "endTokenPos": 66, + "startFilePos": 94, + "startLine": 5, + "startTokenPos": 64 + }, + "expr": { + "attributes": { + "endFilePos": 100, + "endLine": 5, + "endTokenPos": 66, + "kind": 10, + "startFilePos": 100, + "startLine": 5, + "startTokenPos": 66 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + }, + "nodeType": "Expr_Print" + } + ] }, - "cond": [], - "init": [], - "loop": [], - "nodeType": "Stmt_For", - "stmts": [] - } - ] + { + "attributes": { + "endFilePos": 121, + "endLine": 7, + "endTokenPos": 80, + "startFilePos": 105, + "startLine": 6, + "startTokenPos": 71 + }, + "cond": [], + "init": [], + "loop": [], + "nodeType": "Stmt_For", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/for.php.uast b/fixtures/for.php.uast index aa87812..5eb9a1a 100644 --- a/fixtures/for.php.uast +++ b/fixtures/for.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_For { -. . . Roles: Statement,For +. . . Roles: For,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Assign { -. . . . . Roles: Expression,Assignment,For,Initialization +. . . . . Roles: Assignment,Expression,For,Initialization . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 3 @@ -38,8 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "i" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 12 . . . . . . . . Line: 3 @@ -53,9 +52,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "i" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_LNumber { -. . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . TOKEN "0" . . . . . . . StartPosition: { . . . . . . . . Offset: 17 @@ -74,7 +82,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_BinaryOp_Smaller { -. . . . . Roles: Condition,Expression,Binary,Operator,Relational,LessThan,For +. . . . . Roles: Binary,Condition,Expression,For,LessThan,Operator,Relational . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 3 @@ -90,8 +98,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "i" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 20 . . . . . . . . Line: 3 @@ -105,10 +112,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "i" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 25 . . . . . . . . Line: 3 @@ -122,11 +137,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_PreInc { -. . . . . Roles: Expression,Unary,Increment,For,Update +. . . . . Roles: Expression,For,Increment,Unary,Update . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 3 @@ -143,7 +167,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "i" . . . . . . . StartPosition: { . . . . . . . . Offset: 31 . . . . . . . . Line: 3 @@ -157,13 +180,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "i" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 1: Stmt_For { -. . . Roles: Statement,For +. . . Roles: For,Statement . . . StartPosition: { . . . . Offset: 38 . . . . Line: 4 @@ -179,8 +211,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,For,Initialization -. . . . . TOKEN "a" +. . . . . Roles: Expression,For,Identifier,Initialization,Variable . . . . . StartPosition: { . . . . . . Offset: 43 . . . . . . Line: 4 @@ -194,10 +225,18 @@ File { . . . . . Properties: { . . . . . . internalRole: init . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,For,Initialization -. . . . . TOKEN "b" +. . . . . Roles: Expression,For,Identifier,Initialization,Variable . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 4 @@ -211,10 +250,18 @@ File { . . . . . Properties: { . . . . . . internalRole: init . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition,For -. . . . . TOKEN "c" +. . . . . Roles: Condition,For,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 51 . . . . . . Line: 4 @@ -228,10 +275,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 3: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition,For -. . . . . TOKEN "d" +. . . . . Roles: Condition,For,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 55 . . . . . . Line: 4 @@ -245,10 +300,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 4: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,For,Update -. . . . . TOKEN "e" +. . . . . Roles: Expression,For,Identifier,Update,Variable . . . . . StartPosition: { . . . . . . Offset: 59 . . . . . . Line: 4 @@ -262,10 +325,18 @@ File { . . . . . Properties: { . . . . . . internalRole: loop . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 5: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,For,Update -. . . . . TOKEN "f" +. . . . . Roles: Expression,For,Identifier,Update,Variable . . . . . StartPosition: { . . . . . . Offset: 63 . . . . . . Line: 4 @@ -279,34 +350,115 @@ File { . . . . . Properties: { . . . . . . internalRole: loop . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Stmt_For { -. . . Roles: Statement,For +. . . Roles: For,Statement . . . StartPosition: { . . . . Offset: 70 . . . . Line: 5 . . . . Col: 1 . . . } . . . EndPosition: { -. . . . Offset: 80 +. . . . Offset: 103 . . . . Line: 5 -. . . . Col: 11 +. . . . Col: 34 . . . } . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Expr_Print { +. . . . . Roles: Body,Call,For,Statement +. . . . . StartPosition: { +. . . . . . Offset: 81 +. . . . . . Line: 5 +. . . . . . Col: 12 +. . . . . } +. . . . . EndPosition: { +. . . . . . Offset: 91 +. . . . . . Line: 5 +. . . . . . Col: 22 +. . . . . } +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . . Children: { +. . . . . . 0: Scalar_String { +. . . . . . . Roles: Expression,Literal,String +. . . . . . . TOKEN "foo" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 87 +. . . . . . . . Line: 5 +. . . . . . . . Col: 18 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 91 +. . . . . . . . Line: 5 +. . . . . . . . Col: 22 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: expr +. . . . . . . } +. . . . . . } +. . . . . } +. . . . } +. . . . 1: Expr_Print { +. . . . . Roles: Body,Call,For,Statement +. . . . . StartPosition: { +. . . . . . Offset: 94 +. . . . . . Line: 5 +. . . . . . Col: 25 +. . . . . } +. . . . . EndPosition: { +. . . . . . Offset: 100 +. . . . . . Line: 5 +. . . . . . Col: 31 +. . . . . } +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . . Children: { +. . . . . . 0: Scalar_LNumber { +. . . . . . . Roles: Expression,Literal,Number +. . . . . . . TOKEN "3" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 100 +. . . . . . . . Line: 5 +. . . . . . . . Col: 31 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 100 +. . . . . . . . Line: 5 +. . . . . . . . Col: 31 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: expr +. . . . . . . } +. . . . . . } +. . . . . } +. . . . } +. . . } . . } . . 3: Stmt_For { -. . . Roles: Statement,For +. . . Roles: For,Statement . . . StartPosition: { -. . . . Offset: 82 +. . . . Offset: 105 . . . . Line: 6 . . . . Col: 1 . . . } . . . EndPosition: { -. . . . Offset: 98 +. . . . Offset: 121 . . . . Line: 7 . . . . Col: 7 . . . } diff --git a/fixtures/foreach.php.native b/fixtures/foreach.php.native index 6cfa8da..acf4b3f 100644 --- a/fixtures/foreach.php.native +++ b/fixtures/foreach.php.native @@ -2,237 +2,226 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 7, - "line": 3, - "nodeType": "Comment", - "text": "// foreach on variable\n" - } - ], - "endFilePos": 51, - "endLine": 4, - "endTokenPos": 14, - "startFilePos": 30, - "startLine": 4, - "startTokenPos": 3 - }, - "byRef": false, - "expr": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 40, + "comments": [ + { + "filePos": 7, + "line": 3, + "nodeType": "Comment", + "text": "// foreach on variable\n" + } + ], + "endFilePos": 51, "endLine": 4, - "endTokenPos": 6, - "startFilePos": 39, + "endTokenPos": 14, + "startFilePos": 30, "startLine": 4, - "startTokenPos": 6 + "startTokenPos": 3 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": null, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 46, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 45, - "startLine": 4, - "startTokenPos": 10 + "byRef": false, + "expr": { + "attributes": { + "endFilePos": 40, + "endLine": 4, + "endTokenPos": 6, + "startFilePos": 39, + "startLine": 4, + "startTokenPos": 6 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 74, - "endLine": 5, - "endTokenPos": 28, - "startFilePos": 53, - "startLine": 5, - "startTokenPos": 16 + "keyVar": null, + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 46, + "endLine": 4, + "endTokenPos": 10, + "startFilePos": 45, + "startLine": 4, + "startTokenPos": 10 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "byRef": true, - "expr": { + { "attributes": { - "endFilePos": 63, + "endFilePos": 74, "endLine": 5, - "endTokenPos": 19, - "startFilePos": 62, + "endTokenPos": 28, + "startFilePos": 53, "startLine": 5, - "startTokenPos": 19 + "startTokenPos": 16 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": null, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 70, - "endLine": 5, - "endTokenPos": 24, - "startFilePos": 69, - "startLine": 5, - "startTokenPos": 24 + "byRef": true, + "expr": { + "attributes": { + "endFilePos": 63, + "endLine": 5, + "endTokenPos": 19, + "startFilePos": 62, + "startLine": 5, + "startTokenPos": 19 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 102, - "endLine": 6, - "endTokenPos": 45, - "startFilePos": 76, - "startLine": 6, - "startTokenPos": 30 + "keyVar": null, + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 70, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 69, + "startLine": 5, + "startTokenPos": 24 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "expr": { + { "attributes": { - "endFilePos": 86, + "endFilePos": 102, "endLine": 6, - "endTokenPos": 33, - "startFilePos": 85, + "endTokenPos": 45, + "startFilePos": 76, "startLine": 6, - "startTokenPos": 33 + "startTokenPos": 30 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": { - "attributes": { - "endFilePos": 92, - "endLine": 6, - "endTokenPos": 37, - "startFilePos": 91, - "startLine": 6, - "startTokenPos": 37 + "byRef": false, + "expr": { + "attributes": { + "endFilePos": 86, + "endLine": 6, + "endTokenPos": 33, + "startFilePos": 85, + "startLine": 6, + "startTokenPos": 33 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 98, - "endLine": 6, - "endTokenPos": 41, - "startFilePos": 97, - "startLine": 6, - "startTokenPos": 41 + "keyVar": { + "attributes": { + "endFilePos": 92, + "endLine": 6, + "endTokenPos": 37, + "startFilePos": 91, + "startLine": 6, + "startTokenPos": 37 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 131, - "endLine": 7, - "endTokenPos": 63, - "startFilePos": 104, - "startLine": 7, - "startTokenPos": 47 + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 98, + "endLine": 6, + "endTokenPos": 41, + "startFilePos": 97, + "startLine": 6, + "startTokenPos": 41 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "byRef": true, - "expr": { + { "attributes": { - "endFilePos": 114, + "endFilePos": 131, "endLine": 7, - "endTokenPos": 50, - "startFilePos": 113, + "endTokenPos": 63, + "startFilePos": 104, "startLine": 7, - "startTokenPos": 50 + "startTokenPos": 47 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": { - "attributes": { - "endFilePos": 120, - "endLine": 7, - "endTokenPos": 54, - "startFilePos": 119, - "startLine": 7, - "startTokenPos": 54 + "byRef": true, + "expr": { + "attributes": { + "endFilePos": 114, + "endLine": 7, + "endTokenPos": 50, + "startFilePos": 113, + "startLine": 7, + "startTokenPos": 50 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 127, - "endLine": 7, - "endTokenPos": 59, - "startFilePos": 126, - "startLine": 7, - "startTokenPos": 59 + "keyVar": { + "attributes": { + "endFilePos": 120, + "endLine": 7, + "endTokenPos": 54, + "startFilePos": 119, + "startLine": 7, + "startTokenPos": 54 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 163, - "endLine": 8, - "endTokenPos": 82, - "startFilePos": 133, - "startLine": 8, - "startTokenPos": 65 + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 127, + "endLine": 7, + "endTokenPos": 59, + "startFilePos": 126, + "startLine": 7, + "startTokenPos": 59 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "expr": { + { "attributes": { - "endFilePos": 143, + "endFilePos": 163, "endLine": 8, - "endTokenPos": 68, - "startFilePos": 142, + "endTokenPos": 82, + "startFilePos": 133, "startLine": 8, - "startTokenPos": 68 + "startTokenPos": 65 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": null, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 159, - "endLine": 8, - "endTokenPos": 78, - "startFilePos": 148, - "startLine": 8, - "startTokenPos": 72 + "byRef": false, + "expr": { + "attributes": { + "endFilePos": 143, + "endLine": 8, + "endTokenPos": 68, + "startFilePos": 142, + "startLine": 8, + "startTokenPos": 68 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "items": [ - { - "attributes": { - "endFilePos": 154, - "endLine": 8, - "endTokenPos": 74, - "startFilePos": 153, - "startLine": 8, - "startTokenPos": 74 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "keyVar": null, + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 159, + "endLine": 8, + "endTokenPos": 78, + "startFilePos": 148, + "startLine": 8, + "startTokenPos": 72 + }, + "items": [ + { "attributes": { "endFilePos": 154, "endLine": 8, @@ -241,23 +230,23 @@ "startLine": 8, "startTokenPos": 74 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 158, - "endLine": 8, - "endTokenPos": 77, - "startFilePos": 157, - "startLine": 8, - "startTokenPos": 77 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 154, + "endLine": 8, + "endTokenPos": 74, + "startFilePos": 153, + "startLine": 8, + "startTokenPos": 74 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 158, "endLine": 8, @@ -266,73 +255,73 @@ "startLine": 8, "startTokenPos": 77 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 158, + "endLine": 8, + "endTokenPos": 77, + "startFilePos": 157, + "startLine": 8, + "startTokenPos": 77 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_List" - } - }, - { - "attributes": { - "endFilePos": 203, - "endLine": 9, - "endTokenPos": 107, - "startFilePos": 165, - "startLine": 9, - "startTokenPos": 84 + ], + "nodeType": "Expr_List" + } }, - "byRef": false, - "expr": { + { "attributes": { - "endFilePos": 175, + "endFilePos": 203, "endLine": 9, - "endTokenPos": 87, - "startFilePos": 174, + "endTokenPos": 107, + "startFilePos": 165, "startLine": 9, - "startTokenPos": 87 + "startTokenPos": 84 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": { - "attributes": { - "endFilePos": 181, - "endLine": 9, - "endTokenPos": 91, - "startFilePos": 180, - "startLine": 9, - "startTokenPos": 91 + "byRef": false, + "expr": { + "attributes": { + "endFilePos": 175, + "endLine": 9, + "endTokenPos": 87, + "startFilePos": 174, + "startLine": 9, + "startTokenPos": 87 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 199, - "endLine": 9, - "endTokenPos": 103, - "startFilePos": 186, - "startLine": 9, - "startTokenPos": 95 + "keyVar": { + "attributes": { + "endFilePos": 181, + "endLine": 9, + "endTokenPos": 91, + "startFilePos": 180, + "startLine": 9, + "startTokenPos": 91 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "items": [ - { - "attributes": { - "endFilePos": 192, - "endLine": 9, - "endTokenPos": 97, - "startFilePos": 191, - "startLine": 9, - "startTokenPos": 97 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 199, + "endLine": 9, + "endTokenPos": 103, + "startFilePos": 186, + "startLine": 9, + "startTokenPos": 95 + }, + "items": [ + { "attributes": { "endFilePos": 192, "endLine": 9, @@ -341,24 +330,24 @@ "startLine": 9, "startTokenPos": 97 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - null, - { - "attributes": { - "endFilePos": 198, - "endLine": 9, - "endTokenPos": 102, - "startFilePos": 197, - "startLine": 9, - "startTokenPos": 102 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 192, + "endLine": 9, + "endTokenPos": 97, + "startFilePos": 191, + "startLine": 9, + "startTokenPos": 97 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + null, + { "attributes": { "endFilePos": 198, "endLine": 9, @@ -367,90 +356,104 @@ "startLine": 9, "startTokenPos": 102 }, - "name": "c", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 198, + "endLine": 9, + "endTokenPos": 102, + "startFilePos": 197, + "startLine": 9, + "startTokenPos": 102 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_List" - } - }, - { - "attributes": { - "endFilePos": 230, - "endLine": 10, - "endTokenPos": 122, - "startFilePos": 205, - "startLine": 10, - "startTokenPos": 109 + ], + "nodeType": "Expr_List" + } }, - "byRef": false, - "expr": { + { "attributes": { - "endFilePos": 220, + "endFilePos": 230, "endLine": 10, - "endTokenPos": 114, - "kind": 1, - "startFilePos": 214, + "endTokenPos": 122, + "startFilePos": 205, "startLine": 10, - "startTokenPos": 112 + "startTokenPos": 109 }, - "items": [], - "nodeType": "Expr_Array" - }, - "keyVar": null, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 226, - "endLine": 10, - "endTokenPos": 118, - "startFilePos": 225, - "startLine": 10, - "startTokenPos": 118 + "byRef": false, + "expr": { + "attributes": { + "endFilePos": 220, + "endLine": 10, + "endTokenPos": 114, + "kind": 1, + "startFilePos": 214, + "startLine": 10, + "startTokenPos": 112 + }, + "items": [], + "nodeType": "Expr_Array" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 262, - "endLine": 12, - "endTokenPos": 136, - "startFilePos": 232, - "startLine": 11, - "startTokenPos": 124 + "keyVar": null, + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 226, + "endLine": 10, + "endTokenPos": 118, + "startFilePos": 225, + "startLine": 10, + "startTokenPos": 118 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "expr": { + { "attributes": { - "endFilePos": 242, - "endLine": 11, - "endTokenPos": 127, - "startFilePos": 241, + "endFilePos": 262, + "endLine": 12, + "endTokenPos": 136, + "startFilePos": 232, "startLine": 11, - "startTokenPos": 127 + "startTokenPos": 124 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "keyVar": null, - "nodeType": "Stmt_Foreach", - "stmts": [], - "valueVar": { - "attributes": { - "endFilePos": 248, - "endLine": 11, - "endTokenPos": 131, - "startFilePos": 247, - "startLine": 11, - "startTokenPos": 131 + "byRef": false, + "expr": { + "attributes": { + "endFilePos": 242, + "endLine": 11, + "endTokenPos": 127, + "startFilePos": 241, + "startLine": 11, + "startTokenPos": 127 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" + "keyVar": null, + "nodeType": "Stmt_Foreach", + "stmts": [], + "valueVar": { + "attributes": { + "endFilePos": 248, + "endLine": 11, + "endTokenPos": 131, + "startFilePos": 247, + "startLine": 11, + "startTokenPos": 131 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/foreach.php.uast b/fixtures/foreach.php.uast index ac5b4dc..5b65ea6 100644 --- a/fixtures/foreach.php.uast +++ b/fixtures/foreach.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 30 . . . . Line: 4 @@ -23,26 +23,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " foreach on variable " . . . . . StartPosition: { -. . . . . . Offset: 7 -. . . . . . Line: 3 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 30 -. . . . . . Line: 4 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 39 . . . . . . Line: 4 @@ -56,10 +50,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 45 . . . . . . Line: 4 @@ -73,11 +75,20 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 53 . . . . Line: 5 @@ -95,7 +106,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 62 . . . . . . Line: 5 @@ -109,10 +119,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 69 . . . . . . Line: 5 @@ -126,11 +144,20 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 76 . . . . Line: 6 @@ -148,7 +175,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 85 . . . . . . Line: 6 @@ -162,10 +188,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 91 . . . . . . Line: 6 @@ -179,10 +213,18 @@ File { . . . . . Properties: { . . . . . . internalRole: keyVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 6 @@ -196,11 +238,20 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 104 . . . . Line: 7 @@ -218,7 +269,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 113 . . . . . . Line: 7 @@ -232,10 +282,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 119 . . . . . . Line: 7 @@ -249,10 +307,18 @@ File { . . . . . Properties: { . . . . . . internalRole: keyVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 126 . . . . . . Line: 7 @@ -266,11 +332,20 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 133 . . . . Line: 8 @@ -288,7 +363,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 142 . . . . . . Line: 8 @@ -302,10 +376,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_List { -. . . . . Roles: Call,List,Iterator -. . . . . TOKEN "list" +. . . . . Roles: Call,Iterator,List . . . . . StartPosition: { . . . . . . Offset: 148 . . . . . . Line: 8 @@ -321,7 +403,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 153 . . . . . . . . Line: 8 @@ -339,7 +421,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 153 . . . . . . . . . . Line: 8 @@ -353,11 +434,20 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 157 . . . . . . . . Line: 8 @@ -375,7 +465,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 157 . . . . . . . . . . Line: 8 @@ -389,6 +478,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -397,7 +495,7 @@ File { . . . } . . } . . 5: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 165 . . . . Line: 9 @@ -415,7 +513,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 174 . . . . . . Line: 9 @@ -429,10 +526,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 180 . . . . . . Line: 9 @@ -446,10 +551,18 @@ File { . . . . . Properties: { . . . . . . internalRole: keyVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_List { -. . . . . Roles: Call,List,Iterator -. . . . . TOKEN "list" +. . . . . Roles: Call,Iterator,List . . . . . StartPosition: { . . . . . . Offset: 186 . . . . . . Line: 9 @@ -462,13 +575,102 @@ File { . . . . . } . . . . . Properties: { . . . . . . internalRole: valueVar -. . . . . . items: [{"attributes":{"endFilePos":192,"endLine":9,"endTokenPos":97,"startFilePos":191,"startLine":9,"startTokenPos":97},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":192,"endLine":9,"endTokenPos":97,"startFilePos":191,"startLine":9,"startTokenPos":97},"name":"b","nodeType":"Expr_Variable"}},null,{"attributes":{"endFilePos":198,"endLine":9,"endTokenPos":102,"startFilePos":197,"startLine":9,"startTokenPos":102},"byRef":false,"key":null,"nodeType":"Expr_ArrayItem","value":{"attributes":{"endFilePos":198,"endLine":9,"endTokenPos":102,"startFilePos":197,"startLine":9,"startTokenPos":102},"name":"c","nodeType":"Expr_Variable"}}] +. . . . . } +. . . . . Children: { +. . . . . . 0: Expr_ArrayItem { +. . . . . . . Roles: Entry,Expression,List +. . . . . . . StartPosition: { +. . . . . . . . Offset: 191 +. . . . . . . . Line: 9 +. . . . . . . . Col: 27 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 192 +. . . . . . . . Line: 9 +. . . . . . . . Col: 28 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: items +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 191 +. . . . . . . . . . Line: 9 +. . . . . . . . . . Col: 27 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 192 +. . . . . . . . . . Line: 9 +. . . . . . . . . . Col: 28 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ArrayItem { +. . . . . . . Roles: Entry,Expression,List +. . . . . . . StartPosition: { +. . . . . . . . Offset: 197 +. . . . . . . . Line: 9 +. . . . . . . . Col: 33 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 198 +. . . . . . . . Line: 9 +. . . . . . . . Col: 34 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: items +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 197 +. . . . . . . . . . Line: 9 +. . . . . . . . . . Col: 33 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 198 +. . . . . . . . . . Line: 9 +. . . . . . . . . . Col: 34 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } . . . . . } . . . . } . . . } . . } . . 6: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 205 . . . . Line: 10 @@ -485,7 +687,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List +. . . . . Roles: Expression,List,Literal . . . . . StartPosition: { . . . . . . Offset: 214 . . . . . . Line: 10 @@ -501,8 +703,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 225 . . . . . . Line: 10 @@ -516,11 +717,20 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Stmt_Foreach { -. . . Roles: Statement,For,Incomplete +. . . Roles: For,Incomplete,Statement . . . StartPosition: { . . . . Offset: 232 . . . . Line: 11 @@ -538,7 +748,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 241 . . . . . . Line: 11 @@ -552,10 +761,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Iterator -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Iterator,Variable . . . . . StartPosition: { . . . . . . Offset: 247 . . . . . . Line: 11 @@ -569,6 +786,15 @@ File { . . . . . Properties: { . . . . . . internalRole: valueVar . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/function_buildinTypeDeclarations.php.native b/fixtures/function_buildinTypeDeclarations.php.native index b1883c7..ecf0d60 100644 --- a/fixtures/function_buildinTypeDeclarations.php.native +++ b/fixtures/function_buildinTypeDeclarations.php.native @@ -2,119 +2,122 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 90, - "endLine": 2, - "endTokenPos": 40, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "test", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 26, - "endLine": 2, - "endTokenPos": 7, - "startFilePos": 20, - "startLine": 2, - "startTokenPos": 5 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": "bool", - "variadic": false + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 90, + "endLine": 2, + "endTokenPos": 40, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 34, - "endLine": 2, - "endTokenPos": 12, - "startFilePos": 29, - "startLine": 2, - "startTokenPos": 10 + "byRef": false, + "name": "test", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 26, + "endLine": 2, + "endTokenPos": 7, + "startFilePos": 20, + "startLine": 2, + "startTokenPos": 5 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": "bool", + "variadic": false }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": "int", - "variadic": false - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 2, - "endTokenPos": 17, - "startFilePos": 37, - "startLine": 2, - "startTokenPos": 15 + { + "attributes": { + "endFilePos": 34, + "endLine": 2, + "endTokenPos": 12, + "startFilePos": 29, + "startLine": 2, + "startTokenPos": 10 + }, + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": "int", + "variadic": false }, - "byRef": false, - "default": null, - "name": "c", - "nodeType": "Param", - "type": "float", - "variadic": false - }, - { - "attributes": { - "endFilePos": 55, - "endLine": 2, - "endTokenPos": 22, - "startFilePos": 47, - "startLine": 2, - "startTokenPos": 20 + { + "attributes": { + "endFilePos": 44, + "endLine": 2, + "endTokenPos": 17, + "startFilePos": 37, + "startLine": 2, + "startTokenPos": 15 + }, + "byRef": false, + "default": null, + "name": "c", + "nodeType": "Param", + "type": "float", + "variadic": false }, - "byRef": false, - "default": null, - "name": "d", - "nodeType": "Param", - "type": "string", - "variadic": false - }, - { - "attributes": { - "endFilePos": 68, - "endLine": 2, - "endTokenPos": 27, - "startFilePos": 58, - "startLine": 2, - "startTokenPos": 25 + { + "attributes": { + "endFilePos": 55, + "endLine": 2, + "endTokenPos": 22, + "startFilePos": 47, + "startLine": 2, + "startTokenPos": 20 + }, + "byRef": false, + "default": null, + "name": "d", + "nodeType": "Param", + "type": "string", + "variadic": false }, - "byRef": false, - "default": null, - "name": "e", - "nodeType": "Param", - "type": "iterable", - "variadic": false - }, - { - "attributes": { - "endFilePos": 79, - "endLine": 2, - "endTokenPos": 32, - "startFilePos": 71, - "startLine": 2, - "startTokenPos": 30 + { + "attributes": { + "endFilePos": 68, + "endLine": 2, + "endTokenPos": 27, + "startFilePos": 58, + "startLine": 2, + "startTokenPos": 25 + }, + "byRef": false, + "default": null, + "name": "e", + "nodeType": "Param", + "type": "iterable", + "variadic": false }, - "byRef": false, - "default": null, - "name": "f", - "nodeType": "Param", - "type": "object", - "variadic": false - } - ], - "returnType": "void", - "stmts": [] - } - ] + { + "attributes": { + "endFilePos": 79, + "endLine": 2, + "endTokenPos": 32, + "startFilePos": 71, + "startLine": 2, + "startTokenPos": 30 + }, + "byRef": false, + "default": null, + "name": "f", + "nodeType": "Param", + "type": "object", + "variadic": false + } + ], + "returnType": "void", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_buildinTypeDeclarations.php.uast b/fixtures/function_buildinTypeDeclarations.php.uast index 71f10d7..9a04077 100644 --- a/fixtures/function_buildinTypeDeclarations.php.uast +++ b/fixtures/function_buildinTypeDeclarations.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -19,14 +18,25 @@ File { . . . . Col: 85 . . . } . . . Properties: { -. . . . Stmt_Function.returnType: void . . . . byRef: false . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . TOKEN "void" +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 2 @@ -43,10 +53,18 @@ File { . . . . . . type: bool . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { +. . . . 3: Param { . . . . . Roles: Argument -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 2 @@ -63,10 +81,18 @@ File { . . . . . . type: int . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 2: Param { +. . . . 4: Param { . . . . . Roles: Argument -. . . . . TOKEN "c" . . . . . StartPosition: { . . . . . . Offset: 37 . . . . . . Line: 2 @@ -83,10 +109,18 @@ File { . . . . . . type: float . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 3: Param { +. . . . 5: Param { . . . . . Roles: Argument -. . . . . TOKEN "d" . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 2 @@ -103,10 +137,18 @@ File { . . . . . . type: string . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 4: Param { +. . . . 6: Param { . . . . . Roles: Argument -. . . . . TOKEN "e" . . . . . StartPosition: { . . . . . . Offset: 58 . . . . . . Line: 2 @@ -123,10 +165,18 @@ File { . . . . . . type: iterable . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 5: Param { +. . . . 7: Param { . . . . . Roles: Argument -. . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 71 . . . . . . Line: 2 @@ -143,12 +193,14 @@ File { . . . . . . type: object . . . . . . variadic: false . . . . . } -. . . . } -. . . . 6: Stmt_Function.returnType { -. . . . . Roles: Return,Type -. . . . . TOKEN "void" -. . . . . Properties: { -. . . . . . promotedPropertyString: true +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } . . . . . } . . . . } . . . } diff --git a/fixtures/function_byRef.php.native b/fixtures/function_byRef.php.native index 90ca1c7..186332d 100644 --- a/fixtures/function_byRef.php.native +++ b/fixtures/function_byRef.php.native @@ -2,72 +2,75 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 11, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 11, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "a", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 20, + "endLine": 3, + "endTokenPos": 7, + "startFilePos": 18, + "startLine": 3, + "startTokenPos": 6 + }, + "byRef": true, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [] }, - "byRef": false, - "name": "a", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 3, - "endTokenPos": 7, - "startFilePos": 18, - "startLine": 3, - "startTokenPos": 6 - }, - "byRef": true, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [] - }, - { - "attributes": { - "endFilePos": 43, - "endLine": 4, - "endTokenPos": 22, - "startFilePos": 26, - "startLine": 4, - "startTokenPos": 13 - }, - "byRef": true, - "name": "a", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 39, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 38, - "startLine": 4, - "startTokenPos": 18 - }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [] - } - ] + { + "attributes": { + "endFilePos": 43, + "endLine": 4, + "endTokenPos": 22, + "startFilePos": 26, + "startLine": 4, + "startTokenPos": 13 + }, + "byRef": true, + "name": "a", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 39, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 38, + "startLine": 4, + "startTokenPos": 18 + }, + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_byRef.php.uast b/fixtures/function_byRef.php.uast index f3f1c60..2378068 100644 --- a/fixtures/function_byRef.php.uast +++ b/fixtures/function_byRef.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "a" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument,Incomplete -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 18 . . . . . . Line: 3 @@ -41,12 +51,20 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "a" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 26 . . . . Line: 4 @@ -62,9 +80,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 38 . . . . . . Line: 4 @@ -80,6 +109,15 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/function_call.php.native b/fixtures/function_call.php.native index a9bf477..2047c56 100644 --- a/fixtures/function_call.php.native +++ b/fixtures/function_call.php.native @@ -2,22 +2,11 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [ - { - "attributes": { - "endFilePos": 15, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 9, - "startLine": 3, - "startTokenPos": 4 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "ast": { + "children": [ + { + "args": [ + { "attributes": { "endFilePos": 15, "endLine": 3, @@ -26,23 +15,23 @@ "startLine": 3, "startTokenPos": 4 }, - "name": "param1", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 7, - "startFilePos": 18, - "startLine": 3, - "startTokenPos": 7 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 15, + "endLine": 3, + "endTokenPos": 4, + "startFilePos": 9, + "startLine": 3, + "startTokenPos": 4 + }, + "name": "param1", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 24, "endLine": 3, @@ -51,136 +40,139 @@ "startLine": 3, "startTokenPos": 7 }, - "name": "param2", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 7, + "startFilePos": 18, + "startLine": 3, + "startTokenPos": 7 + }, + "name": "param2", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 25, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + ], "attributes": { - "endFilePos": 7, + "endFilePos": 25, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 8, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "a" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 30, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 11 + "name": { + "attributes": { + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "a" + ] + }, + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 28, + "endFilePos": 30, "endLine": 4, - "endTokenPos": 11, + "endTokenPos": 13, "startFilePos": 28, "startLine": 4, "startTokenPos": 11 }, - "nodeType": "Name", - "parts": [ - "a" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 36, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 33, - "startLine": 5, - "startTokenPos": 16 + "name": { + "attributes": { + "endFilePos": 28, + "endLine": 4, + "endTokenPos": 11, + "startFilePos": 28, + "startLine": 4, + "startTokenPos": 11 + }, + "nodeType": "Name", + "parts": [ + "a" + ] + }, + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 34, + "endFilePos": 36, "endLine": 5, - "endTokenPos": 16, + "endTokenPos": 18, "startFilePos": 33, "startLine": 5, "startTokenPos": 16 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 46, - "endLine": 6, - "endTokenPos": 26, - "startFilePos": 39, - "startLine": 6, - "startTokenPos": 21 + "name": { + "attributes": { + "endFilePos": 34, + "endLine": 5, + "endTokenPos": 16, + "startFilePos": 33, + "startLine": 5, + "startTokenPos": 16 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 44, + "endFilePos": 46, "endLine": 6, - "endTokenPos": 24, + "endTokenPos": 26, "startFilePos": 39, "startLine": 6, "startTokenPos": 21 }, "name": { "attributes": { - "endFilePos": 43, + "endFilePos": 44, "endLine": 6, - "endTokenPos": 23, - "kind": 1, - "startFilePos": 41, + "endTokenPos": 24, + "startFilePos": 39, "startLine": 6, - "startTokenPos": 23 + "startTokenPos": 21 }, - "nodeType": "Scalar_String", - "value": "a" + "name": { + "attributes": { + "endFilePos": 43, + "endLine": 6, + "endTokenPos": 23, + "kind": 1, + "startFilePos": 41, + "startLine": 6, + "startTokenPos": 23 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 53, - "endLine": 7, - "endTokenPos": 32, - "startFilePos": 49, - "startLine": 7, - "startTokenPos": 29 + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 51, + "endFilePos": 53, "endLine": 7, - "endTokenPos": 30, + "endTokenPos": 32, "startFilePos": 49, "startLine": 7, "startTokenPos": 29 @@ -194,28 +186,28 @@ "startLine": 7, "startTokenPos": 29 }, - "name": "a", + "name": { + "attributes": { + "endFilePos": 51, + "endLine": 7, + "endTokenPos": 30, + "startFilePos": 49, + "startLine": 7, + "startTokenPos": 29 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 61, - "endLine": 8, - "endTokenPos": 39, - "startFilePos": 56, - "startLine": 8, - "startTokenPos": 35 + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 59, + "endFilePos": 61, "endLine": 8, - "endTokenPos": 37, + "endTokenPos": 39, "startFilePos": 56, "startLine": 8, "startTokenPos": 35 @@ -234,224 +226,235 @@ "endFilePos": 59, "endLine": 8, "endTokenPos": 37, - "startFilePos": 57, + "startFilePos": 56, "startLine": 8, - "startTokenPos": 36 + "startTokenPos": 35 + }, + "name": { + "attributes": { + "endFilePos": 59, + "endLine": 8, + "endTokenPos": 37, + "startFilePos": 57, + "startLine": 8, + "startTokenPos": 36 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "a", "nodeType": "Expr_Variable" }, "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 72, - "endLine": 9, - "endTokenPos": 47, - "startFilePos": 64, - "startLine": 9, - "startTokenPos": 42 + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 70, + "endFilePos": 72, "endLine": 9, - "endTokenPos": 45, + "endTokenPos": 47, "startFilePos": 64, "startLine": 9, "startTokenPos": 42 }, - "dim": { - "attributes": { - "endFilePos": 69, - "endLine": 9, - "endTokenPos": 44, - "kind": 1, - "startFilePos": 67, - "startLine": 9, - "startTokenPos": 44 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": { "attributes": { - "endFilePos": 65, + "endFilePos": 70, "endLine": 9, - "endTokenPos": 42, + "endTokenPos": 45, "startFilePos": 64, "startLine": 9, "startTokenPos": 42 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 83, - "endLine": 10, - "endTokenPos": 55, - "startFilePos": 75, - "startLine": 10, - "startTokenPos": 50 + "dim": { + "attributes": { + "endFilePos": 69, + "endLine": 9, + "endTokenPos": 44, + "kind": 1, + "startFilePos": 67, + "startLine": 9, + "startTokenPos": 44 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 65, + "endLine": 9, + "endTokenPos": 42, + "startFilePos": 64, + "startLine": 9, + "startTokenPos": 42 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 81, + "endFilePos": 83, "endLine": 10, - "endTokenPos": 53, + "endTokenPos": 55, "startFilePos": 75, "startLine": 10, "startTokenPos": 50 }, - "dim": { - "attributes": { - "endFilePos": 80, - "endLine": 10, - "endTokenPos": 52, - "kind": 1, - "startFilePos": 78, - "startLine": 10, - "startTokenPos": 52 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": { "attributes": { - "endFilePos": 76, + "endFilePos": 81, "endLine": 10, - "endTokenPos": 50, + "endTokenPos": 53, "startFilePos": 75, "startLine": 10, "startTokenPos": 50 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 97, - "endLine": 11, - "endTokenPos": 65, - "startFilePos": 86, - "startLine": 11, - "startTokenPos": 58 + "dim": { + "attributes": { + "endFilePos": 80, + "endLine": 10, + "endTokenPos": 52, + "kind": 1, + "startFilePos": 78, + "startLine": 10, + "startTokenPos": 52 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 76, + "endLine": 10, + "endTokenPos": 50, + "startFilePos": 75, + "startLine": 10, + "startTokenPos": 50 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 95, + "endFilePos": 97, "endLine": 11, - "endTokenPos": 63, + "endTokenPos": 65, "startFilePos": 86, "startLine": 11, "startTokenPos": 58 }, - "dim": { - "attributes": { - "endFilePos": 94, - "endLine": 11, - "endTokenPos": 62, - "kind": 1, - "startFilePos": 92, - "startLine": 11, - "startTokenPos": 62 - }, - "nodeType": "Scalar_String", - "value": "c" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": { "attributes": { - "endFilePos": 90, + "endFilePos": 95, "endLine": 11, - "endTokenPos": 60, + "endTokenPos": 63, "startFilePos": 86, "startLine": 11, "startTokenPos": 58 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", + "dim": { + "attributes": { + "endFilePos": 94, + "endLine": 11, + "endTokenPos": 62, + "kind": 1, + "startFilePos": 92, + "startLine": 11, + "startTokenPos": 62 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 87, + "endFilePos": 90, "endLine": 11, - "endTokenPos": 58, + "endTokenPos": 60, "startFilePos": 86, "startLine": 11, "startTokenPos": 58 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 87, + "endLine": 11, + "endTokenPos": 58, + "startFilePos": 86, + "startLine": 11, + "startTokenPos": 58 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_FuncCall" - }, - { - "attributes": { - "endFilePos": 107, - "endLine": 12, - "endTokenPos": 73, - "startFilePos": 100, - "startLine": 12, - "startTokenPos": 68 - }, - "dim": { - "attributes": { - "endFilePos": 106, - "endLine": 12, - "endTokenPos": 72, - "kind": 1, - "startFilePos": 104, - "startLine": 12, - "startTokenPos": 72 }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "args": [], + { "attributes": { - "endFilePos": 102, + "endFilePos": 107, "endLine": 12, - "endTokenPos": 70, + "endTokenPos": 73, "startFilePos": 100, "startLine": 12, "startTokenPos": 68 }, - "name": { + "dim": { + "attributes": { + "endFilePos": 106, + "endLine": 12, + "endTokenPos": 72, + "kind": 1, + "startFilePos": 104, + "startLine": 12, + "startTokenPos": 72 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "args": [], "attributes": { - "endFilePos": 100, + "endFilePos": 102, "endLine": 12, - "endTokenPos": 68, + "endTokenPos": 70, "startFilePos": 100, "startLine": 12, "startTokenPos": 68 }, - "nodeType": "Name", - "parts": [ - "a" - ] - }, - "nodeType": "Expr_FuncCall" + "name": { + "attributes": { + "endFilePos": 100, + "endLine": 12, + "endTokenPos": 68, + "startFilePos": 100, + "startLine": 12, + "startTokenPos": 68 + }, + "nodeType": "Name", + "parts": [ + "a" + ] + }, + "nodeType": "Expr_FuncCall" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_call.php.uast b/fixtures/function_call.php.uast index ab1773f..f863582 100644 --- a/fixtures/function_call.php.uast +++ b/fixtures/function_call.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 7 @@ -58,7 +58,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "param1" . . . . . . . StartPosition: { . . . . . . . . Offset: 9 . . . . . . . . Line: 3 @@ -72,6 +71,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "param1" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -95,7 +103,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "param2" . . . . . . . StartPosition: { . . . . . . . . Offset: 18 . . . . . . . . Line: 3 @@ -109,13 +116,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "param2" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 1: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 28 . . . . Line: 4 @@ -131,7 +147,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 28 @@ -150,7 +166,7 @@ File { . . . } . . } . . 2: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 33 . . . . Line: 5 @@ -166,8 +182,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Function,Name -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 33 . . . . . . Line: 5 @@ -181,11 +196,20 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 39 . . . . Line: 6 @@ -201,7 +225,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Function,Name +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 39 . . . . . . Line: 6 @@ -238,7 +262,7 @@ File { . . . } . . } . . 4: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 49 . . . . Line: 7 @@ -254,7 +278,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Function,Name +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 49 . . . . . . Line: 7 @@ -271,7 +295,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 49 . . . . . . . . Line: 7 @@ -285,13 +308,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 5: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 56 . . . . Line: 8 @@ -307,7 +339,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Function,Name +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 56 . . . . . . Line: 8 @@ -340,7 +372,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 57 . . . . . . . . . . Line: 8 @@ -354,6 +385,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: name . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -362,7 +402,7 @@ File { . . . } . . } . . 6: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 64 . . . . Line: 9 @@ -378,7 +418,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 64 . . . . . . Line: 9 @@ -395,7 +435,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 64 . . . . . . . . Line: 9 @@ -409,6 +448,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -432,7 +480,7 @@ File { . . . } . . } . . 7: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 75 . . . . Line: 10 @@ -448,7 +496,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 75 . . . . . . Line: 10 @@ -465,7 +513,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 75 . . . . . . . . Line: 10 @@ -479,6 +526,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -502,7 +558,7 @@ File { . . . } . . } . . 8: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 86 . . . . Line: 11 @@ -518,7 +574,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 86 . . . . . . Line: 11 @@ -534,8 +590,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . . . TOKEN "b" +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 86 . . . . . . . . Line: 11 @@ -550,9 +605,15 @@ File { . . . . . . . . internalRole: var . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 86 . . . . . . . . . . Line: 11 @@ -566,6 +627,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -591,7 +661,7 @@ File { . . . } . . } . . 9: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 100 . . . . Line: 12 @@ -607,7 +677,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 100 . . . . . . Line: 12 @@ -623,7 +693,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 100 diff --git a/fixtures/function_conditional.php.native b/fixtures/function_conditional.php.native index 9da09d1..3365cf6 100644 --- a/fixtures/function_conditional.php.native +++ b/fixtures/function_conditional.php.native @@ -2,26 +2,18 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 39, - "endLine": 5, - "endTokenPos": 19, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 11, + "endFilePos": 39, + "endLine": 5, + "endTokenPos": 19, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 5 + "startTokenPos": 2 }, - "name": { + "cond": { "attributes": { "endFilePos": 14, "endLine": 3, @@ -30,34 +22,45 @@ "startLine": 3, "startTokenPos": 5 }, - "nodeType": "Name", - "parts": [ - "true" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 37, - "endLine": 4, - "endTokenPos": 17, - "startFilePos": 23, - "startLine": 4, - "startTokenPos": 10 + "name": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 11, + "startLine": 3, + "startTokenPos": 5 + }, + "nodeType": "Name", + "parts": [ + "true" + ] }, - "byRef": false, - "name": "A", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [] - } - ] - } - ] + "nodeType": "Expr_ConstFetch" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { + "attributes": { + "endFilePos": 37, + "endLine": 4, + "endTokenPos": 17, + "startFilePos": 23, + "startLine": 4, + "startTokenPos": 10 + }, + "byRef": false, + "name": "A", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [] + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_conditional.php.uast b/fixtures/function_conditional.php.uast index 03da908..df311c8 100644 --- a/fixtures/function_conditional.php.uast +++ b/fixtures/function_conditional.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_If { -. . . Roles: Statement,If +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ConstFetch { -. . . . . Roles: Expression,Variable,Incomplete,Condition +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 11 . . . . . . Line: 3 @@ -57,8 +57,7 @@ File { . . . . . } . . . . } . . . . 1: Stmt_Function { -. . . . . Roles: Expression,Body,Function,Declaration -. . . . . TOKEN "A" +. . . . . Roles: Declaration,Function . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 4 @@ -73,6 +72,20 @@ File { . . . . . . byRef: false . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Function.returnType { +. . . . . . . Roles: Declaration,Function,Return,Type +. . . . . . . Properties: { +. . . . . . . . internalRole: returnType +. . . . . . . } +. . . . . . } +. . . . . . 1: Function.body { +. . . . . . . Roles: Body,Declaration,Function +. . . . . . . Properties: { +. . . . . . . . internalRole: stmts +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/function_defaultvalues.php.native b/fixtures/function_defaultvalues.php.native index 1fc2c11..f4f291c 100644 --- a/fixtures/function_defaultvalues.php.native +++ b/fixtures/function_defaultvalues.php.native @@ -2,40 +2,32 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 178, - "endLine": 13, - "endTokenPos": 90, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "a", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 11, - "startFilePos": 23, - "startLine": 4, - "startTokenPos": 7 - }, - "byRef": false, - "default": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 178, + "endLine": 13, + "endTokenPos": 90, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "a", + "nodeType": "Stmt_Function", + "params": [ + { "attributes": { "endFilePos": 31, "endLine": 4, "endTokenPos": 11, - "startFilePos": 28, + "startFilePos": 23, "startLine": 4, - "startTokenPos": 11 + "startTokenPos": 7 }, - "name": { + "byRef": false, + "default": { "attributes": { "endFilePos": 31, "endLine": 4, @@ -44,371 +36,382 @@ "startLine": 4, "startTokenPos": 11 }, - "nodeType": "Name", - "parts": [ - "null" - ] + "name": { + "attributes": { + "endFilePos": 31, + "endLine": 4, + "endTokenPos": 11, + "startFilePos": 28, + "startLine": 4, + "startTokenPos": 11 + }, + "nodeType": "Name", + "parts": [ + "null" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "nodeType": "Expr_ConstFetch" - }, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 47, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 38, - "startLine": 5, - "startTokenPos": 14 + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 47, "endLine": 5, "endTokenPos": 18, - "kind": 1, - "startFilePos": 43, + "startFilePos": 38, "startLine": 5, - "startTokenPos": 18 + "startTokenPos": 14 }, - "nodeType": "Scalar_String", - "value": "foo" - }, - "name": "c", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 62, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 54, - "startLine": 6, - "startTokenPos": 21 + "byRef": false, + "default": { + "attributes": { + "endFilePos": 47, + "endLine": 5, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 43, + "startLine": 5, + "startTokenPos": 18 + }, + "nodeType": "Scalar_String", + "value": "foo" + }, + "name": "c", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 62, "endLine": 6, "endTokenPos": 27, - "startFilePos": 59, + "startFilePos": 54, "startLine": 6, - "startTokenPos": 25 + "startTokenPos": 21 }, - "class": { + "byRef": false, + "default": { "attributes": { - "endFilePos": 59, + "endFilePos": 62, "endLine": 6, - "endTokenPos": 25, + "endTokenPos": 27, "startFilePos": 59, "startLine": 6, "startTokenPos": 25 }, - "nodeType": "Name", - "parts": [ - "A" - ] + "class": { + "attributes": { + "endFilePos": 59, + "endLine": 6, + "endTokenPos": 25, + "startFilePos": 59, + "startLine": 6, + "startTokenPos": 25 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "B", + "nodeType": "Expr_ClassConstFetch" }, - "name": "B", - "nodeType": "Expr_ClassConstFetch" + "name": "d", + "nodeType": "Param", + "type": null, + "variadic": false }, - "name": "d", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 75, - "endLine": 7, - "endTokenPos": 35, - "startFilePos": 69, - "startLine": 7, - "startTokenPos": 30 - }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 75, "endLine": 7, "endTokenPos": 35, - "startFilePos": 74, + "startFilePos": 69, "startLine": 7, - "startTokenPos": 34 + "startTokenPos": 30 }, - "expr": { + "byRef": false, + "default": { "attributes": { "endFilePos": 75, "endLine": 7, "endTokenPos": 35, - "kind": 10, - "startFilePos": 75, + "startFilePos": 74, "startLine": 7, - "startTokenPos": 35 + "startTokenPos": 34 + }, + "expr": { + "attributes": { + "endFilePos": 75, + "endLine": 7, + "endTokenPos": 35, + "kind": 10, + "startFilePos": 75, + "startLine": 7, + "startTokenPos": 35 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_UnaryPlus" }, - "nodeType": "Expr_UnaryPlus" + "name": "f", + "nodeType": "Param", + "type": null, + "variadic": false }, - "name": "f", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 90, - "endLine": 8, - "endTokenPos": 43, - "startFilePos": 82, - "startLine": 8, - "startTokenPos": 38 - }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 90, "endLine": 8, "endTokenPos": 43, - "startFilePos": 87, + "startFilePos": 82, "startLine": 8, - "startTokenPos": 42 + "startTokenPos": 38 }, - "expr": { + "byRef": false, + "default": { "attributes": { "endFilePos": 90, "endLine": 8, "endTokenPos": 43, - "startFilePos": 88, + "startFilePos": 87, "startLine": 8, - "startTokenPos": 43 + "startTokenPos": 42 }, - "nodeType": "Scalar_DNumber", - "value": 1 + "expr": { + "attributes": { + "endFilePos": 90, + "endLine": 8, + "endTokenPos": 43, + "startFilePos": 88, + "startLine": 8, + "startTokenPos": 43 + }, + "nodeType": "Scalar_DNumber", + "value": 1 + }, + "nodeType": "Expr_UnaryMinus" }, - "nodeType": "Expr_UnaryMinus" - }, - "name": "g", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 108, - "endLine": 9, - "endTokenPos": 52, - "startFilePos": 97, - "startLine": 9, - "startTokenPos": 46 + "name": "g", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 108, "endLine": 9, "endTokenPos": 52, - "kind": 1, - "startFilePos": 102, + "startFilePos": 97, "startLine": 9, - "startTokenPos": 50 + "startTokenPos": 46 }, - "items": [], - "nodeType": "Expr_Array" - }, - "name": "h", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 121, - "endLine": 10, - "endTokenPos": 60, - "startFilePos": 115, - "startLine": 10, - "startTokenPos": 55 + "byRef": false, + "default": { + "attributes": { + "endFilePos": 108, + "endLine": 9, + "endTokenPos": 52, + "kind": 1, + "startFilePos": 102, + "startLine": 9, + "startTokenPos": 50 + }, + "items": [], + "nodeType": "Expr_Array" + }, + "name": "h", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 121, "endLine": 10, "endTokenPos": 60, - "kind": 2, - "startFilePos": 120, + "startFilePos": 115, "startLine": 10, - "startTokenPos": 59 + "startTokenPos": 55 }, - "items": [], - "nodeType": "Expr_Array" - }, - "name": "i", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 139, - "endLine": 11, - "endTokenPos": 69, - "startFilePos": 128, - "startLine": 11, - "startTokenPos": 63 + "byRef": false, + "default": { + "attributes": { + "endFilePos": 121, + "endLine": 10, + "endTokenPos": 60, + "kind": 2, + "startFilePos": 120, + "startLine": 10, + "startTokenPos": 59 + }, + "items": [], + "nodeType": "Expr_Array" + }, + "name": "i", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 139, "endLine": 11, "endTokenPos": 69, - "kind": 2, - "startFilePos": 133, + "startFilePos": 128, "startLine": 11, - "startTokenPos": 67 + "startTokenPos": 63 }, - "items": [ - { - "attributes": { - "endFilePos": 138, - "endLine": 11, - "endTokenPos": 68, - "startFilePos": 134, - "startLine": 11, - "startTokenPos": 68 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "default": { + "attributes": { + "endFilePos": 139, + "endLine": 11, + "endTokenPos": 69, + "kind": 2, + "startFilePos": 133, + "startLine": 11, + "startTokenPos": 67 + }, + "items": [ + { "attributes": { "endFilePos": 138, "endLine": 11, "endTokenPos": 68, - "kind": 1, "startFilePos": 134, "startLine": 11, "startTokenPos": 68 }, - "nodeType": "Scalar_String", - "value": "foo" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 138, + "endLine": 11, + "endTokenPos": 68, + "kind": 1, + "startFilePos": 134, + "startLine": 11, + "startTokenPos": 68 + }, + "nodeType": "Scalar_String", + "value": "foo" + } } - } - ], - "nodeType": "Expr_Array" - }, - "name": "j", - "nodeType": "Param", - "type": null, - "variadic": false - }, - { - "attributes": { - "endFilePos": 173, - "endLine": 12, - "endTokenPos": 85, - "startFilePos": 146, - "startLine": 12, - "startTokenPos": 72 + ], + "nodeType": "Expr_Array" + }, + "name": "j", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 173, "endLine": 12, "endTokenPos": 85, - "kind": 2, - "startFilePos": 151, + "startFilePos": 146, "startLine": 12, - "startTokenPos": 76 + "startTokenPos": 72 }, - "items": [ - { - "attributes": { - "endFilePos": 156, - "endLine": 12, - "endTokenPos": 77, - "startFilePos": 152, - "startLine": 12, - "startTokenPos": 77 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "default": { + "attributes": { + "endFilePos": 173, + "endLine": 12, + "endTokenPos": 85, + "kind": 2, + "startFilePos": 151, + "startLine": 12, + "startTokenPos": 76 + }, + "items": [ + { "attributes": { "endFilePos": 156, "endLine": 12, "endTokenPos": 77, - "kind": 1, "startFilePos": 152, "startLine": 12, "startTokenPos": 77 }, - "nodeType": "Scalar_String", - "value": "foo" - } - }, - { - "attributes": { - "endFilePos": 172, - "endLine": 12, - "endTokenPos": 84, - "startFilePos": 159, - "startLine": 12, - "startTokenPos": 80 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 156, + "endLine": 12, + "endTokenPos": 77, + "kind": 1, + "startFilePos": 152, + "startLine": 12, + "startTokenPos": 77 + }, + "nodeType": "Scalar_String", + "value": "foo" + } }, - "byRef": false, - "key": { + { "attributes": { - "endFilePos": 163, + "endFilePos": 172, "endLine": 12, - "endTokenPos": 80, - "kind": 1, + "endTokenPos": 84, "startFilePos": 159, "startLine": 12, "startTokenPos": 80 }, - "nodeType": "Scalar_String", - "value": "bar" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 172, - "endLine": 12, - "endTokenPos": 84, - "kind": 1, - "startFilePos": 168, - "startLine": 12, - "startTokenPos": 84 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 163, + "endLine": 12, + "endTokenPos": 80, + "kind": 1, + "startFilePos": 159, + "startLine": 12, + "startTokenPos": 80 + }, + "nodeType": "Scalar_String", + "value": "bar" }, - "nodeType": "Scalar_String", - "value": "baz" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 172, + "endLine": 12, + "endTokenPos": 84, + "kind": 1, + "startFilePos": 168, + "startLine": 12, + "startTokenPos": 84 + }, + "nodeType": "Scalar_String", + "value": "baz" + } } - } - ], - "nodeType": "Expr_Array" - }, - "name": "k", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [] - } - ] + ], + "nodeType": "Expr_Array" + }, + "name": "k", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_defaultvalues.php.uast b/fixtures/function_defaultvalues.php.uast index f25b408..d83e934 100644 --- a/fixtures/function_defaultvalues.php.uast +++ b/fixtures/function_defaultvalues.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "a" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 4 @@ -42,8 +52,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_ConstFetch { -. . . . . . . Roles: Expression,Variable,Incomplete,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ConstFetch { +. . . . . . . Roles: Default,Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 28 . . . . . . . . Line: 4 @@ -59,7 +76,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Null +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "null" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 28 @@ -79,9 +96,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Param { +. . . . 3: Param { . . . . . Roles: Argument -. . . . . TOKEN "c" . . . . . StartPosition: { . . . . . . Offset: 38 . . . . . . Line: 5 @@ -98,8 +114,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_String { +. . . . . . . Roles: Default,Expression,Literal,String . . . . . . . TOKEN "foo" . . . . . . . StartPosition: { . . . . . . . . Offset: 43 @@ -117,9 +140,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 2: Param { +. . . . 4: Param { . . . . . Roles: Argument -. . . . . TOKEN "d" . . . . . StartPosition: { . . . . . . Offset: 54 . . . . . . Line: 6 @@ -136,9 +158,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_ClassConstFetch { -. . . . . . . Roles: Expression,Type,Incomplete,Default -. . . . . . . TOKEN "B" +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_ClassConstFetch { +. . . . . . . Roles: Default,Expression,Incomplete,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 59 . . . . . . . . Line: 6 @@ -154,7 +182,14 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "B" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Name { +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "A" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 59 @@ -174,9 +209,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 3: Param { +. . . . 5: Param { . . . . . Roles: Argument -. . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 69 . . . . . . Line: 7 @@ -193,8 +227,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_UnaryPlus { -. . . . . . . Roles: Expression,Unary,Incomplete,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_UnaryPlus { +. . . . . . . Roles: Default,Expression,Incomplete,Unary . . . . . . . StartPosition: { . . . . . . . . Offset: 74 . . . . . . . . Line: 7 @@ -230,9 +271,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 4: Param { +. . . . 6: Param { . . . . . Roles: Argument -. . . . . TOKEN "g" . . . . . StartPosition: { . . . . . . Offset: 82 . . . . . . Line: 8 @@ -249,8 +289,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_UnaryMinus { -. . . . . . . Roles: Expression,Unary,Incomplete,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "g" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_UnaryMinus { +. . . . . . . Roles: Default,Expression,Incomplete,Unary . . . . . . . StartPosition: { . . . . . . . . Offset: 87 . . . . . . . . Line: 8 @@ -286,9 +333,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 5: Param { +. . . . 7: Param { . . . . . Roles: Argument -. . . . . TOKEN "h" . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 9 @@ -305,8 +351,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Array { -. . . . . . . Roles: Expression,Literal,List,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "h" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Array { +. . . . . . . Roles: Default,Expression,List,Literal . . . . . . . StartPosition: { . . . . . . . . Offset: 102 . . . . . . . . Line: 9 @@ -323,9 +376,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 6: Param { +. . . . 8: Param { . . . . . Roles: Argument -. . . . . TOKEN "i" . . . . . StartPosition: { . . . . . . Offset: 115 . . . . . . Line: 10 @@ -342,8 +394,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Array { -. . . . . . . Roles: Expression,Literal,List,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "i" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Array { +. . . . . . . Roles: Default,Expression,List,Literal . . . . . . . StartPosition: { . . . . . . . . Offset: 120 . . . . . . . . Line: 10 @@ -360,9 +419,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 7: Param { +. . . . 9: Param { . . . . . Roles: Argument -. . . . . TOKEN "j" . . . . . StartPosition: { . . . . . . Offset: 128 . . . . . . Line: 11 @@ -379,8 +437,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Array { -. . . . . . . Roles: Expression,Literal,List,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "j" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Array { +. . . . . . . Roles: Default,Expression,List,Literal . . . . . . . StartPosition: { . . . . . . . . Offset: 133 . . . . . . . . Line: 11 @@ -396,7 +461,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 134 . . . . . . . . . . Line: 11 @@ -435,9 +500,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 8: Param { +. . . . 10: Param { . . . . . Roles: Argument -. . . . . TOKEN "k" . . . . . StartPosition: { . . . . . . Offset: 146 . . . . . . Line: 12 @@ -454,8 +518,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Array { -. . . . . . . Roles: Expression,Literal,List,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "k" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Array { +. . . . . . . Roles: Default,Expression,List,Literal . . . . . . . StartPosition: { . . . . . . . . Offset: 151 . . . . . . . . Line: 12 @@ -471,7 +542,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 152 . . . . . . . . . . Line: 12 @@ -507,7 +578,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 159 . . . . . . . . . . Line: 12 diff --git a/fixtures/function_nullableTypes.php.native b/fixtures/function_nullableTypes.php.native index 02466ce..f9f8983 100644 --- a/fixtures/function_nullableTypes.php.native +++ b/fixtures/function_nullableTypes.php.native @@ -2,114 +2,117 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 55, - "endLine": 4, - "endTokenPos": 25, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "test", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 29, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 21, - "startLine": 3, - "startTokenPos": 6 - }, - "byRef": false, - "default": null, - "name": "bar", - "nodeType": "Param", - "type": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 55, + "endLine": 4, + "endTokenPos": 25, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "test", + "nodeType": "Stmt_Function", + "params": [ + { "attributes": { - "endFilePos": 24, + "endFilePos": 29, "endLine": 3, - "endTokenPos": 7, + "endTokenPos": 9, "startFilePos": 21, "startLine": 3, "startTokenPos": 6 }, - "nodeType": "NullableType", + "byRef": false, + "default": null, + "name": "bar", + "nodeType": "Param", "type": { "attributes": { "endFilePos": 24, "endLine": 3, "endTokenPos": 7, - "startFilePos": 22, + "startFilePos": 21, "startLine": 3, - "startTokenPos": 7 + "startTokenPos": 6 }, - "nodeType": "Name", - "parts": [ - "Foo" - ] - } - }, - "variadic": false - }, - { - "attributes": { - "endFilePos": 43, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 32, - "startLine": 3, - "startTokenPos": 12 + "nodeType": "NullableType", + "type": { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 7, + "startFilePos": 22, + "startLine": 3, + "startTokenPos": 7 + }, + "nodeType": "Name", + "parts": [ + "Foo" + ] + } + }, + "variadic": false }, - "byRef": false, - "default": null, - "name": "foo", - "nodeType": "Param", - "type": { + { "attributes": { - "endFilePos": 38, + "endFilePos": 43, "endLine": 3, - "endTokenPos": 13, + "endTokenPos": 15, "startFilePos": 32, "startLine": 3, "startTokenPos": 12 }, - "nodeType": "NullableType", - "type": "string" - }, - "variadic": false - } - ], - "returnType": { - "attributes": { - "endFilePos": 51, - "endLine": 3, - "endTokenPos": 21, - "startFilePos": 48, - "startLine": 3, - "startTokenPos": 20 - }, - "nodeType": "NullableType", - "type": { + "byRef": false, + "default": null, + "name": "foo", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 38, + "endLine": 3, + "endTokenPos": 13, + "startFilePos": 32, + "startLine": 3, + "startTokenPos": 12 + }, + "nodeType": "NullableType", + "type": "string" + }, + "variadic": false + } + ], + "returnType": { "attributes": { "endFilePos": 51, "endLine": 3, "endTokenPos": 21, - "startFilePos": 49, + "startFilePos": 48, "startLine": 3, - "startTokenPos": 21 + "startTokenPos": 20 }, - "nodeType": "Name", - "parts": [ - "Baz" - ] - } - }, - "stmts": [] - } - ] + "nodeType": "NullableType", + "type": { + "attributes": { + "endFilePos": 51, + "endLine": 3, + "endTokenPos": 21, + "startFilePos": 49, + "startLine": 3, + "startTokenPos": 21 + }, + "nodeType": "Name", + "parts": [ + "Baz" + ] + } + }, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_nullableTypes.php.uast b/fixtures/function_nullableTypes.php.uast index 3d5e354..1fc226b 100644 --- a/fixtures/function_nullableTypes.php.uast +++ b/fixtures/function_nullableTypes.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "bar" . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 3 @@ -42,8 +52,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: NullableType { -. . . . . . . Roles: Type,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "bar" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: NullableType { +. . . . . . . Roles: Incomplete,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 21 . . . . . . . . Line: 3 @@ -79,9 +96,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Param { +. . . . 3: Param { . . . . . Roles: Argument -. . . . . TOKEN "foo" . . . . . StartPosition: { . . . . . . Offset: 32 . . . . . . Line: 3 @@ -98,8 +114,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: NullableType { -. . . . . . . Roles: Type,Incomplete +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "foo" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: NullableType { +. . . . . . . Roles: Incomplete,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 32 . . . . . . . . Line: 3 @@ -117,41 +140,6 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 2: NullableType { -. . . . . Roles: Type,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 48 -. . . . . . Line: 3 -. . . . . . Col: 42 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 51 -. . . . . . Line: 3 -. . . . . . Col: 45 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: returnType -. . . . . } -. . . . . Children: { -. . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier -. . . . . . . TOKEN "Baz" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 49 -. . . . . . . . Line: 3 -. . . . . . . . Col: 43 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 51 -. . . . . . . . Line: 3 -. . . . . . . . Col: 45 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: type -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } . . . } . . } . } diff --git a/fixtures/function_returnTypes.php.native b/fixtures/function_returnTypes.php.native index ac7466d..03a5de8 100644 --- a/fixtures/function_returnTypes.php.native +++ b/fixtures/function_returnTypes.php.native @@ -2,84 +2,87 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "test1", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [] - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 4, - "endTokenPos": 22, - "startFilePos": 27, - "startLine": 4, - "startTokenPos": 11 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "test1", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [] }, - "byRef": false, - "name": "test2", - "nodeType": "Stmt_Function", - "params": [], - "returnType": "array", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 84, - "endLine": 5, - "endTokenPos": 35, - "startFilePos": 55, - "startLine": 5, - "startTokenPos": 24 + { + "attributes": { + "endFilePos": 53, + "endLine": 4, + "endTokenPos": 22, + "startFilePos": 27, + "startLine": 4, + "startTokenPos": 11 + }, + "byRef": false, + "name": "test2", + "nodeType": "Stmt_Function", + "params": [], + "returnType": "array", + "stmts": [] }, - "byRef": false, - "name": "test3", - "nodeType": "Stmt_Function", - "params": [], - "returnType": "callable", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 114, - "endLine": 6, - "endTokenPos": 50, - "startFilePos": 86, - "startLine": 6, - "startTokenPos": 37 + { + "attributes": { + "endFilePos": 84, + "endLine": 5, + "endTokenPos": 35, + "startFilePos": 55, + "startLine": 5, + "startTokenPos": 24 + }, + "byRef": false, + "name": "test3", + "nodeType": "Stmt_Function", + "params": [], + "returnType": "callable", + "stmts": [] }, - "byRef": false, - "name": "test4", - "nodeType": "Stmt_Function", - "params": [], - "returnType": { + { "attributes": { - "endFilePos": 111, + "endFilePos": 114, "endLine": 6, - "endTokenPos": 47, - "startFilePos": 105, + "endTokenPos": 50, + "startFilePos": 86, "startLine": 6, - "startTokenPos": 45 + "startTokenPos": 37 }, - "nodeType": "Name", - "parts": [ - "Foo", - "Bar" - ] - }, - "stmts": [] - } - ] + "byRef": false, + "name": "test4", + "nodeType": "Stmt_Function", + "params": [], + "returnType": { + "attributes": { + "endFilePos": 111, + "endLine": 6, + "endTokenPos": 47, + "startFilePos": 105, + "startLine": 6, + "startTokenPos": 45 + }, + "nodeType": "Name", + "parts": [ + "Foo", + "Bar" + ] + }, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_returnTypes.php.uast b/fixtures/function_returnTypes.php.uast index 62ed7cb..5d23dfb 100644 --- a/fixtures/function_returnTypes.php.uast +++ b/fixtures/function_returnTypes.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,10 +21,23 @@ File { . . . . byRef: false . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . } . . } . . 1: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test2" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 27 . . . . Line: 4 @@ -37,23 +49,27 @@ File { . . . . Col: 27 . . . } . . . Properties: { -. . . . Stmt_Function.returnType: array . . . . byRef: false . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_Function.returnType { -. . . . . Roles: Return,Type +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type . . . . . TOKEN "array" . . . . . Properties: { -. . . . . . promotedPropertyString: true +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts . . . . . } . . . . } . . . } . . } . . 2: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test3" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 55 . . . . Line: 5 @@ -65,23 +81,27 @@ File { . . . . Col: 30 . . . } . . . Properties: { -. . . . Stmt_Function.returnType: callable . . . . byRef: false . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_Function.returnType { -. . . . . Roles: Return,Type +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type . . . . . TOKEN "callable" . . . . . Properties: { -. . . . . . promotedPropertyString: true +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts . . . . . } . . . . } . . . } . . } . . 3: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test4" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 86 . . . . Line: 6 @@ -97,23 +117,18 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Name { -. . . . . Roles: Expression,Identifier -. . . . . TOKEN "Foo\Bar" -. . . . . StartPosition: { -. . . . . . Offset: 105 -. . . . . . Line: 6 -. . . . . . Col: 20 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 111 -. . . . . . Line: 6 -. . . . . . Col: 26 -. . . . . } +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type . . . . . Properties: { . . . . . . internalRole: returnType . . . . . } . . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } . . . } . . } . } diff --git a/fixtures/function_specialVars.php.native b/fixtures/function_specialVars.php.native index 2de69a2..568c545 100644 --- a/fixtures/function_specialVars.php.native +++ b/fixtures/function_specialVars.php.native @@ -2,79 +2,71 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 75, - "endLine": 6, - "endTokenPos": 37, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "a", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 48, - "endLine": 4, - "endTokenPos": 23, - "startFilePos": 26, - "startLine": 4, - "startTokenPos": 10 - }, - "nodeType": "Stmt_Global", - "vars": [ - { - "attributes": { - "endFilePos": 34, - "endLine": 4, - "endTokenPos": 12, - "startFilePos": 33, - "startLine": 4, - "startTokenPos": 12 - }, - "name": "a", - "nodeType": "Expr_Variable" + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 75, + "endLine": 6, + "endTokenPos": 37, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "a", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { + "attributes": { + "endFilePos": 48, + "endLine": 4, + "endTokenPos": 23, + "startFilePos": 26, + "startLine": 4, + "startTokenPos": 10 }, - { - "attributes": { - "endFilePos": 42, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 37, - "startLine": 4, - "startTokenPos": 15 - }, - "name": { + "nodeType": "Stmt_Global", + "vars": [ + { "attributes": { - "endFilePos": 41, + "endFilePos": 34, "endLine": 4, - "endTokenPos": 17, - "kind": 1, - "startFilePos": 39, + "endTokenPos": 12, + "startFilePos": 33, "startLine": 4, - "startTokenPos": 17 + "startTokenPos": 12 }, - "nodeType": "Scalar_String", - "value": "b" + "name": "a", + "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 47, - "endLine": 4, - "endTokenPos": 22, - "startFilePos": 45, - "startLine": 4, - "startTokenPos": 21 + { + "attributes": { + "endFilePos": 42, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 37, + "startLine": 4, + "startTokenPos": 15 + }, + "name": { + "attributes": { + "endFilePos": 41, + "endLine": 4, + "endTokenPos": 17, + "kind": 1, + "startFilePos": 39, + "startLine": 4, + "startTokenPos": 17 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_Variable" }, - "name": { + { "attributes": { "endFilePos": 47, "endLine": 4, @@ -83,65 +75,76 @@ "startLine": 4, "startTokenPos": 21 }, - "name": "c", + "name": { + "attributes": { + "endFilePos": 47, + "endLine": 4, + "endTokenPos": 22, + "startFilePos": 45, + "startLine": 4, + "startTokenPos": 21 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 73, - "endLine": 5, - "endTokenPos": 35, - "startFilePos": 54, - "startLine": 5, - "startTokenPos": 25 + } + ] }, - "nodeType": "Stmt_Static", - "vars": [ - { - "attributes": { - "endFilePos": 62, - "endLine": 5, - "endTokenPos": 27, - "startFilePos": 61, - "startLine": 5, - "startTokenPos": 27 - }, - "default": null, - "name": "c", - "nodeType": "Stmt_StaticVar" + { + "attributes": { + "endFilePos": 73, + "endLine": 5, + "endTokenPos": 35, + "startFilePos": 54, + "startLine": 5, + "startTokenPos": 25 }, - { - "attributes": { - "endFilePos": 72, - "endLine": 5, - "endTokenPos": 34, - "startFilePos": 65, - "startLine": 5, - "startTokenPos": 30 + "nodeType": "Stmt_Static", + "vars": [ + { + "attributes": { + "endFilePos": 62, + "endLine": 5, + "endTokenPos": 27, + "startFilePos": 61, + "startLine": 5, + "startTokenPos": 27 + }, + "default": null, + "name": "c", + "nodeType": "Stmt_StaticVar" }, - "default": { + { "attributes": { "endFilePos": 72, "endLine": 5, "endTokenPos": 34, - "kind": 1, - "startFilePos": 70, + "startFilePos": 65, "startLine": 5, - "startTokenPos": 34 + "startTokenPos": 30 }, - "nodeType": "Scalar_String", - "value": "e" - }, - "name": "d", - "nodeType": "Stmt_StaticVar" - } - ] - } - ] - } - ] + "default": { + "attributes": { + "endFilePos": 72, + "endLine": 5, + "endTokenPos": 34, + "kind": 1, + "startFilePos": 70, + "startLine": 5, + "startTokenPos": 34 + }, + "nodeType": "Scalar_String", + "value": "e" + }, + "name": "d", + "nodeType": "Stmt_StaticVar" + } + ] + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_specialVars.php.uast b/fixtures/function_specialVars.php.uast index ae28b70..ecf2aa1 100644 --- a/fixtures/function_specialVars.php.uast +++ b/fixtures/function_specialVars.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "a" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,93 +22,96 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_Global { -. . . . . Roles: Expression,Body,Visibility,World -. . . . . StartPosition: { -. . . . . . Offset: 26 -. . . . . . Line: 4 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 48 -. . . . . . Line: 4 -. . . . . . Col: 27 +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType . . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 33 -. . . . . . . . Line: 4 -. . . . . . . . Col: 12 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 34 -. . . . . . . . Line: 4 -. . . . . . . . Col: 13 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: vars -. . . . . . . } -. . . . . . } -. . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable +. . . . . . 0: Stmt_Global { +. . . . . . . Roles: Visibility,World . . . . . . . StartPosition: { -. . . . . . . . Offset: 37 +. . . . . . . . Offset: 26 . . . . . . . . Line: 4 -. . . . . . . . Col: 16 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 42 +. . . . . . . . Offset: 48 . . . . . . . . Line: 4 -. . . . . . . . Col: 21 +. . . . . . . . Col: 27 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: vars +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "b" +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 39 +. . . . . . . . . . Offset: 33 . . . . . . . . . . Line: 4 -. . . . . . . . . . Col: 18 +. . . . . . . . . . Col: 12 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 41 +. . . . . . . . . . Offset: 34 . . . . . . . . . . Line: 4 -. . . . . . . . . . Col: 20 +. . . . . . . . . . Col: 13 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: name +. . . . . . . . . . internalRole: vars +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable -. . . . . . . StartPosition: { -. . . . . . . . Offset: 45 -. . . . . . . . Line: 4 -. . . . . . . . Col: 24 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 47 -. . . . . . . . Line: 4 -. . . . . . . . Col: 26 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: vars -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { +. . . . . . . . 1: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 37 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 16 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 42 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 21 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: vars +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 39 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 41 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 2: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "c" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 45 . . . . . . . . . . Line: 4 @@ -121,70 +123,85 @@ File { . . . . . . . . . . Col: 26 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: name +. . . . . . . . . . internalRole: vars +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 45 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 24 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 47 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 26 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 1: Stmt_Static { -. . . . . Roles: Expression,Body,Visibility,Type -. . . . . StartPosition: { -. . . . . . Offset: 54 -. . . . . . Line: 5 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 73 -. . . . . . Line: 5 -. . . . . . Col: 24 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Stmt_StaticVar { -. . . . . . . Roles: Expression,Identifier,Variable,Visibility,Type -. . . . . . . TOKEN "c" +. . . . . . 1: Stmt_Static { +. . . . . . . Roles: Type,Visibility . . . . . . . StartPosition: { -. . . . . . . . Offset: 61 +. . . . . . . . Offset: 54 . . . . . . . . Line: 5 -. . . . . . . . Col: 12 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 62 +. . . . . . . . Offset: 73 . . . . . . . . Line: 5 -. . . . . . . . Col: 13 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: vars -. . . . . . . } -. . . . . . } -. . . . . . 1: Stmt_StaticVar { -. . . . . . . Roles: Expression,Identifier,Variable,Visibility,Type -. . . . . . . TOKEN "d" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 65 -. . . . . . . . Line: 5 -. . . . . . . . Col: 16 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 72 -. . . . . . . . Line: 5 -. . . . . . . . Col: 23 +. . . . . . . . Col: 24 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: vars +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "e" +. . . . . . . . 0: Stmt_StaticVar { +. . . . . . . . . Roles: Expression,Identifier,Type,Variable,Visibility . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 70 +. . . . . . . . . . Offset: 61 . . . . . . . . . . Line: 5 -. . . . . . . . . . Col: 21 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 62 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 13 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: vars +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Stmt_StaticVar { +. . . . . . . . . Roles: Expression,Identifier,Type,Variable,Visibility +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 65 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 16 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 72 @@ -192,7 +209,33 @@ File { . . . . . . . . . . Col: 23 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: default +. . . . . . . . . . internalRole: vars +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "d" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . Roles: Default,Expression,Literal,String +. . . . . . . . . . . TOKEN "e" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 70 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 21 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 72 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 23 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: default +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } diff --git a/fixtures/function_typeDeclarations.php.native b/fixtures/function_typeDeclarations.php.native index 7229d3d..e74bfb8 100644 --- a/fixtures/function_typeDeclarations.php.native +++ b/fixtures/function_typeDeclarations.php.native @@ -2,100 +2,103 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 3, - "endTokenPos": 25, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "a", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 19, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 18, - "startLine": 3, - "startTokenPos": 6 - }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": false + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 52, + "endLine": 3, + "endTokenPos": 25, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "attributes": { - "endFilePos": 29, - "endLine": 3, - "endTokenPos": 11, - "startFilePos": 22, - "startLine": 3, - "startTokenPos": 9 + "byRef": false, + "name": "a", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 19, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 18, + "startLine": 3, + "startTokenPos": 6 + }, + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": null, - "name": "c", - "nodeType": "Param", - "type": "array", - "variadic": false - }, - { - "attributes": { - "endFilePos": 42, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 32, - "startLine": 3, - "startTokenPos": 14 + { + "attributes": { + "endFilePos": 29, + "endLine": 3, + "endTokenPos": 11, + "startFilePos": 22, + "startLine": 3, + "startTokenPos": 9 + }, + "byRef": false, + "default": null, + "name": "c", + "nodeType": "Param", + "type": "array", + "variadic": false }, - "byRef": false, - "default": null, - "name": "d", - "nodeType": "Param", - "type": "callable", - "variadic": false - }, - { - "attributes": { - "endFilePos": 48, - "endLine": 3, - "endTokenPos": 21, - "startFilePos": 45, - "startLine": 3, - "startTokenPos": 19 + { + "attributes": { + "endFilePos": 42, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 32, + "startLine": 3, + "startTokenPos": 14 + }, + "byRef": false, + "default": null, + "name": "d", + "nodeType": "Param", + "type": "callable", + "variadic": false }, - "byRef": false, - "default": null, - "name": "f", - "nodeType": "Param", - "type": { + { "attributes": { - "endFilePos": 45, + "endFilePos": 48, "endLine": 3, - "endTokenPos": 19, + "endTokenPos": 21, "startFilePos": 45, "startLine": 3, "startTokenPos": 19 }, - "nodeType": "Name", - "parts": [ - "E" - ] - }, - "variadic": false - } - ], - "returnType": null, - "stmts": [] - } - ] + "byRef": false, + "default": null, + "name": "f", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 45, + "endLine": 3, + "endTokenPos": 19, + "startFilePos": 45, + "startLine": 3, + "startTokenPos": 19 + }, + "nodeType": "Name", + "parts": [ + "E" + ] + }, + "variadic": false + } + ], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_typeDeclarations.php.uast b/fixtures/function_typeDeclarations.php.uast index 6ed022d..aab363e 100644 --- a/fixtures/function_typeDeclarations.php.uast +++ b/fixtures/function_typeDeclarations.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "a" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 18 . . . . . . Line: 3 @@ -41,10 +51,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { +. . . . 3: Param { . . . . . Roles: Argument -. . . . . TOKEN "c" . . . . . StartPosition: { . . . . . . Offset: 22 . . . . . . Line: 3 @@ -61,10 +79,18 @@ File { . . . . . . type: array . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 2: Param { +. . . . 4: Param { . . . . . Roles: Argument -. . . . . TOKEN "d" . . . . . StartPosition: { . . . . . . Offset: 32 . . . . . . Line: 3 @@ -81,10 +107,18 @@ File { . . . . . . type: callable . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 3: Param { +. . . . 5: Param { . . . . . Roles: Argument -. . . . . TOKEN "f" . . . . . StartPosition: { . . . . . . Offset: 45 . . . . . . Line: 3 @@ -103,6 +137,13 @@ File { . . . . . Children: { . . . . . . 0: Name { . . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "f" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "E" . . . . . . . StartPosition: { . . . . . . . . Offset: 45 diff --git a/fixtures/function_variadic.php.native b/fixtures/function_variadic.php.native index d21dcbb..1fd2727 100644 --- a/fixtures/function_variadic.php.native +++ b/fixtures/function_variadic.php.native @@ -2,228 +2,231 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 33, - "endLine": 2, - "endTokenPos": 14, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "test", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 21, - "endLine": 2, - "endTokenPos": 5, - "startFilePos": 20, - "startLine": 2, - "startTokenPos": 5 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 33, + "endLine": 2, + "endTokenPos": 14, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 29, - "endLine": 2, - "endTokenPos": 10, - "startFilePos": 24, - "startLine": 2, - "startTokenPos": 8 + "byRef": false, + "name": "test", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 21, + "endLine": 2, + "endTokenPos": 5, + "startFilePos": 20, + "startLine": 2, + "startTokenPos": 5 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": true - } - ], - "returnType": null, - "stmts": [] - }, - { - "attributes": { - "endFilePos": 63, - "endLine": 3, - "endTokenPos": 30, - "startFilePos": 35, - "startLine": 3, - "startTokenPos": 16 + { + "attributes": { + "endFilePos": 29, + "endLine": 2, + "endTokenPos": 10, + "startFilePos": 24, + "startLine": 2, + "startTokenPos": 8 + }, + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": true + } + ], + "returnType": null, + "stmts": [] }, - "byRef": false, - "name": "test", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 50, - "endLine": 3, - "endTokenPos": 20, - "startFilePos": 49, - "startLine": 3, - "startTokenPos": 20 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + { + "attributes": { + "endFilePos": 63, + "endLine": 3, + "endTokenPos": 30, + "startFilePos": 35, + "startLine": 3, + "startTokenPos": 16 }, - { - "attributes": { - "endFilePos": 59, - "endLine": 3, - "endTokenPos": 26, - "startFilePos": 53, - "startLine": 3, - "startTokenPos": 23 + "byRef": false, + "name": "test", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 50, + "endLine": 3, + "endTokenPos": 20, + "startFilePos": 49, + "startLine": 3, + "startTokenPos": 20 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": true, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": true - } - ], - "returnType": null, - "stmts": [] - }, - { - "attributes": { - "endFilePos": 97, - "endLine": 4, - "endTokenPos": 47, - "startFilePos": 65, - "startLine": 4, - "startTokenPos": 32 + { + "attributes": { + "endFilePos": 59, + "endLine": 3, + "endTokenPos": 26, + "startFilePos": 53, + "startLine": 3, + "startTokenPos": 23 + }, + "byRef": true, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": true + } + ], + "returnType": null, + "stmts": [] }, - "byRef": false, - "name": "test", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 80, - "endLine": 4, - "endTokenPos": 36, - "startFilePos": 79, - "startLine": 4, - "startTokenPos": 36 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + { + "attributes": { + "endFilePos": 97, + "endLine": 4, + "endTokenPos": 47, + "startFilePos": 65, + "startLine": 4, + "startTokenPos": 32 }, - { - "attributes": { - "endFilePos": 93, - "endLine": 4, - "endTokenPos": 43, - "startFilePos": 83, - "startLine": 4, - "startTokenPos": 39 + "byRef": false, + "name": "test", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 80, + "endLine": 4, + "endTokenPos": 36, + "startFilePos": 79, + "startLine": 4, + "startTokenPos": 36 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": { + { "attributes": { - "endFilePos": 86, + "endFilePos": 93, "endLine": 4, - "endTokenPos": 39, + "endTokenPos": 43, "startFilePos": 83, "startLine": 4, "startTokenPos": 39 }, - "nodeType": "Name", - "parts": [ - "Type" - ] - }, - "variadic": true - } - ], - "returnType": null, - "stmts": [] - }, - { - "attributes": { - "endFilePos": 132, - "endLine": 5, - "endTokenPos": 65, - "startFilePos": 99, - "startLine": 5, - "startTokenPos": 49 + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 86, + "endLine": 4, + "endTokenPos": 39, + "startFilePos": 83, + "startLine": 4, + "startTokenPos": 39 + }, + "nodeType": "Name", + "parts": [ + "Type" + ] + }, + "variadic": true + } + ], + "returnType": null, + "stmts": [] }, - "byRef": false, - "name": "test", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 114, - "endLine": 5, - "endTokenPos": 53, - "startFilePos": 113, - "startLine": 5, - "startTokenPos": 53 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + { + "attributes": { + "endFilePos": 132, + "endLine": 5, + "endTokenPos": 65, + "startFilePos": 99, + "startLine": 5, + "startTokenPos": 49 }, - { - "attributes": { - "endFilePos": 128, - "endLine": 5, - "endTokenPos": 61, - "startFilePos": 117, - "startLine": 5, - "startTokenPos": 56 + "byRef": false, + "name": "test", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 114, + "endLine": 5, + "endTokenPos": 53, + "startFilePos": 113, + "startLine": 5, + "startTokenPos": 53 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": true, - "default": null, - "name": "b", - "nodeType": "Param", - "type": { + { "attributes": { - "endFilePos": 120, + "endFilePos": 128, "endLine": 5, - "endTokenPos": 56, + "endTokenPos": 61, "startFilePos": 117, "startLine": 5, "startTokenPos": 56 }, - "nodeType": "Name", - "parts": [ - "Type" - ] - }, - "variadic": true - } - ], - "returnType": null, - "stmts": [] - } - ] + "byRef": true, + "default": null, + "name": "b", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 120, + "endLine": 5, + "endTokenPos": 56, + "startFilePos": 117, + "startLine": 5, + "startTokenPos": 56 + }, + "nodeType": "Name", + "parts": [ + "Type" + ] + }, + "variadic": true + } + ], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/function_variadic.php.uast b/fixtures/function_variadic.php.uast index a435c3e..5497e27 100644 --- a/fixtures/function_variadic.php.uast +++ b/fixtures/function_variadic.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 2 @@ -41,10 +51,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { -. . . . . Roles: Argument,ArgsList -. . . . . TOKEN "b" +. . . . 3: Param { +. . . . . Roles: ArgsList,Argument . . . . . StartPosition: { . . . . . . Offset: 24 . . . . . . Line: 2 @@ -60,12 +78,20 @@ File { . . . . . . internalRole: params . . . . . . variadic: true . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 35 . . . . Line: 3 @@ -81,9 +107,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 49 . . . . . . Line: 3 @@ -99,10 +136,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { -. . . . . Roles: Argument,Incomplete,ArgsList -. . . . . TOKEN "b" +. . . . 3: Param { +. . . . . Roles: ArgsList,Argument,Incomplete . . . . . StartPosition: { . . . . . . Offset: 53 . . . . . . Line: 3 @@ -118,12 +163,20 @@ File { . . . . . . internalRole: params . . . . . . variadic: true . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 65 . . . . Line: 4 @@ -139,9 +192,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 79 . . . . . . Line: 4 @@ -157,10 +221,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { -. . . . . Roles: Argument,ArgsList -. . . . . TOKEN "b" +. . . . 3: Param { +. . . . . Roles: ArgsList,Argument . . . . . StartPosition: { . . . . . . Offset: 83 . . . . . . Line: 4 @@ -179,6 +251,13 @@ File { . . . . . Children: { . . . . . . 0: Name { . . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "Type" . . . . . . . StartPosition: { . . . . . . . . Offset: 83 @@ -199,8 +278,7 @@ File { . . . } . . } . . 3: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "test" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 99 . . . . Line: 5 @@ -216,9 +294,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 113 . . . . . . Line: 5 @@ -234,10 +323,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { -. . . . . Roles: Argument,Incomplete,ArgsList -. . . . . TOKEN "b" +. . . . 3: Param { +. . . . . Roles: ArgsList,Argument,Incomplete . . . . . StartPosition: { . . . . . . Offset: 117 . . . . . . Line: 5 @@ -256,6 +353,13 @@ File { . . . . . Children: { . . . . . . 0: Name { . . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "Type" . . . . . . . StartPosition: { . . . . . . . . Offset: 117 diff --git a/fixtures/generator_basic.php.native b/fixtures/generator_basic.php.native index 6e24fe3..7665681 100644 --- a/fixtures/generator_basic.php.native +++ b/fixtures/generator_basic.php.native @@ -2,134 +2,104 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 655, - "endLine": 30, - "endTokenPos": 202, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "gen", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "comments": [ - { - "filePos": 28, - "line": 4, - "nodeType": "Comment", - "text": "// statements\n" - } - ], - "endFilePos": 50, - "endLine": 5, - "endTokenPos": 12, - "startFilePos": 46, - "startLine": 5, - "startTokenPos": 12 - }, - "key": null, - "nodeType": "Expr_Yield", - "value": null + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 655, + "endLine": 30, + "endTokenPos": 202, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "attributes": { - "endFilePos": 68, - "endLine": 6, - "endTokenPos": 17, - "startFilePos": 57, - "startLine": 6, - "startTokenPos": 15 + "byRef": false, + "name": "gen", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { + "attributes": { + "comments": [ + { + "filePos": 28, + "line": 4, + "nodeType": "Comment", + "text": "// statements\n" + } + ], + "endFilePos": 50, + "endLine": 5, + "endTokenPos": 12, + "startFilePos": 46, + "startLine": 5, + "startTokenPos": 12 + }, + "key": null, + "nodeType": "Expr_Yield", + "value": null }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + { "attributes": { "endFilePos": 68, "endLine": 6, "endTokenPos": 17, - "startFilePos": 63, + "startFilePos": 57, "startLine": 6, - "startTokenPos": 17 + "startTokenPos": 15 }, - "name": "value", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 94, - "endLine": 7, - "endTokenPos": 26, - "startFilePos": 75, - "startLine": 7, - "startTokenPos": 20 - }, - "key": { - "attributes": { - "endFilePos": 84, - "endLine": 7, - "endTokenPos": 22, - "startFilePos": 81, - "startLine": 7, - "startTokenPos": 22 - }, - "name": "key", - "nodeType": "Expr_Variable" + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 68, + "endLine": 6, + "endTokenPos": 17, + "startFilePos": 63, + "startLine": 6, + "startTokenPos": 17 + }, + "name": "value", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_Yield", - "value": { + { "attributes": { "endFilePos": 94, "endLine": 7, "endTokenPos": 26, - "startFilePos": 89, + "startFilePos": 75, "startLine": 7, - "startTokenPos": 26 + "startTokenPos": 20 }, - "name": "value", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "comments": [ - { - "filePos": 102, - "line": 9, - "nodeType": "Comment", - "text": "// expressions\n" - } - ], - "endFilePos": 133, - "endLine": 10, - "endTokenPos": 35, - "startFilePos": 121, - "startLine": 10, - "startTokenPos": 31 - }, - "expr": { - "attributes": { - "endFilePos": 133, - "endLine": 10, - "endTokenPos": 35, - "startFilePos": 129, - "startLine": 10, - "startTokenPos": 35 + "key": { + "attributes": { + "endFilePos": 84, + "endLine": 7, + "endTokenPos": 22, + "startFilePos": 81, + "startLine": 7, + "startTokenPos": 22 + }, + "name": "key", + "nodeType": "Expr_Variable" }, - "key": null, "nodeType": "Expr_Yield", - "value": null + "value": { + "attributes": { + "endFilePos": 94, + "endLine": 7, + "endTokenPos": 26, + "startFilePos": 89, + "startLine": 7, + "startTokenPos": 26 + }, + "name": "value", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_Assign", - "var": { + { "attributes": { "comments": [ { @@ -139,439 +109,458 @@ "text": "// expressions\n" } ], - "endFilePos": 125, + "endFilePos": 133, "endLine": 10, - "endTokenPos": 31, + "endTokenPos": 35, "startFilePos": 121, "startLine": 10, "startTokenPos": 31 }, - "name": "data", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 161, - "endLine": 11, - "endTokenPos": 46, - "startFilePos": 140, - "startLine": 11, - "startTokenPos": 38 + "expr": { + "attributes": { + "endFilePos": 133, + "endLine": 10, + "endTokenPos": 35, + "startFilePos": 129, + "startLine": 10, + "startTokenPos": 35 + }, + "key": null, + "nodeType": "Expr_Yield", + "value": null + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "comments": [ + { + "filePos": 102, + "line": 9, + "nodeType": "Comment", + "text": "// expressions\n" + } + ], + "endFilePos": 125, + "endLine": 10, + "endTokenPos": 31, + "startFilePos": 121, + "startLine": 10, + "startTokenPos": 31 + }, + "name": "data", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { - "endFilePos": 160, + "endFilePos": 161, "endLine": 11, - "endTokenPos": 45, - "startFilePos": 149, + "endTokenPos": 46, + "startFilePos": 140, "startLine": 11, - "startTokenPos": 43 + "startTokenPos": 38 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "expr": { "attributes": { "endFilePos": 160, "endLine": 11, "endTokenPos": 45, - "startFilePos": 155, + "startFilePos": 149, "startLine": 11, - "startTokenPos": 45 + "startTokenPos": 43 }, - "name": "value", + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 160, + "endLine": 11, + "endTokenPos": 45, + "startFilePos": 155, + "startLine": 11, + "startTokenPos": 45 + }, + "name": "value", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 144, + "endLine": 11, + "endTokenPos": 38, + "startFilePos": 140, + "startLine": 11, + "startTokenPos": 38 + }, + "name": "data", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 144, - "endLine": 11, - "endTokenPos": 38, - "startFilePos": 140, - "startLine": 11, - "startTokenPos": 38 - }, - "name": "data", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 197, - "endLine": 12, - "endTokenPos": 61, - "startFilePos": 168, - "startLine": 12, - "startTokenPos": 49 - }, - "expr": { + { "attributes": { - "endFilePos": 196, + "endFilePos": 197, "endLine": 12, - "endTokenPos": 60, - "startFilePos": 177, + "endTokenPos": 61, + "startFilePos": 168, "startLine": 12, - "startTokenPos": 54 + "startTokenPos": 49 }, - "key": { + "expr": { "attributes": { - "endFilePos": 186, + "endFilePos": 196, "endLine": 12, - "endTokenPos": 56, - "startFilePos": 183, + "endTokenPos": 60, + "startFilePos": 177, "startLine": 12, - "startTokenPos": 56 + "startTokenPos": 54 }, - "name": "key", - "nodeType": "Expr_Variable" + "key": { + "attributes": { + "endFilePos": 186, + "endLine": 12, + "endTokenPos": 56, + "startFilePos": 183, + "startLine": 12, + "startTokenPos": 56 + }, + "name": "key", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 196, + "endLine": 12, + "endTokenPos": 60, + "startFilePos": 191, + "startLine": 12, + "startTokenPos": 60 + }, + "name": "value", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_Yield", - "value": { + "nodeType": "Expr_Assign", + "var": { "attributes": { - "endFilePos": 196, + "endFilePos": 172, "endLine": 12, - "endTokenPos": 60, - "startFilePos": 191, + "endTokenPos": 49, + "startFilePos": 168, "startLine": 12, - "startTokenPos": 60 + "startTokenPos": 49 }, - "name": "value", + "name": "data", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_Assign", - "var": { + { "attributes": { - "endFilePos": 172, - "endLine": 12, - "endTokenPos": 49, - "startFilePos": 168, - "startLine": 12, - "startTokenPos": 49 - }, - "name": "data", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "comments": [ - { - "filePos": 205, - "line": 14, - "nodeType": "Comment", - "text": "// yield in language constructs with their own parentheses\n" - } - ], - "endFilePos": 304, - "endLine": 15, - "endTokenPos": 82, - "startFilePos": 268, - "startLine": 15, - "startTokenPos": 66 - }, - "cond": { - "attributes": { - "endFilePos": 281, + "comments": [ + { + "filePos": 205, + "line": 14, + "nodeType": "Comment", + "text": "// yield in language constructs with their own parentheses\n" + } + ], + "endFilePos": 304, "endLine": 15, - "endTokenPos": 71, - "startFilePos": 272, + "endTokenPos": 82, + "startFilePos": 268, "startLine": 15, - "startTokenPos": 69 + "startTokenPos": 66 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "cond": { "attributes": { "endFilePos": 281, "endLine": 15, "endTokenPos": 71, - "startFilePos": 278, + "startFilePos": 272, "startLine": 15, - "startTokenPos": 71 + "startTokenPos": 69 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "else": null, - "elseifs": [ - { - "attributes": { - "endFilePos": 304, - "endLine": 15, - "endTokenPos": 82, - "startFilePos": 285, - "startLine": 15, - "startTokenPos": 75 - }, - "cond": { + "key": null, + "nodeType": "Expr_Yield", + "value": { "attributes": { - "endFilePos": 302, + "endFilePos": 281, "endLine": 15, - "endTokenPos": 80, - "startFilePos": 293, + "endTokenPos": 71, + "startFilePos": 278, "startLine": 15, - "startTokenPos": 78 + "startTokenPos": 71 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "else": null, + "elseifs": [ + { + "attributes": { + "endFilePos": 304, + "endLine": 15, + "endTokenPos": 82, + "startFilePos": 285, + "startLine": 15, + "startTokenPos": 75 + }, + "cond": { "attributes": { "endFilePos": 302, "endLine": 15, "endTokenPos": 80, - "startFilePos": 299, + "startFilePos": 293, "startLine": 15, - "startTokenPos": 80 + "startTokenPos": 78 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_ElseIf", - "stmts": [] - } - ], - "nodeType": "Stmt_If", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 353, - "endLine": 16, - "endTokenPos": 103, - "startFilePos": 310, - "startLine": 16, - "startTokenPos": 84 + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 302, + "endLine": 15, + "endTokenPos": 80, + "startFilePos": 299, + "startLine": 15, + "startTokenPos": 80 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_ElseIf", + "stmts": [] + } + ], + "nodeType": "Stmt_If", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 323, + "endFilePos": 353, "endLine": 16, - "endTokenPos": 89, - "startFilePos": 314, + "endTokenPos": 103, + "startFilePos": 310, "startLine": 16, - "startTokenPos": 87 + "startTokenPos": 84 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "cond": { "attributes": { "endFilePos": 323, "endLine": 16, "endTokenPos": 89, - "startFilePos": 320, + "startFilePos": 314, "startLine": 16, - "startTokenPos": 89 + "startTokenPos": 87 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "else": null, - "elseifs": [ - { - "attributes": { - "endFilePos": 346, - "endLine": 16, - "endTokenPos": 100, - "startFilePos": 327, - "startLine": 16, - "startTokenPos": 93 - }, - "cond": { + "key": null, + "nodeType": "Expr_Yield", + "value": { "attributes": { - "endFilePos": 344, + "endFilePos": 323, "endLine": 16, - "endTokenPos": 98, - "startFilePos": 335, + "endTokenPos": 89, + "startFilePos": 320, "startLine": 16, - "startTokenPos": 96 + "startTokenPos": 89 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "else": null, + "elseifs": [ + { + "attributes": { + "endFilePos": 346, + "endLine": 16, + "endTokenPos": 100, + "startFilePos": 327, + "startLine": 16, + "startTokenPos": 93 + }, + "cond": { "attributes": { "endFilePos": 344, "endLine": 16, "endTokenPos": 98, - "startFilePos": 341, + "startFilePos": 335, "startLine": 16, - "startTokenPos": 98 + "startTokenPos": 96 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_ElseIf", - "stmts": [] - } - ], - "nodeType": "Stmt_If", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 377, - "endLine": 17, - "endTokenPos": 112, - "startFilePos": 359, - "startLine": 17, - "startTokenPos": 105 + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 344, + "endLine": 16, + "endTokenPos": 98, + "startFilePos": 341, + "startLine": 16, + "startTokenPos": 98 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_ElseIf", + "stmts": [] + } + ], + "nodeType": "Stmt_If", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 375, + "endFilePos": 377, "endLine": 17, - "endTokenPos": 110, - "startFilePos": 366, + "endTokenPos": 112, + "startFilePos": 359, "startLine": 17, - "startTokenPos": 108 + "startTokenPos": 105 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "cond": { "attributes": { "endFilePos": 375, "endLine": 17, "endTokenPos": 110, - "startFilePos": 372, + "startFilePos": 366, "startLine": 17, - "startTokenPos": 110 + "startTokenPos": 108 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_While", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 407, - "endLine": 18, - "endTokenPos": 126, - "startFilePos": 383, - "startLine": 18, - "startTokenPos": 114 + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 375, + "endLine": 17, + "endTokenPos": 110, + "startFilePos": 372, + "startLine": 17, + "startTokenPos": 110 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_While", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 405, + "endFilePos": 407, "endLine": 18, - "endTokenPos": 124, - "startFilePos": 396, + "endTokenPos": 126, + "startFilePos": 383, "startLine": 18, - "startTokenPos": 122 + "startTokenPos": 114 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "cond": { "attributes": { "endFilePos": 405, "endLine": 18, "endTokenPos": 124, - "startFilePos": 402, + "startFilePos": 396, "startLine": 18, - "startTokenPos": 124 + "startTokenPos": 122 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_Do", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 434, - "endLine": 19, - "endTokenPos": 137, - "startFilePos": 413, - "startLine": 19, - "startTokenPos": 128 + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 405, + "endLine": 18, + "endTokenPos": 124, + "startFilePos": 402, + "startLine": 18, + "startTokenPos": 124 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_Do", + "stmts": [] }, - "cases": [], - "cond": { + { "attributes": { - "endFilePos": 430, + "endFilePos": 434, "endLine": 19, - "endTokenPos": 133, - "startFilePos": 421, + "endTokenPos": 137, + "startFilePos": 413, "startLine": 19, - "startTokenPos": 131 + "startTokenPos": 128 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "cases": [], + "cond": { "attributes": { "endFilePos": 430, "endLine": 19, "endTokenPos": 133, - "startFilePos": 427, + "startFilePos": 421, "startLine": 19, - "startTokenPos": 133 + "startTokenPos": 131 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_Switch" - }, - { - "attributes": { - "endFilePos": 454, - "endLine": 20, - "endTokenPos": 144, - "kind": 2, - "startFilePos": 440, - "startLine": 20, - "startTokenPos": 139 + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 430, + "endLine": 19, + "endTokenPos": 133, + "startFilePos": 427, + "startLine": 19, + "startTokenPos": 133 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_Switch" }, - "expr": { + { "attributes": { - "endFilePos": 453, + "endFilePos": 454, "endLine": 20, - "endTokenPos": 143, - "startFilePos": 444, + "endTokenPos": 144, + "kind": 2, + "startFilePos": 440, "startLine": 20, - "startTokenPos": 141 + "startTokenPos": 139 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "expr": { "attributes": { "endFilePos": 453, "endLine": 20, "endTokenPos": 143, - "startFilePos": 450, + "startFilePos": 444, "startLine": 20, - "startTokenPos": 143 + "startTokenPos": 141 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_Exit" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 507, - "endLine": 23, - "endTokenPos": 153, - "startFilePos": 498, - "startLine": 23, - "startTokenPos": 151 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, + "key": null, + "nodeType": "Expr_Yield", "value": { + "attributes": { + "endFilePos": 453, + "endLine": 20, + "endTokenPos": 143, + "startFilePos": 450, + "startLine": 20, + "startTokenPos": 143 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_Exit" + }, + { + "args": [ + { "attributes": { "endFilePos": 507, "endLine": 23, @@ -580,40 +569,35 @@ "startLine": 23, "startTokenPos": 151 }, - "key": null, - "nodeType": "Expr_Yield", + "byRef": false, + "nodeType": "Arg", + "unpack": false, "value": { "attributes": { "endFilePos": 507, "endLine": 23, "endTokenPos": 153, - "startFilePos": 504, + "startFilePos": 498, "startLine": 23, - "startTokenPos": 153 + "startTokenPos": 151 }, - "name": "foo", - "nodeType": "Expr_Variable" + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 507, + "endLine": 23, + "endTokenPos": 153, + "startFilePos": 504, + "startLine": 23, + "startTokenPos": 153 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } } } - } - ], - "attributes": { - "comments": [ - { - "filePos": 462, - "line": 22, - "nodeType": "Comment", - "text": "// yield in function calls\n" - } ], - "endFilePos": 508, - "endLine": 23, - "endTokenPos": 154, - "startFilePos": 493, - "startLine": 23, - "startTokenPos": 149 - }, - "name": { "attributes": { "comments": [ { @@ -623,35 +607,40 @@ "text": "// yield in function calls\n" } ], - "endFilePos": 496, + "endFilePos": 508, "endLine": 23, - "endTokenPos": 149, + "endTokenPos": 154, "startFilePos": 493, "startLine": 23, "startTokenPos": 149 }, - "nodeType": "Name", - "parts": [ - "func" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { + "name": { "attributes": { - "endFilePos": 535, - "endLine": 24, - "endTokenPos": 163, - "startFilePos": 526, - "startLine": 24, - "startTokenPos": 161 + "comments": [ + { + "filePos": 462, + "line": 22, + "nodeType": "Comment", + "text": "// yield in function calls\n" + } + ], + "endFilePos": 496, + "endLine": 23, + "endTokenPos": 149, + "startFilePos": 493, + "startLine": 23, + "startTokenPos": 149 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "func" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "args": [ + { "attributes": { "endFilePos": 535, "endLine": 24, @@ -660,61 +649,61 @@ "startLine": 24, "startTokenPos": 161 }, - "key": null, - "nodeType": "Expr_Yield", + "byRef": false, + "nodeType": "Arg", + "unpack": false, "value": { "attributes": { "endFilePos": 535, "endLine": 24, "endTokenPos": 163, - "startFilePos": 532, + "startFilePos": 526, "startLine": 24, - "startTokenPos": 163 + "startTokenPos": 161 }, - "name": "foo", - "nodeType": "Expr_Variable" + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 535, + "endLine": 24, + "endTokenPos": 163, + "startFilePos": 532, + "startLine": 24, + "startTokenPos": 163 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } } } - } - ], - "attributes": { - "endFilePos": 536, - "endLine": 24, - "endTokenPos": 164, - "startFilePos": 515, - "startLine": 24, - "startTokenPos": 157 - }, - "name": "func", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 518, + "endFilePos": 536, "endLine": 24, - "endTokenPos": 157, + "endTokenPos": 164, "startFilePos": 515, "startLine": 24, "startTokenPos": 157 }, - "name": "foo", - "nodeType": "Expr_Variable" - } - }, - { - "args": [ - { + "name": "func", + "nodeType": "Expr_MethodCall", + "var": { "attributes": { - "endFilePos": 560, - "endLine": 25, - "endTokenPos": 173, - "startFilePos": 551, - "startLine": 25, - "startTokenPos": 171 + "endFilePos": 518, + "endLine": 24, + "endTokenPos": 157, + "startFilePos": 515, + "startLine": 24, + "startTokenPos": 157 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "name": "foo", + "nodeType": "Expr_Variable" + } + }, + { + "args": [ + { "attributes": { "endFilePos": 560, "endLine": 25, @@ -723,174 +712,188 @@ "startLine": 25, "startTokenPos": 171 }, - "key": null, - "nodeType": "Expr_Yield", + "byRef": false, + "nodeType": "Arg", + "unpack": false, "value": { "attributes": { "endFilePos": 560, "endLine": 25, "endTokenPos": 173, - "startFilePos": 557, + "startFilePos": 551, "startLine": 25, - "startTokenPos": 173 + "startTokenPos": 171 }, - "name": "foo", - "nodeType": "Expr_Variable" + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 560, + "endLine": 25, + "endTokenPos": 173, + "startFilePos": 557, + "startLine": 25, + "startTokenPos": 173 + }, + "name": "foo", + "nodeType": "Expr_Variable" + } } } - } - ], - "attributes": { - "endFilePos": 561, - "endLine": 25, - "endTokenPos": 174, - "startFilePos": 543, - "startLine": 25, - "startTokenPos": 167 - }, - "class": { + ], "attributes": { - "endFilePos": 549, + "endFilePos": 561, "endLine": 25, - "endTokenPos": 169, - "startFilePos": 547, + "endTokenPos": 174, + "startFilePos": 543, "startLine": 25, - "startTokenPos": 169 + "startTokenPos": 167 }, - "nodeType": "Name", - "parts": [ - "Foo" - ] - }, - "nodeType": "Expr_New" - }, - { - "attributes": { - "endFilePos": 583, - "endLine": 27, - "endTokenPos": 179, - "startFilePos": 569, - "startLine": 27, - "startTokenPos": 177 + "class": { + "attributes": { + "endFilePos": 549, + "endLine": 25, + "endTokenPos": 169, + "startFilePos": 547, + "startLine": 25, + "startTokenPos": 169 + }, + "nodeType": "Name", + "parts": [ + "Foo" + ] + }, + "nodeType": "Expr_New" }, - "expr": { + { "attributes": { "endFilePos": 583, "endLine": 27, "endTokenPos": 179, - "startFilePos": 580, + "startFilePos": 569, "startLine": 27, - "startTokenPos": 179 - }, - "name": "foo", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_YieldFrom" - }, - { - "attributes": { - "endFilePos": 624, - "endLine": 28, - "endTokenPos": 190, - "startFilePos": 590, - "startLine": 28, - "startTokenPos": 182 - }, - "left": { - "attributes": { - "endFilePos": 604, - "endLine": 28, - "endTokenPos": 184, - "startFilePos": 590, - "startLine": 28, - "startTokenPos": 182 + "startTokenPos": 177 }, "expr": { "attributes": { - "endFilePos": 604, - "endLine": 28, - "endTokenPos": 184, - "startFilePos": 601, - "startLine": 28, - "startTokenPos": 184 + "endFilePos": 583, + "endLine": 27, + "endTokenPos": 179, + "startFilePos": 580, + "startLine": 27, + "startTokenPos": 179 }, "name": "foo", "nodeType": "Expr_Variable" }, "nodeType": "Expr_YieldFrom" }, - "nodeType": "Expr_BinaryOp_LogicalAnd", - "right": { + { "attributes": { "endFilePos": 624, "endLine": 28, "endTokenPos": 190, - "startFilePos": 610, + "startFilePos": 590, "startLine": 28, - "startTokenPos": 188 + "startTokenPos": 182 }, - "expr": { + "left": { + "attributes": { + "endFilePos": 604, + "endLine": 28, + "endTokenPos": 184, + "startFilePos": 590, + "startLine": 28, + "startTokenPos": 182 + }, + "expr": { + "attributes": { + "endFilePos": 604, + "endLine": 28, + "endTokenPos": 184, + "startFilePos": 601, + "startLine": 28, + "startTokenPos": 184 + }, + "name": "foo", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_YieldFrom" + }, + "nodeType": "Expr_BinaryOp_LogicalAnd", + "right": { "attributes": { "endFilePos": 624, "endLine": 28, "endTokenPos": 190, - "startFilePos": 621, + "startFilePos": 610, "startLine": 28, - "startTokenPos": 190 + "startTokenPos": 188 }, - "name": "bar", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_YieldFrom" - } - }, - { - "attributes": { - "endFilePos": 652, - "endLine": 29, - "endTokenPos": 199, - "startFilePos": 631, - "startLine": 29, - "startTokenPos": 193 + "expr": { + "attributes": { + "endFilePos": 624, + "endLine": 28, + "endTokenPos": 190, + "startFilePos": 621, + "startLine": 28, + "startTokenPos": 190 + }, + "name": "bar", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_YieldFrom" + } }, - "expr": { + { "attributes": { "endFilePos": 652, "endLine": 29, "endTokenPos": 199, - "startFilePos": 642, + "startFilePos": 631, "startLine": 29, - "startTokenPos": 195 + "startTokenPos": 193 }, - "left": { + "expr": { "attributes": { - "endFilePos": 645, + "endFilePos": 652, "endLine": 29, - "endTokenPos": 195, + "endTokenPos": 199, "startFilePos": 642, "startLine": 29, "startTokenPos": 195 }, - "name": "foo", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 652, - "endLine": 29, - "endTokenPos": 199, - "startFilePos": 649, - "startLine": 29, - "startTokenPos": 199 + "left": { + "attributes": { + "endFilePos": 645, + "endLine": 29, + "endTokenPos": 195, + "startFilePos": 642, + "startLine": 29, + "startTokenPos": 195 + }, + "name": "foo", + "nodeType": "Expr_Variable" }, - "name": "bar", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_YieldFrom" - } - ] - } - ] + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 652, + "endLine": 29, + "endTokenPos": 199, + "startFilePos": 649, + "startLine": 29, + "startTokenPos": 199 + }, + "name": "bar", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_YieldFrom" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/generator_basic.php.uast b/fixtures/generator_basic.php.uast index d3bb5ef..7d51783 100644 --- a/fixtures/generator_basic.php.uast +++ b/fixtures/generator_basic.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "gen" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,65 +22,55 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 46 -. . . . . . Line: 5 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 50 -. . . . . . Line: 5 -. . . . . . Col: 9 +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType . . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " statements -" +. . . . . . 0: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 28 -. . . . . . . . Line: 4 +. . . . . . . . Offset: 46 +. . . . . . . . Line: 5 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 42 +. . . . . . . . Offset: 50 . . . . . . . . Line: 5 -. . . . . . . . Col: 1 +. . . . . . . . Col: 9 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: body +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Comment { +. . . . . . . . . Roles: Comment,Noop +. . . . . . . . . TOKEN " statements +" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 1: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 57 -. . . . . . Line: 6 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 68 -. . . . . . Line: 6 -. . . . . . Col: 16 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "value" +. . . . . . 1: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 63 +. . . . . . . . Offset: 57 . . . . . . . . Line: 6 -. . . . . . . . Col: 11 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 68 @@ -89,51 +78,42 @@ File { . . . . . . . . Col: 16 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 2: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 75 -. . . . . . Line: 7 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 94 -. . . . . . Line: 7 -. . . . . . Col: 24 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "key" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 81 -. . . . . . . . Line: 7 -. . . . . . . . Col: 11 +. . . . . . . . internalRole: body . . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 84 -. . . . . . . . Line: 7 -. . . . . . . . Col: 14 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: key +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 63 +. . . . . . . . . . Line: 6 +. . . . . . . . . . Col: 11 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 68 +. . . . . . . . . . Line: 6 +. . . . . . . . . . Col: 16 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "value" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "value" +. . . . . . 2: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 89 +. . . . . . . . Offset: 75 . . . . . . . . Line: 7 -. . . . . . . . Col: 19 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 94 @@ -141,156 +121,193 @@ File { . . . . . . . . Col: 24 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 3: Expr_Assign { -. . . . . Roles: Expression,Body,Assignment -. . . . . StartPosition: { -. . . . . . Offset: 121 -. . . . . . Line: 10 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 133 -. . . . . . Line: 10 -. . . . . . Col: 17 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " expressions -" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 102 -. . . . . . . . Line: 9 -. . . . . . . . Col: 5 +. . . . . . . . internalRole: body . . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 117 -. . . . . . . . Line: 10 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 81 +. . . . . . . . . . Line: 7 +. . . . . . . . . . Col: 11 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 84 +. . . . . . . . . . Line: 7 +. . . . . . . . . . Col: 14 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: key +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "key" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { +. . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 89 +. . . . . . . . . . Line: 7 +. . . . . . . . . . Col: 19 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 94 +. . . . . . . . . . Line: 7 +. . . . . . . . . . Col: 24 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "value" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "data" +. . . . . . 3: Expr_Assign { +. . . . . . . Roles: Assignment,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 121 . . . . . . . . Line: 10 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 125 +. . . . . . . . Offset: 133 . . . . . . . . Line: 10 -. . . . . . . . Col: 9 +. . . . . . . . Col: 17 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: var +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Comment { -. . . . . . . . . Roles: Noop,Comment +. . . . . . . . . Roles: Comment,Noop . . . . . . . . . TOKEN " expressions " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 102 -. . . . . . . . . . Line: 9 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { +. . . . . . . . . Roles: Identifier,Left,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 121 +. . . . . . . . . . Line: 10 . . . . . . . . . . Col: 5 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 117 +. . . . . . . . . . Offset: 125 . . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 1 +. . . . . . . . . . Col: 9 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: var +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "data" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Comment { +. . . . . . . . . . . Roles: Comment,Noop +. . . . . . . . . . . TOKEN " expressions +" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 0 +. . . . . . . . . . . . Line: 1 +. . . . . . . . . . . . Col: 1 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: comments +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 2: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return,Right +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 129 +. . . . . . . . . . Line: 10 +. . . . . . . . . . Col: 13 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 133 +. . . . . . . . . . Line: 10 +. . . . . . . . . . Col: 17 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: expr . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 2: Expr_Yield { -. . . . . . . Roles: Return,Incomplete,Right -. . . . . . . StartPosition: { -. . . . . . . . Offset: 129 -. . . . . . . . Line: 10 -. . . . . . . . Col: 13 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 133 -. . . . . . . . Line: 10 -. . . . . . . . Col: 17 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: expr -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 4: Expr_Assign { -. . . . . Roles: Expression,Body,Assignment -. . . . . StartPosition: { -. . . . . . Offset: 140 -. . . . . . Line: 11 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 161 -. . . . . . Line: 11 -. . . . . . Col: 26 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "data" +. . . . . . 4: Expr_Assign { +. . . . . . . Roles: Assignment,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 140 . . . . . . . . Line: 11 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 144 -. . . . . . . . Line: 11 -. . . . . . . . Col: 9 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: var -. . . . . . . } -. . . . . . } -. . . . . . 1: Expr_Yield { -. . . . . . . Roles: Return,Incomplete,Right -. . . . . . . StartPosition: { -. . . . . . . . Offset: 149 -. . . . . . . . Line: 11 -. . . . . . . . Col: 14 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 160 +. . . . . . . . Offset: 161 . . . . . . . . Line: 11 -. . . . . . . . Col: 25 +. . . . . . . . Col: 26 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "value" +. . . . . . . . . Roles: Identifier,Left,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 140 +. . . . . . . . . . Line: 11 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 144 +. . . . . . . . . . Line: 11 +. . . . . . . . . . Col: 9 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: var +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "data" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return,Right . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 155 +. . . . . . . . . . Offset: 149 . . . . . . . . . . Line: 11 -. . . . . . . . . . Col: 20 +. . . . . . . . . . Col: 14 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 160 @@ -298,86 +315,85 @@ File { . . . . . . . . . . Col: 25 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: expr +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 155 +. . . . . . . . . . . . Line: 11 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 160 +. . . . . . . . . . . . Line: 11 +. . . . . . . . . . . . Col: 25 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "value" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 5: Expr_Assign { -. . . . . Roles: Expression,Body,Assignment -. . . . . StartPosition: { -. . . . . . Offset: 168 -. . . . . . Line: 12 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 197 -. . . . . . Line: 12 -. . . . . . Col: 34 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "data" +. . . . . . 5: Expr_Assign { +. . . . . . . Roles: Assignment,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 168 . . . . . . . . Line: 12 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 172 -. . . . . . . . Line: 12 -. . . . . . . . Col: 9 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: var -. . . . . . . } -. . . . . . } -. . . . . . 1: Expr_Yield { -. . . . . . . Roles: Return,Incomplete,Right -. . . . . . . StartPosition: { -. . . . . . . . Offset: 177 -. . . . . . . . Line: 12 -. . . . . . . . Col: 14 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 196 +. . . . . . . . Offset: 197 . . . . . . . . Line: 12 -. . . . . . . . Col: 33 +. . . . . . . . Col: 34 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "key" +. . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 183 +. . . . . . . . . . Offset: 168 . . . . . . . . . . Line: 12 -. . . . . . . . . . Col: 20 +. . . . . . . . . . Col: 5 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 186 +. . . . . . . . . . Offset: 172 . . . . . . . . . . Line: 12 -. . . . . . . . . . Col: 23 +. . . . . . . . . . Col: 9 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: key +. . . . . . . . . . internalRole: var +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "data" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "value" +. . . . . . . . 1: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return,Right . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 191 +. . . . . . . . . . Offset: 177 . . . . . . . . . . Line: 12 -. . . . . . . . . . Col: 28 +. . . . . . . . . . Col: 14 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 196 @@ -385,70 +401,98 @@ File { . . . . . . . . . . Col: 33 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: expr . . . . . . . . . } -. . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 6: Stmt_If { -. . . . . Roles: Expression,Body,Statement,If -. . . . . StartPosition: { -. . . . . . Offset: 268 -. . . . . . Line: 15 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 304 -. . . . . . Line: 15 -. . . . . . Col: 41 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " yield in language constructs with their own parentheses -" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 205 -. . . . . . . . Line: 14 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 264 -. . . . . . . . Line: 15 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 183 +. . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 186 +. . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . Col: 23 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: key +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "key" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 191 +. . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . Col: 28 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 196 +. . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . Col: 33 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "value" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Expr_Yield { -. . . . . . . Roles: Condition,Return,Incomplete +. . . . . . 6: Stmt_If { +. . . . . . . Roles: If,Statement . . . . . . . StartPosition: { -. . . . . . . . Offset: 272 +. . . . . . . . Offset: 268 . . . . . . . . Line: 15 -. . . . . . . . Col: 9 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 281 +. . . . . . . . Offset: 304 . . . . . . . . Line: 15 -. . . . . . . . Col: 18 +. . . . . . . . Col: 41 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: cond +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Comment { +. . . . . . . . . Roles: Comment,Noop +. . . . . . . . . TOKEN " yield in language constructs with their own parentheses +" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 278 +. . . . . . . . . . Offset: 272 . . . . . . . . . . Line: 15 -. . . . . . . . . . Col: 15 +. . . . . . . . . . Col: 9 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 281 @@ -456,50 +500,58 @@ File { . . . . . . . . . . Col: 18 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: cond +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 278 +. . . . . . . . . . . . Line: 15 +. . . . . . . . . . . . Col: 15 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 281 +. . . . . . . . . . . . Line: 15 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . . 2: Stmt_ElseIf { -. . . . . . . Roles: Statement,If,Else -. . . . . . . StartPosition: { -. . . . . . . . Offset: 285 -. . . . . . . . Line: 15 -. . . . . . . . Col: 22 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 304 -. . . . . . . . Line: 15 -. . . . . . . . Col: 41 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: elseifs -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Expr_Yield { -. . . . . . . . . Roles: Condition,Return,Incomplete +. . . . . . . . 2: Stmt_ElseIf { +. . . . . . . . . Roles: Else,If,Statement . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 293 +. . . . . . . . . . Offset: 285 . . . . . . . . . . Line: 15 -. . . . . . . . . . Col: 30 +. . . . . . . . . . Col: 22 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 302 +. . . . . . . . . . Offset: 304 . . . . . . . . . . Line: 15 -. . . . . . . . . . Col: 39 +. . . . . . . . . . Col: 41 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: cond +. . . . . . . . . . internalRole: elseifs . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 299 +. . . . . . . . . . . . Offset: 293 . . . . . . . . . . . . Line: 15 -. . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . Col: 30 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 302 @@ -507,54 +559,62 @@ File { . . . . . . . . . . . . Col: 39 . . . . . . . . . . . } . . . . . . . . . . . Properties: { -. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . internalRole: cond +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 299 +. . . . . . . . . . . . . . Line: 15 +. . . . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 302 +. . . . . . . . . . . . . . Line: 15 +. . . . . . . . . . . . . . Col: 39 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 7: Stmt_If { -. . . . . Roles: Expression,Body,Statement,If -. . . . . StartPosition: { -. . . . . . Offset: 310 -. . . . . . Line: 16 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 353 -. . . . . . Line: 16 -. . . . . . Col: 48 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Condition,Return,Incomplete +. . . . . . 7: Stmt_If { +. . . . . . . Roles: If,Statement . . . . . . . StartPosition: { -. . . . . . . . Offset: 314 +. . . . . . . . Offset: 310 . . . . . . . . Line: 16 -. . . . . . . . Col: 9 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 323 +. . . . . . . . Offset: 353 . . . . . . . . Line: 16 -. . . . . . . . Col: 18 +. . . . . . . . Col: 48 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: cond +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 320 +. . . . . . . . . . Offset: 314 . . . . . . . . . . Line: 16 -. . . . . . . . . . Col: 15 +. . . . . . . . . . Col: 9 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 323 @@ -562,50 +622,58 @@ File { . . . . . . . . . . Col: 18 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: cond +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 320 +. . . . . . . . . . . . Line: 16 +. . . . . . . . . . . . Col: 15 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 323 +. . . . . . . . . . . . Line: 16 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . . 1: Stmt_ElseIf { -. . . . . . . Roles: Statement,If,Else -. . . . . . . StartPosition: { -. . . . . . . . Offset: 327 -. . . . . . . . Line: 16 -. . . . . . . . Col: 22 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 346 -. . . . . . . . Line: 16 -. . . . . . . . Col: 41 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: elseifs -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Expr_Yield { -. . . . . . . . . Roles: Condition,Return,Incomplete +. . . . . . . . 1: Stmt_ElseIf { +. . . . . . . . . Roles: Else,If,Statement . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 335 +. . . . . . . . . . Offset: 327 . . . . . . . . . . Line: 16 -. . . . . . . . . . Col: 30 +. . . . . . . . . . Col: 22 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 344 +. . . . . . . . . . Offset: 346 . . . . . . . . . . Line: 16 -. . . . . . . . . . Col: 39 +. . . . . . . . . . Col: 41 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: cond +. . . . . . . . . . internalRole: elseifs . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 341 +. . . . . . . . . . . . Offset: 335 . . . . . . . . . . . . Line: 16 -. . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . Col: 30 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 344 @@ -613,54 +681,62 @@ File { . . . . . . . . . . . . Col: 39 . . . . . . . . . . . } . . . . . . . . . . . Properties: { -. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . internalRole: cond +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 341 +. . . . . . . . . . . . . . Line: 16 +. . . . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 344 +. . . . . . . . . . . . . . Line: 16 +. . . . . . . . . . . . . . Col: 39 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 8: Stmt_While { -. . . . . Roles: Expression,Body,Statement,While -. . . . . StartPosition: { -. . . . . . Offset: 359 -. . . . . . Line: 17 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 377 -. . . . . . Line: 17 -. . . . . . Col: 23 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Condition,Return,Incomplete +. . . . . . 8: Stmt_While { +. . . . . . . Roles: Statement,While . . . . . . . StartPosition: { -. . . . . . . . Offset: 366 +. . . . . . . . Offset: 359 . . . . . . . . Line: 17 -. . . . . . . . Col: 12 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 375 +. . . . . . . . Offset: 377 . . . . . . . . Line: 17 -. . . . . . . . Col: 21 +. . . . . . . . Col: 23 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: cond +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 372 +. . . . . . . . . . Offset: 366 . . . . . . . . . . Line: 17 -. . . . . . . . . . Col: 18 +. . . . . . . . . . Col: 12 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 375 @@ -668,52 +744,60 @@ File { . . . . . . . . . . Col: 21 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: cond +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 372 +. . . . . . . . . . . . Line: 17 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 375 +. . . . . . . . . . . . Line: 17 +. . . . . . . . . . . . Col: 21 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 9: Stmt_Do { -. . . . . Roles: Expression,Body,Statement,DoWhile -. . . . . StartPosition: { -. . . . . . Offset: 383 -. . . . . . Line: 18 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 407 -. . . . . . Line: 18 -. . . . . . Col: 29 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Condition,Return,Incomplete +. . . . . . 9: Stmt_Do { +. . . . . . . Roles: DoWhile,Statement . . . . . . . StartPosition: { -. . . . . . . . Offset: 396 +. . . . . . . . Offset: 383 . . . . . . . . Line: 18 -. . . . . . . . Col: 18 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 405 +. . . . . . . . Offset: 407 . . . . . . . . Line: 18 -. . . . . . . . Col: 27 +. . . . . . . . Col: 29 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: cond +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 402 +. . . . . . . . . . Offset: 396 . . . . . . . . . . Line: 18 -. . . . . . . . . . Col: 24 +. . . . . . . . . . Col: 18 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 405 @@ -721,52 +805,60 @@ File { . . . . . . . . . . Col: 27 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: cond +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 402 +. . . . . . . . . . . . Line: 18 +. . . . . . . . . . . . Col: 24 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 405 +. . . . . . . . . . . . Line: 18 +. . . . . . . . . . . . Col: 27 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 10: Stmt_Switch { -. . . . . Roles: Expression,Body,Statement,Switch -. . . . . StartPosition: { -. . . . . . Offset: 413 -. . . . . . Line: 19 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 434 -. . . . . . Line: 19 -. . . . . . Col: 26 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Condition,Return,Incomplete,Switch +. . . . . . 10: Stmt_Switch { +. . . . . . . Roles: Switch . . . . . . . StartPosition: { -. . . . . . . . Offset: 421 +. . . . . . . . Offset: 413 . . . . . . . . Line: 19 -. . . . . . . . Col: 13 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 430 +. . . . . . . . Offset: 434 . . . . . . . . Line: 19 -. . . . . . . . Col: 22 +. . . . . . . . Col: 26 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: cond +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 427 +. . . . . . . . . . Offset: 421 . . . . . . . . . . Line: 19 -. . . . . . . . . . Col: 19 +. . . . . . . . . . Col: 13 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 430 @@ -774,53 +866,60 @@ File { . . . . . . . . . . Col: 22 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: cond +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 427 +. . . . . . . . . . . . Line: 19 +. . . . . . . . . . . . Col: 19 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 430 +. . . . . . . . . . . . Line: 19 +. . . . . . . . . . . . Col: 22 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 11: Expr_Exit { -. . . . . Roles: Expression,Body,Call -. . . . . TOKEN "exit" -. . . . . StartPosition: { -. . . . . . Offset: 440 -. . . . . . Line: 20 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 454 -. . . . . . Line: 20 -. . . . . . Col: 19 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Return,Incomplete +. . . . . . 11: Expr_Exit { +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { -. . . . . . . . Offset: 444 +. . . . . . . . Offset: 440 . . . . . . . . Line: 20 -. . . . . . . . Col: 9 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 453 +. . . . . . . . Offset: 454 . . . . . . . . Line: 20 -. . . . . . . . Col: 18 +. . . . . . . . Col: 19 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 450 +. . . . . . . . . . Offset: 444 . . . . . . . . . . Line: 20 -. . . . . . . . . . Col: 15 +. . . . . . . . . . Col: 9 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 453 @@ -828,104 +927,101 @@ File { . . . . . . . . . . Col: 18 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: expr . . . . . . . . . } -. . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 12: Expr_FuncCall { -. . . . . Roles: Expression,Body,Call -. . . . . StartPosition: { -. . . . . . Offset: 493 -. . . . . . Line: 23 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 508 -. . . . . . Line: 23 -. . . . . . Col: 20 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment -. . . . . . . TOKEN " yield in function calls -" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 462 -. . . . . . . . Line: 22 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 489 -. . . . . . . . Line: 23 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 450 +. . . . . . . . . . . . Line: 20 +. . . . . . . . . . . . Col: 15 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 453 +. . . . . . . . . . . . Line: 20 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name -. . . . . . . TOKEN "func" +. . . . . . 12: Expr_FuncCall { +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 493 . . . . . . . . Line: 23 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 496 +. . . . . . . . Offset: 508 . . . . . . . . Line: 23 -. . . . . . . . Col: 8 +. . . . . . . . Col: 20 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: name +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Comment { -. . . . . . . . . Roles: Noop,Comment +. . . . . . . . . Roles: Comment,Noop . . . . . . . . . TOKEN " yield in function calls " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 462 -. . . . . . . . . . Line: 22 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 +. . . . . . . . . . Col: 1 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: comments +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "func" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 493 +. . . . . . . . . . Line: 23 . . . . . . . . . . Col: 5 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 489 +. . . . . . . . . . Offset: 496 . . . . . . . . . . Line: 23 -. . . . . . . . . . Col: 1 +. . . . . . . . . . Col: 8 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Comment { +. . . . . . . . . . . Roles: Comment,Noop +. . . . . . . . . . . TOKEN " yield in function calls +" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 0 +. . . . . . . . . . . . Line: 1 +. . . . . . . . . . . . Col: 1 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: comments +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . . 2: Arg { -. . . . . . . Roles: Argument -. . . . . . . StartPosition: { -. . . . . . . . Offset: 498 -. . . . . . . . Line: 23 -. . . . . . . . Col: 10 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 507 -. . . . . . . . Line: 23 -. . . . . . . . Col: 19 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . byRef: false -. . . . . . . . internalRole: args -. . . . . . . . unpack: false -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Expr_Yield { -. . . . . . . . . Roles: Return,Incomplete +. . . . . . . . 2: Arg { +. . . . . . . . . Roles: Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 498 . . . . . . . . . . Line: 23 @@ -937,16 +1033,17 @@ File { . . . . . . . . . . Col: 19 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . byRef: false +. . . . . . . . . . internalRole: args +. . . . . . . . . . unpack: false . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 504 +. . . . . . . . . . . . Offset: 498 . . . . . . . . . . . . Line: 23 -. . . . . . . . . . . . Col: 16 +. . . . . . . . . . . . Col: 10 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 507 @@ -956,67 +1053,88 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: value . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 504 +. . . . . . . . . . . . . . Line: 23 +. . . . . . . . . . . . . . Col: 16 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 507 +. . . . . . . . . . . . . . Line: 23 +. . . . . . . . . . . . . . Col: 19 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 13: Expr_MethodCall { -. . . . . Roles: Expression,Body,Call,Identifier -. . . . . TOKEN "func" -. . . . . StartPosition: { -. . . . . . Offset: 515 -. . . . . . Line: 24 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 536 -. . . . . . Line: 24 -. . . . . . Col: 26 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . TOKEN "foo" +. . . . . . 13: Expr_MethodCall { +. . . . . . . Roles: Call,Expression,Identifier . . . . . . . StartPosition: { . . . . . . . . Offset: 515 . . . . . . . . Line: 24 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 518 -. . . . . . . . Line: 24 -. . . . . . . . Col: 8 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: var -. . . . . . . } -. . . . . . } -. . . . . . 1: Arg { -. . . . . . . Roles: Argument -. . . . . . . StartPosition: { -. . . . . . . . Offset: 526 -. . . . . . . . Line: 24 -. . . . . . . . Col: 16 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 535 +. . . . . . . . Offset: 536 . . . . . . . . Line: 24 -. . . . . . . . Col: 25 +. . . . . . . . Col: 26 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . byRef: false -. . . . . . . . internalRole: args -. . . . . . . . unpack: false +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Yield { -. . . . . . . . . Roles: Return,Incomplete +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "func" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { +. . . . . . . . . Roles: Identifier,Receiver,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 515 +. . . . . . . . . . Line: 24 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 518 +. . . . . . . . . . Line: 24 +. . . . . . . . . . Col: 8 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: var +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 2: Arg { +. . . . . . . . . Roles: Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 526 . . . . . . . . . . Line: 24 @@ -1028,16 +1146,17 @@ File { . . . . . . . . . . Col: 25 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . byRef: false +. . . . . . . . . . internalRole: args +. . . . . . . . . . unpack: false . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 532 +. . . . . . . . . . . . Offset: 526 . . . . . . . . . . . . Line: 24 -. . . . . . . . . . . . Col: 22 +. . . . . . . . . . . . Col: 16 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 535 @@ -1047,67 +1166,73 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: value . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 532 +. . . . . . . . . . . . . . Line: 24 +. . . . . . . . . . . . . . Col: 22 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 535 +. . . . . . . . . . . . . . Line: 24 +. . . . . . . . . . . . . . Col: 25 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 14: Expr_New { -. . . . . Roles: Expression,Body,Initialization,Call -. . . . . TOKEN "new" -. . . . . StartPosition: { -. . . . . . Offset: 543 -. . . . . . Line: 25 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 561 -. . . . . . Line: 25 -. . . . . . Col: 23 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified,Type -. . . . . . . TOKEN "Foo" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 547 -. . . . . . . . Line: 25 -. . . . . . . . Col: 9 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 549 -. . . . . . . . Line: 25 -. . . . . . . . Col: 11 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: class -. . . . . . . } -. . . . . . } -. . . . . . 1: Arg { -. . . . . . . Roles: Argument +. . . . . . 14: Expr_New { +. . . . . . . Roles: Call,Expression,Initialization . . . . . . . StartPosition: { -. . . . . . . . Offset: 551 +. . . . . . . . Offset: 543 . . . . . . . . Line: 25 -. . . . . . . . Col: 13 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 560 +. . . . . . . . Offset: 561 . . . . . . . . Line: 25 -. . . . . . . . Col: 22 +. . . . . . . . Col: 23 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . byRef: false -. . . . . . . . internalRole: args -. . . . . . . . unpack: false +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Yield { -. . . . . . . . . Roles: Return,Incomplete +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier,Type +. . . . . . . . . TOKEN "Foo" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 547 +. . . . . . . . . . Line: 25 +. . . . . . . . . . Col: 9 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 549 +. . . . . . . . . . Line: 25 +. . . . . . . . . . Col: 11 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: class +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Arg { +. . . . . . . . . Roles: Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 551 . . . . . . . . . . Line: 25 @@ -1119,16 +1244,17 @@ File { . . . . . . . . . . Col: 22 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . byRef: false +. . . . . . . . . . internalRole: args +. . . . . . . . . . unpack: false . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 557 +. . . . . . . . . . . . Offset: 551 . . . . . . . . . . . . Line: 25 -. . . . . . . . . . . . Col: 19 +. . . . . . . . . . . . Col: 13 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 560 @@ -1138,36 +1264,44 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: value . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 557 +. . . . . . . . . . . . . . Line: 25 +. . . . . . . . . . . . . . Col: 19 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 560 +. . . . . . . . . . . . . . Line: 25 +. . . . . . . . . . . . . . Col: 22 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 15: Expr_YieldFrom { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 569 -. . . . . . Line: 27 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 583 -. . . . . . Line: 27 -. . . . . . Col: 19 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "foo" +. . . . . . 15: Expr_YieldFrom { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 580 +. . . . . . . . Offset: 569 . . . . . . . . Line: 27 -. . . . . . . . Col: 16 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 583 @@ -1175,68 +1309,42 @@ File { . . . . . . . . Col: 19 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 16: Expr_BinaryOp_LogicalAnd { -. . . . . Roles: Expression,Body,Binary,Operator,Boolean,And -. . . . . StartPosition: { -. . . . . . Offset: 590 -. . . . . . Line: 28 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 624 -. . . . . . Line: 28 -. . . . . . Col: 39 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_YieldFrom { -. . . . . . . Roles: Return,Incomplete,Left -. . . . . . . StartPosition: { -. . . . . . . . Offset: 590 -. . . . . . . . Line: 28 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 604 -. . . . . . . . Line: 28 -. . . . . . . . Col: 19 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: left +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "foo" . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 601 -. . . . . . . . . . Line: 28 +. . . . . . . . . . Offset: 580 +. . . . . . . . . . Line: 27 . . . . . . . . . . Col: 16 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 604 -. . . . . . . . . . Line: 28 +. . . . . . . . . . Offset: 583 +. . . . . . . . . . Line: 27 . . . . . . . . . . Col: 19 . . . . . . . . . } . . . . . . . . . Properties: { . . . . . . . . . . internalRole: expr . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Expr_YieldFrom { -. . . . . . . Roles: Return,Incomplete,Right +. . . . . . 16: Expr_BinaryOp_LogicalAnd { +. . . . . . . Roles: And,Binary,Boolean,Expression,Operator . . . . . . . StartPosition: { -. . . . . . . . Offset: 610 +. . . . . . . . Offset: 590 . . . . . . . . Line: 28 -. . . . . . . . Col: 25 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 624 @@ -1244,16 +1352,58 @@ File { . . . . . . . . Col: 39 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: right +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "bar" +. . . . . . . . 0: Expr_YieldFrom { +. . . . . . . . . Roles: Incomplete,Left,Return +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 590 +. . . . . . . . . . Line: 28 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 604 +. . . . . . . . . . Line: 28 +. . . . . . . . . . Col: 19 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: left +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 601 +. . . . . . . . . . . . Line: 28 +. . . . . . . . . . . . Col: 16 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 604 +. . . . . . . . . . . . Line: 28 +. . . . . . . . . . . . Col: 19 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: expr +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_YieldFrom { +. . . . . . . . . Roles: Incomplete,Return,Right . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 621 +. . . . . . . . . . Offset: 610 . . . . . . . . . . Line: 28 -. . . . . . . . . . Col: 36 +. . . . . . . . . . Col: 25 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 624 @@ -1261,35 +1411,44 @@ File { . . . . . . . . . . Col: 39 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: expr +. . . . . . . . . . internalRole: right +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 621 +. . . . . . . . . . . . Line: 28 +. . . . . . . . . . . . Col: 36 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 624 +. . . . . . . . . . . . Line: 28 +. . . . . . . . . . . . Col: 39 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: expr +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "bar" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 17: Expr_YieldFrom { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 631 -. . . . . . Line: 29 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 652 -. . . . . . Line: 29 -. . . . . . Col: 26 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . Roles: Expression,Operator,Add +. . . . . . 17: Expr_YieldFrom { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 642 +. . . . . . . . Offset: 631 . . . . . . . . Line: 29 -. . . . . . . . Col: 16 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 652 @@ -1297,41 +1456,75 @@ File { . . . . . . . . Col: 26 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . TOKEN "foo" +. . . . . . . . 0: Expr_BinaryOp_Plus { +. . . . . . . . . Roles: Add,Expression,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 642 . . . . . . . . . . Line: 29 . . . . . . . . . . Col: 16 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 645 -. . . . . . . . . . Line: 29 -. . . . . . . . . . Col: 19 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: left -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 1: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable,Right -. . . . . . . . . TOKEN "bar" -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 649 -. . . . . . . . . . Line: 29 -. . . . . . . . . . Col: 23 -. . . . . . . . . } -. . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 652 . . . . . . . . . . Line: 29 . . . . . . . . . . Col: 26 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: right +. . . . . . . . . . internalRole: expr +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Left,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 642 +. . . . . . . . . . . . Line: 29 +. . . . . . . . . . . . Col: 16 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 645 +. . . . . . . . . . . . Line: 29 +. . . . . . . . . . . . Col: 19 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: left +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "foo" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Variable { +. . . . . . . . . . . Roles: Identifier,Right,Variable +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 649 +. . . . . . . . . . . . Line: 29 +. . . . . . . . . . . . Col: 23 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 652 +. . . . . . . . . . . . Line: 29 +. . . . . . . . . . . . Col: 26 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: right +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "bar" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } diff --git a/fixtures/generator_yieldPrecedence.php.native b/fixtures/generator_yieldPrecedence.php.native index 13fdb55..b953668 100644 --- a/fixtures/generator_yieldPrecedence.php.native +++ b/fixtures/generator_yieldPrecedence.php.native @@ -2,280 +2,269 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 376, - "endLine": 13, - "endTokenPos": 166, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "gen", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 42, - "endLine": 4, - "endTokenPos": 16, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 10 - }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 376, + "endLine": 13, + "endTokenPos": 166, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "gen", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { "attributes": { "endFilePos": 42, "endLine": 4, "endTokenPos": 16, - "startFilePos": 34, + "startFilePos": 28, "startLine": 4, - "startTokenPos": 12 + "startTokenPos": 10 }, - "left": { + "key": null, + "nodeType": "Expr_Yield", + "value": { "attributes": { - "endFilePos": 36, + "endFilePos": 42, "endLine": 4, - "endTokenPos": 12, - "kind": 2, + "endTokenPos": 16, "startFilePos": 34, "startLine": 4, "startTokenPos": 12 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 42, - "endLine": 4, - "endTokenPos": 16, - "kind": 2, - "startFilePos": 40, - "startLine": 4, - "startTokenPos": 16 + "left": { + "attributes": { + "endFilePos": 36, + "endLine": 4, + "endTokenPos": 12, + "kind": 2, + "startFilePos": 34, + "startLine": 4, + "startTokenPos": 12 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 42, + "endLine": 4, + "endTokenPos": 16, + "kind": 2, + "startFilePos": 40, + "startLine": 4, + "startTokenPos": 16 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - }, - { - "attributes": { - "endFilePos": 64, - "endLine": 5, - "endTokenPos": 25, - "startFilePos": 49, - "startLine": 5, - "startTokenPos": 19 }, - "left": { + { "attributes": { - "endFilePos": 57, + "endFilePos": 64, "endLine": 5, - "endTokenPos": 21, + "endTokenPos": 25, "startFilePos": 49, "startLine": 5, "startTokenPos": 19 }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "left": { "attributes": { "endFilePos": 57, "endLine": 5, "endTokenPos": 21, + "startFilePos": 49, + "startLine": 5, + "startTokenPos": 19 + }, + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 57, + "endLine": 5, + "endTokenPos": 21, + "kind": 2, + "startFilePos": 55, + "startLine": 5, + "startTokenPos": 21 + }, + "nodeType": "Scalar_String", + "value": "a" + } + }, + "nodeType": "Expr_BinaryOp_LogicalOr", + "right": { + "attributes": { + "endFilePos": 64, + "endLine": 5, + "endTokenPos": 25, "kind": 2, - "startFilePos": 55, + "startFilePos": 62, "startLine": 5, - "startTokenPos": 21 + "startTokenPos": 25 }, - "nodeType": "Scalar_String", - "value": "a" + "expr": null, + "nodeType": "Expr_Exit" } }, - "nodeType": "Expr_BinaryOp_LogicalOr", - "right": { - "attributes": { - "endFilePos": 64, - "endLine": 5, - "endTokenPos": 25, - "kind": 2, - "startFilePos": 62, - "startLine": 5, - "startTokenPos": 25 - }, - "expr": null, - "nodeType": "Expr_Exit" - } - }, - { - "attributes": { - "endFilePos": 92, - "endLine": 6, - "endTokenPos": 38, - "startFilePos": 71, - "startLine": 6, - "startTokenPos": 28 - }, - "key": { - "attributes": { - "endFilePos": 79, - "endLine": 6, - "endTokenPos": 30, - "kind": 2, - "startFilePos": 77, - "startLine": 6, - "startTokenPos": 30 - }, - "nodeType": "Scalar_String", - "value": "k" - }, - "nodeType": "Expr_Yield", - "value": { + { "attributes": { "endFilePos": 92, "endLine": 6, "endTokenPos": 38, - "startFilePos": 84, + "startFilePos": 71, "startLine": 6, - "startTokenPos": 34 + "startTokenPos": 28 }, - "left": { + "key": { "attributes": { - "endFilePos": 86, + "endFilePos": 79, "endLine": 6, - "endTokenPos": 34, + "endTokenPos": 30, "kind": 2, - "startFilePos": 84, + "startFilePos": 77, "startLine": 6, - "startTokenPos": 34 + "startTokenPos": 30 }, "nodeType": "Scalar_String", - "value": "a" + "value": "k" }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { + "nodeType": "Expr_Yield", + "value": { "attributes": { "endFilePos": 92, "endLine": 6, "endTokenPos": 38, - "kind": 2, - "startFilePos": 90, + "startFilePos": 84, "startLine": 6, - "startTokenPos": 38 + "startTokenPos": 34 }, - "nodeType": "Scalar_String", - "value": "b" + "left": { + "attributes": { + "endFilePos": 86, + "endLine": 6, + "endTokenPos": 34, + "kind": 2, + "startFilePos": 84, + "startLine": 6, + "startTokenPos": 34 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 92, + "endLine": 6, + "endTokenPos": 38, + "kind": 2, + "startFilePos": 90, + "startLine": 6, + "startTokenPos": 38 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - }, - { - "attributes": { - "endFilePos": 121, - "endLine": 7, - "endTokenPos": 51, - "startFilePos": 99, - "startLine": 7, - "startTokenPos": 41 }, - "left": { + { "attributes": { - "endFilePos": 114, + "endFilePos": 121, "endLine": 7, - "endTokenPos": 47, + "endTokenPos": 51, "startFilePos": 99, "startLine": 7, "startTokenPos": 41 }, - "key": { + "left": { "attributes": { - "endFilePos": 107, + "endFilePos": 114, "endLine": 7, - "endTokenPos": 43, - "kind": 2, - "startFilePos": 105, + "endTokenPos": 47, + "startFilePos": 99, "startLine": 7, - "startTokenPos": 43 + "startTokenPos": 41 }, - "nodeType": "Scalar_String", - "value": "k" + "key": { + "attributes": { + "endFilePos": 107, + "endLine": 7, + "endTokenPos": 43, + "kind": 2, + "startFilePos": 105, + "startLine": 7, + "startTokenPos": 43 + }, + "nodeType": "Scalar_String", + "value": "k" + }, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 114, + "endLine": 7, + "endTokenPos": 47, + "kind": 2, + "startFilePos": 112, + "startLine": 7, + "startTokenPos": 47 + }, + "nodeType": "Scalar_String", + "value": "a" + } }, - "nodeType": "Expr_Yield", - "value": { + "nodeType": "Expr_BinaryOp_LogicalOr", + "right": { "attributes": { - "endFilePos": 114, + "endFilePos": 121, "endLine": 7, - "endTokenPos": 47, + "endTokenPos": 51, "kind": 2, - "startFilePos": 112, + "startFilePos": 119, "startLine": 7, - "startTokenPos": 47 + "startTokenPos": 51 }, - "nodeType": "Scalar_String", - "value": "a" + "expr": null, + "nodeType": "Expr_Exit" } }, - "nodeType": "Expr_BinaryOp_LogicalOr", - "right": { - "attributes": { - "endFilePos": 121, - "endLine": 7, - "endTokenPos": 51, - "kind": 2, - "startFilePos": 119, - "startLine": 7, - "startTokenPos": 51 - }, - "expr": null, - "nodeType": "Expr_Exit" - } - }, - { - "args": [ - { - "attributes": { - "endFilePos": 160, - "endLine": 8, - "endTokenPos": 68, - "startFilePos": 137, - "startLine": 8, - "startTokenPos": 56 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 160, "endLine": 8, "endTokenPos": 68, - "kind": 2, "startFilePos": 137, "startLine": 8, "startTokenPos": 56 }, - "items": [ - { - "attributes": { - "endFilePos": 159, - "endLine": 8, - "endTokenPos": 67, - "startFilePos": 138, - "startLine": 8, - "startTokenPos": 57 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 160, + "endLine": 8, + "endTokenPos": 68, + "kind": 2, + "startFilePos": 137, + "startLine": 8, + "startTokenPos": 56 + }, + "items": [ + { "attributes": { "endFilePos": 159, "endLine": 8, @@ -284,143 +273,132 @@ "startLine": 8, "startTokenPos": 57 }, - "key": { - "attributes": { - "endFilePos": 146, - "endLine": 8, - "endTokenPos": 59, - "kind": 2, - "startFilePos": 144, - "startLine": 8, - "startTokenPos": 59 - }, - "nodeType": "Scalar_String", - "value": "k" - }, - "nodeType": "Expr_Yield", + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", "value": { "attributes": { "endFilePos": 159, "endLine": 8, "endTokenPos": 67, - "startFilePos": 151, + "startFilePos": 138, "startLine": 8, - "startTokenPos": 63 + "startTokenPos": 57 }, - "left": { + "key": { "attributes": { - "endFilePos": 153, + "endFilePos": 146, "endLine": 8, - "endTokenPos": 63, + "endTokenPos": 59, "kind": 2, - "startFilePos": 151, + "startFilePos": 144, "startLine": 8, - "startTokenPos": 63 + "startTokenPos": 59 }, "nodeType": "Scalar_String", - "value": "a" + "value": "k" }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { + "nodeType": "Expr_Yield", + "value": { "attributes": { "endFilePos": 159, "endLine": 8, "endTokenPos": 67, - "kind": 2, - "startFilePos": 157, + "startFilePos": 151, "startLine": 8, - "startTokenPos": 67 + "startTokenPos": 63 }, - "nodeType": "Scalar_String", - "value": "b" + "left": { + "attributes": { + "endFilePos": 153, + "endLine": 8, + "endTokenPos": 63, + "kind": 2, + "startFilePos": 151, + "startLine": 8, + "startTokenPos": 63 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 159, + "endLine": 8, + "endTokenPos": 67, + "kind": 2, + "startFilePos": 157, + "startLine": 8, + "startTokenPos": 67 + }, + "nodeType": "Scalar_String", + "value": "b" + } } } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ], - "attributes": { - "endFilePos": 161, - "endLine": 8, - "endTokenPos": 69, - "startFilePos": 128, - "startLine": 8, - "startTokenPos": 54 - }, - "name": { + ], "attributes": { - "endFilePos": 135, + "endFilePos": 161, "endLine": 8, - "endTokenPos": 54, + "endTokenPos": 69, "startFilePos": 128, "startLine": 8, "startTokenPos": 54 }, - "nodeType": "Name", - "parts": [ - "var_dump" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "attributes": { - "endFilePos": 210, - "endLine": 9, - "endTokenPos": 90, - "startFilePos": 168, - "startLine": 9, - "startTokenPos": 72 + "name": { + "attributes": { + "endFilePos": 135, + "endLine": 8, + "endTokenPos": 54, + "startFilePos": 128, + "startLine": 8, + "startTokenPos": 54 + }, + "nodeType": "Name", + "parts": [ + "var_dump" + ] + }, + "nodeType": "Expr_FuncCall" }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + { "attributes": { "endFilePos": 210, "endLine": 9, "endTokenPos": 90, - "startFilePos": 174, + "startFilePos": 168, "startLine": 9, - "startTokenPos": 74 - }, - "key": { - "attributes": { - "endFilePos": 183, - "endLine": 9, - "endTokenPos": 76, - "kind": 2, - "startFilePos": 180, - "startLine": 9, - "startTokenPos": 76 - }, - "nodeType": "Scalar_String", - "value": "k1" + "startTokenPos": 72 }, + "key": null, "nodeType": "Expr_Yield", "value": { "attributes": { "endFilePos": 210, "endLine": 9, "endTokenPos": 90, - "startFilePos": 188, + "startFilePos": 174, "startLine": 9, - "startTokenPos": 80 + "startTokenPos": 74 }, "key": { "attributes": { - "endFilePos": 197, + "endFilePos": 183, "endLine": 9, - "endTokenPos": 82, + "endTokenPos": 76, "kind": 2, - "startFilePos": 194, + "startFilePos": 180, "startLine": 9, - "startTokenPos": 82 + "startTokenPos": 76 }, "nodeType": "Scalar_String", - "value": "k2" + "value": "k1" }, "nodeType": "Expr_Yield", "value": { @@ -428,176 +406,187 @@ "endFilePos": 210, "endLine": 9, "endTokenPos": 90, - "startFilePos": 202, + "startFilePos": 188, "startLine": 9, - "startTokenPos": 86 + "startTokenPos": 80 }, - "left": { + "key": { "attributes": { - "endFilePos": 204, + "endFilePos": 197, "endLine": 9, - "endTokenPos": 86, + "endTokenPos": 82, "kind": 2, - "startFilePos": 202, + "startFilePos": 194, "startLine": 9, - "startTokenPos": 86 + "startTokenPos": 82 }, "nodeType": "Scalar_String", - "value": "a" + "value": "k2" }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { + "nodeType": "Expr_Yield", + "value": { "attributes": { "endFilePos": 210, "endLine": 9, "endTokenPos": 90, - "kind": 2, - "startFilePos": 208, + "startFilePos": 202, "startLine": 9, - "startTokenPos": 90 + "startTokenPos": 86 }, - "nodeType": "Scalar_String", - "value": "b" + "left": { + "attributes": { + "endFilePos": 204, + "endLine": 9, + "endTokenPos": 86, + "kind": 2, + "startFilePos": 202, + "startLine": 9, + "startTokenPos": 86 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 210, + "endLine": 9, + "endTokenPos": 90, + "kind": 2, + "startFilePos": 208, + "startLine": 9, + "startTokenPos": 90 + }, + "nodeType": "Scalar_String", + "value": "b" + } } } } - } - }, - { - "attributes": { - "endFilePos": 261, - "endLine": 10, - "endTokenPos": 113, - "startFilePos": 217, - "startLine": 10, - "startTokenPos": 93 }, - "key": { + { "attributes": { - "endFilePos": 248, + "endFilePos": 261, "endLine": 10, - "endTokenPos": 105, - "startFilePos": 223, + "endTokenPos": 113, + "startFilePos": 217, "startLine": 10, - "startTokenPos": 95 + "startTokenPos": 93 }, "key": { "attributes": { - "endFilePos": 232, + "endFilePos": 248, "endLine": 10, - "endTokenPos": 97, - "kind": 2, - "startFilePos": 229, + "endTokenPos": 105, + "startFilePos": 223, "startLine": 10, - "startTokenPos": 97 + "startTokenPos": 95 }, - "nodeType": "Scalar_String", - "value": "k1" - }, - "nodeType": "Expr_Yield", - "value": { - "attributes": { - "endFilePos": 247, - "endLine": 10, - "endTokenPos": 104, - "startFilePos": 238, - "startLine": 10, - "startTokenPos": 102 + "key": { + "attributes": { + "endFilePos": 232, + "endLine": 10, + "endTokenPos": 97, + "kind": 2, + "startFilePos": 229, + "startLine": 10, + "startTokenPos": 97 + }, + "nodeType": "Scalar_String", + "value": "k1" }, - "key": null, "nodeType": "Expr_Yield", "value": { "attributes": { "endFilePos": 247, "endLine": 10, "endTokenPos": 104, - "kind": 2, - "startFilePos": 244, + "startFilePos": 238, "startLine": 10, - "startTokenPos": 104 + "startTokenPos": 102 }, - "nodeType": "Scalar_String", - "value": "k2" + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 247, + "endLine": 10, + "endTokenPos": 104, + "kind": 2, + "startFilePos": 244, + "startLine": 10, + "startTokenPos": 104 + }, + "nodeType": "Scalar_String", + "value": "k2" + } } - } - }, - "nodeType": "Expr_Yield", - "value": { - "attributes": { - "endFilePos": 261, - "endLine": 10, - "endTokenPos": 113, - "startFilePos": 253, - "startLine": 10, - "startTokenPos": 109 }, - "left": { + "nodeType": "Expr_Yield", + "value": { "attributes": { - "endFilePos": 255, + "endFilePos": 261, "endLine": 10, - "endTokenPos": 109, - "kind": 2, + "endTokenPos": 113, "startFilePos": 253, "startLine": 10, "startTokenPos": 109 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 261, - "endLine": 10, - "endTokenPos": 113, - "kind": 2, - "startFilePos": 259, - "startLine": 10, - "startTokenPos": 113 + "left": { + "attributes": { + "endFilePos": 255, + "endLine": 10, + "endTokenPos": 109, + "kind": 2, + "startFilePos": 253, + "startLine": 10, + "startTokenPos": 109 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 261, + "endLine": 10, + "endTokenPos": 113, + "kind": 2, + "startFilePos": 259, + "startLine": 10, + "startTokenPos": 113 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - }, - { - "args": [ - { - "attributes": { - "endFilePos": 315, - "endLine": 11, - "endTokenPos": 136, - "startFilePos": 277, - "startLine": 11, - "startTokenPos": 118 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + }, + { + "args": [ + { "attributes": { "endFilePos": 315, "endLine": 11, "endTokenPos": 136, - "kind": 2, "startFilePos": 277, "startLine": 11, "startTokenPos": 118 }, - "items": [ - { - "attributes": { - "endFilePos": 314, - "endLine": 11, - "endTokenPos": 135, - "startFilePos": 278, - "startLine": 11, - "startTokenPos": 119 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 315, + "endLine": 11, + "endTokenPos": 136, + "kind": 2, + "startFilePos": 277, + "startLine": 11, + "startTokenPos": 118 + }, + "items": [ + { "attributes": { "endFilePos": 314, "endLine": 11, @@ -606,41 +595,30 @@ "startLine": 11, "startTokenPos": 119 }, - "key": { - "attributes": { - "endFilePos": 287, - "endLine": 11, - "endTokenPos": 121, - "kind": 2, - "startFilePos": 284, - "startLine": 11, - "startTokenPos": 121 - }, - "nodeType": "Scalar_String", - "value": "k1" - }, - "nodeType": "Expr_Yield", + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", "value": { "attributes": { "endFilePos": 314, "endLine": 11, "endTokenPos": 135, - "startFilePos": 292, + "startFilePos": 278, "startLine": 11, - "startTokenPos": 125 + "startTokenPos": 119 }, "key": { "attributes": { - "endFilePos": 301, + "endFilePos": 287, "endLine": 11, - "endTokenPos": 127, + "endTokenPos": 121, "kind": 2, - "startFilePos": 298, + "startFilePos": 284, "startLine": 11, - "startTokenPos": 127 + "startTokenPos": 121 }, "nodeType": "Scalar_String", - "value": "k2" + "value": "k1" }, "nodeType": "Expr_Yield", "value": { @@ -648,223 +626,248 @@ "endFilePos": 314, "endLine": 11, "endTokenPos": 135, - "startFilePos": 306, + "startFilePos": 292, "startLine": 11, - "startTokenPos": 131 + "startTokenPos": 125 }, - "left": { + "key": { "attributes": { - "endFilePos": 308, + "endFilePos": 301, "endLine": 11, - "endTokenPos": 131, + "endTokenPos": 127, "kind": 2, - "startFilePos": 306, + "startFilePos": 298, "startLine": 11, - "startTokenPos": 131 + "startTokenPos": 127 }, "nodeType": "Scalar_String", - "value": "a" + "value": "k2" }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { + "nodeType": "Expr_Yield", + "value": { "attributes": { "endFilePos": 314, "endLine": 11, "endTokenPos": 135, - "kind": 2, - "startFilePos": 312, + "startFilePos": 306, "startLine": 11, - "startTokenPos": 135 + "startTokenPos": 131 }, - "nodeType": "Scalar_String", - "value": "b" + "left": { + "attributes": { + "endFilePos": 308, + "endLine": 11, + "endTokenPos": 131, + "kind": 2, + "startFilePos": 306, + "startLine": 11, + "startTokenPos": 131 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 314, + "endLine": 11, + "endTokenPos": 135, + "kind": 2, + "startFilePos": 312, + "startLine": 11, + "startTokenPos": 135 + }, + "nodeType": "Scalar_String", + "value": "b" + } } } } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ], - "attributes": { - "endFilePos": 316, - "endLine": 11, - "endTokenPos": 137, - "startFilePos": 268, - "startLine": 11, - "startTokenPos": 116 - }, - "name": { + ], "attributes": { - "endFilePos": 275, + "endFilePos": 316, "endLine": 11, - "endTokenPos": 116, + "endTokenPos": 137, "startFilePos": 268, "startLine": 11, "startTokenPos": 116 }, - "nodeType": "Name", - "parts": [ - "var_dump" - ] - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { + "name": { "attributes": { - "endFilePos": 372, - "endLine": 12, - "endTokenPos": 162, - "startFilePos": 332, - "startLine": 12, - "startTokenPos": 142 + "endFilePos": 275, + "endLine": 11, + "endTokenPos": 116, + "startFilePos": 268, + "startLine": 11, + "startTokenPos": 116 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "var_dump" + ] + }, + "nodeType": "Expr_FuncCall" + }, + { + "args": [ + { "attributes": { "endFilePos": 372, "endLine": 12, "endTokenPos": 162, - "kind": 2, "startFilePos": 332, "startLine": 12, "startTokenPos": 142 }, - "items": [ - { - "attributes": { - "endFilePos": 371, - "endLine": 12, - "endTokenPos": 161, - "startFilePos": 333, - "startLine": 12, - "startTokenPos": 143 - }, - "byRef": false, - "key": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 372, + "endLine": 12, + "endTokenPos": 162, + "kind": 2, + "startFilePos": 332, + "startLine": 12, + "startTokenPos": 142 + }, + "items": [ + { "attributes": { - "endFilePos": 358, + "endFilePos": 371, "endLine": 12, - "endTokenPos": 153, + "endTokenPos": 161, "startFilePos": 333, "startLine": 12, "startTokenPos": 143 }, + "byRef": false, "key": { "attributes": { - "endFilePos": 342, + "endFilePos": 358, "endLine": 12, - "endTokenPos": 145, - "kind": 2, - "startFilePos": 339, + "endTokenPos": 153, + "startFilePos": 333, "startLine": 12, - "startTokenPos": 145 + "startTokenPos": 143 }, - "nodeType": "Scalar_String", - "value": "k1" - }, - "nodeType": "Expr_Yield", - "value": { - "attributes": { - "endFilePos": 357, - "endLine": 12, - "endTokenPos": 152, - "startFilePos": 348, - "startLine": 12, - "startTokenPos": 150 + "key": { + "attributes": { + "endFilePos": 342, + "endLine": 12, + "endTokenPos": 145, + "kind": 2, + "startFilePos": 339, + "startLine": 12, + "startTokenPos": 145 + }, + "nodeType": "Scalar_String", + "value": "k1" }, - "key": null, "nodeType": "Expr_Yield", "value": { "attributes": { "endFilePos": 357, "endLine": 12, "endTokenPos": 152, - "kind": 2, - "startFilePos": 354, + "startFilePos": 348, "startLine": 12, - "startTokenPos": 152 + "startTokenPos": 150 }, - "nodeType": "Scalar_String", - "value": "k2" + "key": null, + "nodeType": "Expr_Yield", + "value": { + "attributes": { + "endFilePos": 357, + "endLine": 12, + "endTokenPos": 152, + "kind": 2, + "startFilePos": 354, + "startLine": 12, + "startTokenPos": 152 + }, + "nodeType": "Scalar_String", + "value": "k2" + } } - } - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 371, - "endLine": 12, - "endTokenPos": 161, - "startFilePos": 363, - "startLine": 12, - "startTokenPos": 157 }, - "left": { + "nodeType": "Expr_ArrayItem", + "value": { "attributes": { - "endFilePos": 365, + "endFilePos": 371, "endLine": 12, - "endTokenPos": 157, - "kind": 2, + "endTokenPos": 161, "startFilePos": 363, "startLine": 12, "startTokenPos": 157 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 371, - "endLine": 12, - "endTokenPos": 161, - "kind": 2, - "startFilePos": 369, - "startLine": 12, - "startTokenPos": 161 + "left": { + "attributes": { + "endFilePos": 365, + "endLine": 12, + "endTokenPos": 157, + "kind": 2, + "startFilePos": 363, + "startLine": 12, + "startTokenPos": 157 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 371, + "endLine": 12, + "endTokenPos": 161, + "kind": 2, + "startFilePos": 369, + "startLine": 12, + "startTokenPos": 161 + }, + "nodeType": "Scalar_String", + "value": "b" + } } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ], - "attributes": { - "endFilePos": 373, - "endLine": 12, - "endTokenPos": 163, - "startFilePos": 323, - "startLine": 12, - "startTokenPos": 140 - }, - "name": { + ], "attributes": { - "endFilePos": 330, + "endFilePos": 373, "endLine": 12, - "endTokenPos": 140, + "endTokenPos": 163, "startFilePos": 323, "startLine": 12, "startTokenPos": 140 }, - "nodeType": "Name", - "parts": [ - "var_dump" - ] - }, - "nodeType": "Expr_FuncCall" - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 330, + "endLine": 12, + "endTokenPos": 140, + "startFilePos": 323, + "startLine": 12, + "startTokenPos": 140 + }, + "nodeType": "Name", + "parts": [ + "var_dump" + ] + }, + "nodeType": "Expr_FuncCall" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/generator_yieldPrecedence.php.uast b/fixtures/generator_yieldPrecedence.php.uast index 1fa30b2..3fffc83 100644 --- a/fixtures/generator_yieldPrecedence.php.uast +++ b/fixtures/generator_yieldPrecedence.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "gen" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,28 +22,24 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 28 -. . . . . . Line: 4 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 42 -. . . . . . Line: 4 -. . . . . . Col: 19 +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType . . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_BinaryOp_Concat { -. . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . 0: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 34 +. . . . . . . . Offset: 28 . . . . . . . . Line: 4 -. . . . . . . . Col: 11 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 42 @@ -52,86 +47,85 @@ File { . . . . . . . . Col: 19 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . TOKEN "a" +. . . . . . . . 0: Expr_BinaryOp_Concat { +. . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 34 . . . . . . . . . . Line: 4 . . . . . . . . . . Col: 11 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 36 -. . . . . . . . . . Line: 4 -. . . . . . . . . . Col: 13 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: left -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . TOKEN "b" -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 40 -. . . . . . . . . . Line: 4 -. . . . . . . . . . Col: 17 -. . . . . . . . . } -. . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 42 . . . . . . . . . . Line: 4 . . . . . . . . . . Col: 19 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: right +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 34 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 11 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 36 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 13 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: left +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 40 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 17 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 42 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 19 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: right +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 1: Expr_BinaryOp_LogicalOr { -. . . . . Roles: Expression,Body,Binary,Operator,Boolean,Or -. . . . . StartPosition: { -. . . . . . Offset: 49 -. . . . . . Line: 5 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 64 -. . . . . . Line: 5 -. . . . . . Col: 20 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Return,Incomplete,Left +. . . . . . 1: Expr_BinaryOp_LogicalOr { +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Or . . . . . . . StartPosition: { . . . . . . . . Offset: 49 . . . . . . . . Line: 5 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 57 +. . . . . . . . Offset: 64 . . . . . . . . Line: 5 -. . . . . . . . Col: 13 +. . . . . . . . Col: 20 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: left +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "a" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Left,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 55 +. . . . . . . . . . Offset: 49 . . . . . . . . . . Line: 5 -. . . . . . . . . . Col: 11 +. . . . . . . . . . Col: 5 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 57 @@ -139,69 +133,52 @@ File { . . . . . . . . . . Col: 13 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: left +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 55 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 11 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 57 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 13 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Exit { +. . . . . . . . . Roles: Call,Expression,Right +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 62 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 18 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 64 +. . . . . . . . . . Line: 5 +. . . . . . . . . . Col: 20 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: right . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Expr_Exit { -. . . . . . . Roles: Expression,Call,Right -. . . . . . . TOKEN "exit" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 62 -. . . . . . . . Line: 5 -. . . . . . . . Col: 18 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 64 -. . . . . . . . Line: 5 -. . . . . . . . Col: 20 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: right -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 2: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 71 -. . . . . . Line: 6 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 92 -. . . . . . Line: 6 -. . . . . . Col: 26 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String -. . . . . . . TOKEN "k" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 77 -. . . . . . . . Line: 6 -. . . . . . . . Col: 11 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 79 -. . . . . . . . Line: 6 -. . . . . . . . Col: 13 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: key -. . . . . . . } -. . . . . . } -. . . . . . 1: Expr_BinaryOp_Concat { -. . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . 2: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 84 +. . . . . . . . Offset: 71 . . . . . . . . Line: 6 -. . . . . . . . Col: 18 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 92 @@ -209,33 +186,32 @@ File { . . . . . . . . Col: 26 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . TOKEN "a" +. . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . TOKEN "k" . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 84 +. . . . . . . . . . Offset: 77 . . . . . . . . . . Line: 6 -. . . . . . . . . . Col: 18 +. . . . . . . . . . Col: 11 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 86 +. . . . . . . . . . Offset: 79 . . . . . . . . . . Line: 6 -. . . . . . . . . . Col: 20 +. . . . . . . . . . Col: 13 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: left +. . . . . . . . . . internalRole: key . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . TOKEN "b" +. . . . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 90 +. . . . . . . . . . Offset: 84 . . . . . . . . . . Line: 6 -. . . . . . . . . . Col: 24 +. . . . . . . . . . Col: 18 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 92 @@ -243,153 +219,168 @@ File { . . . . . . . . . . Col: 26 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: right +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 84 +. . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 86 +. . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: left +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 90 +. . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . Col: 24 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 92 +. . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . Col: 26 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: right +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 3: Expr_BinaryOp_LogicalOr { -. . . . . Roles: Expression,Body,Binary,Operator,Boolean,Or -. . . . . StartPosition: { -. . . . . . Offset: 99 -. . . . . . Line: 7 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 121 -. . . . . . Line: 7 -. . . . . . Col: 27 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Return,Incomplete,Left +. . . . . . 3: Expr_BinaryOp_LogicalOr { +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Or . . . . . . . StartPosition: { . . . . . . . . Offset: 99 . . . . . . . . Line: 7 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 114 +. . . . . . . . Offset: 121 . . . . . . . . Line: 7 -. . . . . . . . Col: 20 +. . . . . . . . Col: 27 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: left +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "k" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Left,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 105 +. . . . . . . . . . Offset: 99 . . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 11 +. . . . . . . . . . Col: 5 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 107 +. . . . . . . . . . Offset: 114 . . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 13 +. . . . . . . . . . Col: 20 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: key +. . . . . . . . . . internalRole: left +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . TOKEN "k" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 105 +. . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . Col: 11 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 107 +. . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . Col: 13 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: key +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 112 +. . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . Col: 18 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 114 +. . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "a" +. . . . . . . . 1: Expr_Exit { +. . . . . . . . . Roles: Call,Expression,Right . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 112 +. . . . . . . . . . Offset: 119 . . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 18 +. . . . . . . . . . Col: 25 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 114 +. . . . . . . . . . Offset: 121 . . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 20 +. . . . . . . . . . Col: 27 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: right . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 1: Expr_Exit { -. . . . . . . Roles: Expression,Call,Right -. . . . . . . TOKEN "exit" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 119 -. . . . . . . . Line: 7 -. . . . . . . . Col: 25 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 121 -. . . . . . . . Line: 7 -. . . . . . . . Col: 27 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: right -. . . . . . . } -. . . . . . } -. . . . . } -. . . . } -. . . . 4: Expr_FuncCall { -. . . . . Roles: Expression,Body,Call -. . . . . StartPosition: { -. . . . . . Offset: 128 -. . . . . . Line: 8 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 161 -. . . . . . Line: 8 -. . . . . . Col: 38 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name -. . . . . . . TOKEN "var_dump" +. . . . . . 4: Expr_FuncCall { +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 128 . . . . . . . . Line: 8 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 135 +. . . . . . . . Offset: 161 . . . . . . . . Line: 8 -. . . . . . . . Col: 12 +. . . . . . . . Col: 38 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: name -. . . . . . . } -. . . . . . } -. . . . . . 1: Arg { -. . . . . . . Roles: Argument -. . . . . . . StartPosition: { -. . . . . . . . Offset: 137 -. . . . . . . . Line: 8 -. . . . . . . . Col: 14 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 160 -. . . . . . . . Line: 8 -. . . . . . . . Col: 37 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . byRef: false -. . . . . . . . internalRole: args -. . . . . . . . unpack: false +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "var_dump" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 128 +. . . . . . . . . . Line: 8 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 135 +. . . . . . . . . . Line: 8 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Arg { +. . . . . . . . . Roles: Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 137 . . . . . . . . . . Line: 8 @@ -401,28 +392,29 @@ File { . . . . . . . . . . Col: 37 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . byRef: false +. . . . . . . . . . internalRole: args +. . . . . . . . . . unpack: false . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . 0: Expr_Array { +. . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 138 +. . . . . . . . . . . . Offset: 137 . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . Col: 15 +. . . . . . . . . . . . Col: 14 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . Offset: 159 +. . . . . . . . . . . . Offset: 160 . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . Col: 37 . . . . . . . . . . . } . . . . . . . . . . . Properties: { -. . . . . . . . . . . . byRef: false -. . . . . . . . . . . . internalRole: items +. . . . . . . . . . . . internalRole: value . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Yield { -. . . . . . . . . . . . . Roles: Return,Incomplete +. . . . . . . . . . . . 0: Expr_ArrayItem { +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 138 . . . . . . . . . . . . . . Line: 8 @@ -434,32 +426,16 @@ File { . . . . . . . . . . . . . . Col: 36 . . . . . . . . . . . . . } . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . byRef: false +. . . . . . . . . . . . . . internalRole: items . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . . . . . TOKEN "k" -. . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 144 -. . . . . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . . . . . Col: 21 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . Offset: 146 -. . . . . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . . . . . Col: 23 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . internalRole: key -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Expr_BinaryOp_Concat { -. . . . . . . . . . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 151 +. . . . . . . . . . . . . . . . Offset: 138 . . . . . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . . . . . Col: 28 +. . . . . . . . . . . . . . . . Col: 15 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . Offset: 159 @@ -471,29 +447,28 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . . . . . . . TOKEN "k" . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 151 +. . . . . . . . . . . . . . . . . . Offset: 144 . . . . . . . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . . . . . . . Col: 28 +. . . . . . . . . . . . . . . . . . Col: 21 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . . . Offset: 153 +. . . . . . . . . . . . . . . . . . Offset: 146 . . . . . . . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . . . . . . . Col: 30 +. . . . . . . . . . . . . . . . . . Col: 23 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . . . . . internalRole: key . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 1: Scalar_String { -. . . . . . . . . . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . . . . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 157 +. . . . . . . . . . . . . . . . . . Offset: 151 . . . . . . . . . . . . . . . . . . Line: 8 -. . . . . . . . . . . . . . . . . . Col: 34 +. . . . . . . . . . . . . . . . . . Col: 28 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . . . Offset: 159 @@ -501,7 +476,43 @@ File { . . . . . . . . . . . . . . . . . . Col: 36 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 151 +. . . . . . . . . . . . . . . . . . . . Line: 8 +. . . . . . . . . . . . . . . . . . . . Col: 28 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 153 +. . . . . . . . . . . . . . . . . . . . Line: 8 +. . . . . . . . . . . . . . . . . . . . Col: 30 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 157 +. . . . . . . . . . . . . . . . . . . . Line: 8 +. . . . . . . . . . . . . . . . . . . . Col: 34 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 159 +. . . . . . . . . . . . . . . . . . . . Line: 8 +. . . . . . . . . . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } @@ -514,30 +525,12 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 5: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 168 -. . . . . . Line: 9 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 210 -. . . . . . Line: 9 -. . . . . . Col: 47 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Return,Incomplete +. . . . . . 5: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 174 +. . . . . . . . Offset: 168 . . . . . . . . Line: 9 -. . . . . . . . Col: 11 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 210 @@ -545,32 +538,15 @@ File { . . . . . . . . Col: 47 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "k1" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 180 +. . . . . . . . . . Offset: 174 . . . . . . . . . . Line: 9 -. . . . . . . . . . Col: 17 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 183 -. . . . . . . . . . Line: 9 -. . . . . . . . . . Col: 20 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: key -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 1: Expr_Yield { -. . . . . . . . . Roles: Return,Incomplete -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 188 -. . . . . . . . . . Line: 9 -. . . . . . . . . . Col: 25 +. . . . . . . . . . Col: 11 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 210 @@ -583,27 +559,27 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_String { . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . TOKEN "k2" +. . . . . . . . . . . TOKEN "k1" . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 194 +. . . . . . . . . . . . Offset: 180 . . . . . . . . . . . . Line: 9 -. . . . . . . . . . . . Col: 31 +. . . . . . . . . . . . Col: 17 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . Offset: 197 +. . . . . . . . . . . . Offset: 183 . . . . . . . . . . . . Line: 9 -. . . . . . . . . . . . Col: 34 +. . . . . . . . . . . . Col: 20 . . . . . . . . . . . } . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: key . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 1: Expr_BinaryOp_Concat { -. . . . . . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . . . . . 1: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 202 +. . . . . . . . . . . . Offset: 188 . . . . . . . . . . . . Line: 9 -. . . . . . . . . . . . Col: 39 +. . . . . . . . . . . . Col: 25 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 210 @@ -615,29 +591,28 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . . . TOKEN "k2" . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . Offset: 202 +. . . . . . . . . . . . . . Offset: 194 . . . . . . . . . . . . . . Line: 9 -. . . . . . . . . . . . . . Col: 39 +. . . . . . . . . . . . . . Col: 31 . . . . . . . . . . . . . } . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . Offset: 204 +. . . . . . . . . . . . . . Offset: 197 . . . . . . . . . . . . . . Line: 9 -. . . . . . . . . . . . . . Col: 41 +. . . . . . . . . . . . . . Col: 34 . . . . . . . . . . . . . } . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . internalRole: key . . . . . . . . . . . . . } . . . . . . . . . . . . } -. . . . . . . . . . . . 1: Scalar_String { -. . . . . . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . Offset: 208 +. . . . . . . . . . . . . . Offset: 202 . . . . . . . . . . . . . . Line: 9 -. . . . . . . . . . . . . . Col: 45 +. . . . . . . . . . . . . . Col: 39 . . . . . . . . . . . . . } . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . Offset: 210 @@ -645,7 +620,43 @@ File { . . . . . . . . . . . . . . Col: 47 . . . . . . . . . . . . . } . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . Offset: 202 +. . . . . . . . . . . . . . . . Line: 9 +. . . . . . . . . . . . . . . . Col: 39 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . Offset: 204 +. . . . . . . . . . . . . . . . Line: 9 +. . . . . . . . . . . . . . . . Col: 41 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . Offset: 208 +. . . . . . . . . . . . . . . . Line: 9 +. . . . . . . . . . . . . . . . Col: 45 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . Offset: 210 +. . . . . . . . . . . . . . . . Line: 9 +. . . . . . . . . . . . . . . . Col: 47 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } @@ -654,80 +665,61 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 6: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 217 -. . . . . . Line: 10 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 261 -. . . . . . Line: 10 -. . . . . . Col: 49 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Return,Incomplete +. . . . . . 6: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 223 +. . . . . . . . Offset: 217 . . . . . . . . Line: 10 -. . . . . . . . Col: 11 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 248 +. . . . . . . . Offset: 261 . . . . . . . . Line: 10 -. . . . . . . . Col: 36 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: key -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . TOKEN "k1" -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 229 -. . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 17 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 232 -. . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 20 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: key -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 1: Expr_Yield { -. . . . . . . . . Roles: Return,Incomplete +. . . . . . . . Col: 49 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: body +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 238 +. . . . . . . . . . Offset: 223 . . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 26 +. . . . . . . . . . Col: 11 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 247 +. . . . . . . . . . Offset: 248 . . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 35 +. . . . . . . . . . Col: 36 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . internalRole: key . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_String { . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . TOKEN "k2" +. . . . . . . . . . . TOKEN "k1" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 229 +. . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . Col: 17 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 232 +. . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: key +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Yield { +. . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 244 +. . . . . . . . . . . . Offset: 238 . . . . . . . . . . . . Line: 10 -. . . . . . . . . . . . Col: 32 +. . . . . . . . . . . . Col: 26 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . Offset: 247 @@ -737,118 +729,117 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: value . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . . . TOKEN "k2" +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 244 +. . . . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . . . Col: 32 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 247 +. . . . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . . . Col: 35 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } -. . . . . . . } -. . . . . . } -. . . . . . 1: Expr_BinaryOp_Concat { -. . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete -. . . . . . . StartPosition: { -. . . . . . . . Offset: 253 -. . . . . . . . Line: 10 -. . . . . . . . Col: 41 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 261 -. . . . . . . . Line: 10 -. . . . . . . . Col: 49 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: value -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Scalar_String { -. . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . TOKEN "a" +. . . . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 253 . . . . . . . . . . Line: 10 . . . . . . . . . . Col: 41 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 255 -. . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 43 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: left -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 1: Scalar_String { -. . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . TOKEN "b" -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 259 -. . . . . . . . . . Line: 10 -. . . . . . . . . . Col: 47 -. . . . . . . . . } -. . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 261 . . . . . . . . . . Line: 10 . . . . . . . . . . Col: 49 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: right +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 253 +. . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . Col: 41 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 255 +. . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . Col: 43 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: left +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 259 +. . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . Col: 47 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 261 +. . . . . . . . . . . . Line: 10 +. . . . . . . . . . . . Col: 49 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: right +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 7: Expr_FuncCall { -. . . . . Roles: Expression,Body,Call -. . . . . StartPosition: { -. . . . . . Offset: 268 -. . . . . . Line: 11 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 316 -. . . . . . Line: 11 -. . . . . . Col: 53 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name -. . . . . . . TOKEN "var_dump" +. . . . . . 7: Expr_FuncCall { +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 268 . . . . . . . . Line: 11 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 275 -. . . . . . . . Line: 11 -. . . . . . . . Col: 12 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: name -. . . . . . . } -. . . . . . } -. . . . . . 1: Arg { -. . . . . . . Roles: Argument -. . . . . . . StartPosition: { -. . . . . . . . Offset: 277 -. . . . . . . . Line: 11 -. . . . . . . . Col: 14 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 315 +. . . . . . . . Offset: 316 . . . . . . . . Line: 11 -. . . . . . . . Col: 52 +. . . . . . . . Col: 53 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . byRef: false -. . . . . . . . internalRole: args -. . . . . . . . unpack: false +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "var_dump" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 268 +. . . . . . . . . . Line: 11 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 275 +. . . . . . . . . . Line: 11 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Arg { +. . . . . . . . . Roles: Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 277 . . . . . . . . . . Line: 11 @@ -860,28 +851,29 @@ File { . . . . . . . . . . Col: 52 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . byRef: false +. . . . . . . . . . internalRole: args +. . . . . . . . . . unpack: false . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . 0: Expr_Array { +. . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 278 +. . . . . . . . . . . . Offset: 277 . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . Col: 15 +. . . . . . . . . . . . Col: 14 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . Offset: 314 +. . . . . . . . . . . . Offset: 315 . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . Col: 51 +. . . . . . . . . . . . Col: 52 . . . . . . . . . . . } . . . . . . . . . . . Properties: { -. . . . . . . . . . . . byRef: false -. . . . . . . . . . . . internalRole: items +. . . . . . . . . . . . internalRole: value . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Yield { -. . . . . . . . . . . . . Roles: Return,Incomplete +. . . . . . . . . . . . 0: Expr_ArrayItem { +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 278 . . . . . . . . . . . . . . Line: 11 @@ -893,32 +885,16 @@ File { . . . . . . . . . . . . . . Col: 51 . . . . . . . . . . . . . } . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . byRef: false +. . . . . . . . . . . . . . internalRole: items . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . . . . . TOKEN "k1" -. . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 284 -. . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . Col: 21 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . Offset: 287 -. . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . Col: 24 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . internalRole: key -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Expr_Yield { -. . . . . . . . . . . . . . . Roles: Return,Incomplete +. . . . . . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 292 +. . . . . . . . . . . . . . . . Offset: 278 . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . Col: 29 +. . . . . . . . . . . . . . . . Col: 15 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . Offset: 314 @@ -931,27 +907,27 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Scalar_String { . . . . . . . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . . . . . . . TOKEN "k2" +. . . . . . . . . . . . . . . . . TOKEN "k1" . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 298 +. . . . . . . . . . . . . . . . . . Offset: 284 . . . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . . . Col: 35 +. . . . . . . . . . . . . . . . . . Col: 21 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . . . Offset: 301 +. . . . . . . . . . . . . . . . . . Offset: 287 . . . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . . . Col: 38 +. . . . . . . . . . . . . . . . . . Col: 24 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: key . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 1: Expr_BinaryOp_Concat { -. . . . . . . . . . . . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . . . . . . . . . . . . . 1: Expr_Yield { +. . . . . . . . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 306 +. . . . . . . . . . . . . . . . . . Offset: 292 . . . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . . . Col: 43 +. . . . . . . . . . . . . . . . . . Col: 29 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . . . Offset: 314 @@ -963,29 +939,28 @@ File { . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . . . . . . . . . TOKEN "k2" . . . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . . . Offset: 306 +. . . . . . . . . . . . . . . . . . . . Offset: 298 . . . . . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . . . . . Col: 43 +. . . . . . . . . . . . . . . . . . . . Col: 35 . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . . . . . Offset: 308 +. . . . . . . . . . . . . . . . . . . . Offset: 301 . . . . . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . . . . . Col: 45 +. . . . . . . . . . . . . . . . . . . . Col: 38 . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . . . . . . . internalRole: key . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . . 1: Scalar_String { -. . . . . . . . . . . . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . . . . . . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . . . Offset: 312 +. . . . . . . . . . . . . . . . . . . . Offset: 306 . . . . . . . . . . . . . . . . . . . . Line: 11 -. . . . . . . . . . . . . . . . . . . . Col: 49 +. . . . . . . . . . . . . . . . . . . . Col: 43 . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 314 @@ -993,7 +968,43 @@ File { . . . . . . . . . . . . . . . . . . . . Col: 51 . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . . . Offset: 306 +. . . . . . . . . . . . . . . . . . . . . . Line: 11 +. . . . . . . . . . . . . . . . . . . . . . Col: 43 +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . . . Offset: 308 +. . . . . . . . . . . . . . . . . . . . . . Line: 11 +. . . . . . . . . . . . . . . . . . . . . . Col: 45 +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . . . Offset: 312 +. . . . . . . . . . . . . . . . . . . . . . Line: 11 +. . . . . . . . . . . . . . . . . . . . . . Col: 49 +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . . . Offset: 314 +. . . . . . . . . . . . . . . . . . . . . . Line: 11 +. . . . . . . . . . . . . . . . . . . . . . Col: 51 +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } @@ -1008,61 +1019,41 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 8: Expr_FuncCall { -. . . . . Roles: Expression,Body,Call -. . . . . StartPosition: { -. . . . . . Offset: 323 -. . . . . . Line: 12 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 373 -. . . . . . Line: 12 -. . . . . . Col: 55 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name -. . . . . . . TOKEN "var_dump" +. . . . . . 8: Expr_FuncCall { +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 323 . . . . . . . . Line: 12 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 330 -. . . . . . . . Line: 12 -. . . . . . . . Col: 12 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: name -. . . . . . . } -. . . . . . } -. . . . . . 1: Arg { -. . . . . . . Roles: Argument -. . . . . . . StartPosition: { -. . . . . . . . Offset: 332 -. . . . . . . . Line: 12 -. . . . . . . . Col: 14 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 372 +. . . . . . . . Offset: 373 . . . . . . . . Line: 12 -. . . . . . . . Col: 54 +. . . . . . . . Col: 55 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . byRef: false -. . . . . . . . internalRole: args -. . . . . . . . unpack: false +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "var_dump" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 323 +. . . . . . . . . . Line: 12 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 330 +. . . . . . . . . . Line: 12 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Arg { +. . . . . . . . . Roles: Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 332 . . . . . . . . . . Line: 12 @@ -1074,82 +1065,83 @@ File { . . . . . . . . . . Col: 54 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: value +. . . . . . . . . . byRef: false +. . . . . . . . . . internalRole: args +. . . . . . . . . . unpack: false . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . 0: Expr_Array { +. . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . Offset: 333 +. . . . . . . . . . . . Offset: 332 . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . Col: 15 +. . . . . . . . . . . . Col: 14 . . . . . . . . . . . } . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . Offset: 371 +. . . . . . . . . . . . Offset: 372 . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . Col: 53 +. . . . . . . . . . . . Col: 54 . . . . . . . . . . . } . . . . . . . . . . . Properties: { -. . . . . . . . . . . . byRef: false -. . . . . . . . . . . . internalRole: items +. . . . . . . . . . . . internalRole: value . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Expr_Yield { -. . . . . . . . . . . . . Roles: Return,Incomplete +. . . . . . . . . . . . 0: Expr_ArrayItem { +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 333 . . . . . . . . . . . . . . Line: 12 . . . . . . . . . . . . . . Col: 15 . . . . . . . . . . . . . } . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . Offset: 358 +. . . . . . . . . . . . . . Offset: 371 . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . Col: 40 +. . . . . . . . . . . . . . Col: 53 . . . . . . . . . . . . . } . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: key +. . . . . . . . . . . . . . byRef: false +. . . . . . . . . . . . . . internalRole: items . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . . . . . TOKEN "k1" +. . . . . . . . . . . . . . 0: Expr_Yield { +. . . . . . . . . . . . . . . Roles: Incomplete,Return . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 339 +. . . . . . . . . . . . . . . . Offset: 333 . . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . Col: 21 +. . . . . . . . . . . . . . . . Col: 15 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . Offset: 342 +. . . . . . . . . . . . . . . . Offset: 358 . . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . Col: 24 +. . . . . . . . . . . . . . . . Col: 40 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: key . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Expr_Yield { -. . . . . . . . . . . . . . . Roles: Return,Incomplete -. . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 348 -. . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . Col: 30 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . Offset: 357 -. . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . Col: 39 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . internalRole: value -. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Scalar_String { . . . . . . . . . . . . . . . . . Roles: Expression,Literal,String -. . . . . . . . . . . . . . . . . TOKEN "k2" +. . . . . . . . . . . . . . . . . TOKEN "k1" . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 354 +. . . . . . . . . . . . . . . . . . Offset: 339 . . . . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . . . . . . . Col: 21 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . Offset: 342 +. . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . Col: 24 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: key +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Expr_Yield { +. . . . . . . . . . . . . . . . . Roles: Incomplete,Return +. . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . Offset: 348 +. . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . Col: 30 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . . . Offset: 357 @@ -1159,59 +1151,78 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Literal,String +. . . . . . . . . . . . . . . . . . . TOKEN "k2" +. . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 354 +. . . . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . . . Col: 36 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 357 +. . . . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . . . Col: 39 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } -. . . . . . . . . . . . . } -. . . . . . . . . . . . } -. . . . . . . . . . . . 1: Expr_BinaryOp_Concat { -. . . . . . . . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete -. . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . Offset: 363 -. . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . Col: 45 -. . . . . . . . . . . . . } -. . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . Offset: 371 -. . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . Col: 53 -. . . . . . . . . . . . . } -. . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: value -. . . . . . . . . . . . . } -. . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . . . . . Roles: Left,Expression,Literal,String -. . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . 1: Expr_BinaryOp_Concat { +. . . . . . . . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 363 . . . . . . . . . . . . . . . . Line: 12 . . . . . . . . . . . . . . . . Col: 45 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . Offset: 365 -. . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . Col: 47 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . internalRole: left -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . } -. . . . . . . . . . . . . . 1: Scalar_String { -. . . . . . . . . . . . . . . Roles: Right,Expression,Literal,String -. . . . . . . . . . . . . . . TOKEN "b" -. . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 369 -. . . . . . . . . . . . . . . . Line: 12 -. . . . . . . . . . . . . . . . Col: 51 -. . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . EndPosition: { . . . . . . . . . . . . . . . . Offset: 371 . . . . . . . . . . . . . . . . Line: 12 . . . . . . . . . . . . . . . . Col: 53 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Scalar_String { +. . . . . . . . . . . . . . . . . Roles: Expression,Left,Literal,String +. . . . . . . . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . Offset: 363 +. . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . Col: 45 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . Offset: 365 +. . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . Col: 47 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: left +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . 1: Scalar_String { +. . . . . . . . . . . . . . . . . Roles: Expression,Literal,Right,String +. . . . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . Offset: 369 +. . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . Col: 51 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . Offset: 371 +. . . . . . . . . . . . . . . . . . Line: 12 +. . . . . . . . . . . . . . . . . . Col: 53 +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: right +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . } diff --git a/fixtures/generator_yieldUnaryPrecedence.php.native b/fixtures/generator_yieldUnaryPrecedence.php.native index 96d1809..23045f8 100644 --- a/fixtures/generator_yieldUnaryPrecedence.php.native +++ b/fixtures/generator_yieldUnaryPrecedence.php.native @@ -2,143 +2,146 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 68, - "endLine": 7, - "endTokenPos": 30, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "gen", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 10 - }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 68, + "endLine": 7, + "endTokenPos": 30, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "gen", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { "attributes": { "endFilePos": 35, "endLine": 4, "endTokenPos": 13, - "startFilePos": 34, + "startFilePos": 28, "startLine": 4, - "startTokenPos": 12 + "startTokenPos": 10 }, - "expr": { + "key": null, + "nodeType": "Expr_Yield", + "value": { "attributes": { "endFilePos": 35, "endLine": 4, "endTokenPos": 13, - "kind": 10, - "startFilePos": 35, + "startFilePos": 34, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 12 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_UnaryPlus" - } - }, - { - "attributes": { - "endFilePos": 49, - "endLine": 5, - "endTokenPos": 19, - "startFilePos": 42, - "startLine": 5, - "startTokenPos": 16 + "expr": { + "attributes": { + "endFilePos": 35, + "endLine": 4, + "endTokenPos": 13, + "kind": 10, + "startFilePos": 35, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_UnaryPlus" + } }, - "key": null, - "nodeType": "Expr_Yield", - "value": { + { "attributes": { "endFilePos": 49, "endLine": 5, "endTokenPos": 19, - "startFilePos": 48, + "startFilePos": 42, "startLine": 5, - "startTokenPos": 18 + "startTokenPos": 16 }, - "expr": { + "key": null, + "nodeType": "Expr_Yield", + "value": { "attributes": { "endFilePos": 49, "endLine": 5, "endTokenPos": 19, - "kind": 10, - "startFilePos": 49, + "startFilePos": 48, "startLine": 5, - "startTokenPos": 19 + "startTokenPos": 18 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_UnaryMinus" - } - }, - { - "attributes": { - "endFilePos": 65, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 56, - "startLine": 6, - "startTokenPos": 22 + "expr": { + "attributes": { + "endFilePos": 49, + "endLine": 5, + "endTokenPos": 19, + "kind": 10, + "startFilePos": 49, + "startLine": 5, + "startTokenPos": 19 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_UnaryMinus" + } }, - "left": { + { "attributes": { - "endFilePos": 60, + "endFilePos": 65, "endLine": 6, - "endTokenPos": 22, + "endTokenPos": 27, "startFilePos": 56, "startLine": 6, "startTokenPos": 22 }, - "key": null, - "nodeType": "Expr_Yield", - "value": null - }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { - "attributes": { - "endFilePos": 65, - "endLine": 6, - "endTokenPos": 27, - "startFilePos": 64, - "startLine": 6, - "startTokenPos": 26 + "left": { + "attributes": { + "endFilePos": 60, + "endLine": 6, + "endTokenPos": 22, + "startFilePos": 56, + "startLine": 6, + "startTokenPos": 22 + }, + "key": null, + "nodeType": "Expr_Yield", + "value": null }, - "expr": { + "nodeType": "Expr_BinaryOp_Mul", + "right": { "attributes": { "endFilePos": 65, "endLine": 6, "endTokenPos": 27, - "kind": 10, - "startFilePos": 65, + "startFilePos": 64, "startLine": 6, - "startTokenPos": 27 + "startTokenPos": 26 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_UnaryMinus" + "expr": { + "attributes": { + "endFilePos": 65, + "endLine": 6, + "endTokenPos": 27, + "kind": 10, + "startFilePos": 65, + "startLine": 6, + "startTokenPos": 27 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_UnaryMinus" + } } - } - ] - } - ] + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/generator_yieldUnaryPrecedence.php.uast b/fixtures/generator_yieldUnaryPrecedence.php.uast index dc6aa98..ed414eb 100644 --- a/fixtures/generator_yieldUnaryPrecedence.php.uast +++ b/fixtures/generator_yieldUnaryPrecedence.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "gen" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,28 +22,24 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 28 -. . . . . . Line: 4 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 35 -. . . . . . Line: 4 -. . . . . . Col: 12 +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType . . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_UnaryPlus { -. . . . . . . Roles: Expression,Unary,Incomplete +. . . . . . 0: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 34 +. . . . . . . . Offset: 28 . . . . . . . . Line: 4 -. . . . . . . . Col: 11 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 35 @@ -52,16 +47,15 @@ File { . . . . . . . . Col: 12 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Expression,Literal,Number -. . . . . . . . . TOKEN "1" +. . . . . . . . 0: Expr_UnaryPlus { +. . . . . . . . . Roles: Expression,Incomplete,Unary . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 35 +. . . . . . . . . . Offset: 34 . . . . . . . . . . Line: 4 -. . . . . . . . . . Col: 12 +. . . . . . . . . . Col: 11 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 35 @@ -69,35 +63,36 @@ File { . . . . . . . . . . Col: 12 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: expr +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_LNumber { +. . . . . . . . . . . Roles: Expression,Literal,Number +. . . . . . . . . . . TOKEN "1" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 35 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 12 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 35 +. . . . . . . . . . . . Line: 4 +. . . . . . . . . . . . Col: 12 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: expr +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 1: Expr_Yield { -. . . . . Roles: Expression,Body,Return,Incomplete -. . . . . StartPosition: { -. . . . . . Offset: 42 -. . . . . . Line: 5 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 49 -. . . . . . Line: 5 -. . . . . . Col: 12 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_UnaryMinus { -. . . . . . . Roles: Expression,Unary,Incomplete +. . . . . . 1: Expr_Yield { +. . . . . . . Roles: Incomplete,Return . . . . . . . StartPosition: { -. . . . . . . . Offset: 48 +. . . . . . . . Offset: 42 . . . . . . . . Line: 5 -. . . . . . . . Col: 11 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { . . . . . . . . Offset: 49 @@ -105,16 +100,15 @@ File { . . . . . . . . Col: 12 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: value +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Expression,Literal,Number -. . . . . . . . . TOKEN "1" +. . . . . . . . 0: Expr_UnaryMinus { +. . . . . . . . . Roles: Expression,Incomplete,Unary . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 49 +. . . . . . . . . . Offset: 48 . . . . . . . . . . Line: 5 -. . . . . . . . . . Col: 12 +. . . . . . . . . . Col: 11 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 49 @@ -122,68 +116,68 @@ File { . . . . . . . . . . Col: 12 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: expr +. . . . . . . . . . internalRole: value +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_LNumber { +. . . . . . . . . . . Roles: Expression,Literal,Number +. . . . . . . . . . . TOKEN "1" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 49 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 12 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 49 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 12 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: expr +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 2: Expr_BinaryOp_Mul { -. . . . . Roles: Expression,Body,Operator,Multiply -. . . . . StartPosition: { -. . . . . . Offset: 56 -. . . . . . Line: 6 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 65 -. . . . . . Line: 6 -. . . . . . Col: 14 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Expr_Yield { -. . . . . . . Roles: Return,Incomplete,Left +. . . . . . 2: Expr_BinaryOp_Mul { +. . . . . . . Roles: Expression,Multiply,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 56 . . . . . . . . Line: 6 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 60 -. . . . . . . . Line: 6 -. . . . . . . . Col: 9 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: left -. . . . . . . } -. . . . . . } -. . . . . . 1: Expr_UnaryMinus { -. . . . . . . Roles: Right,Expression,Unary,Incomplete -. . . . . . . StartPosition: { -. . . . . . . . Offset: 64 -. . . . . . . . Line: 6 -. . . . . . . . Col: 13 -. . . . . . . } -. . . . . . . EndPosition: { . . . . . . . . Offset: 65 . . . . . . . . Line: 6 . . . . . . . . Col: 14 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: right +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Expression,Literal,Number -. . . . . . . . . TOKEN "1" +. . . . . . . . 0: Expr_Yield { +. . . . . . . . . Roles: Incomplete,Left,Return . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 65 +. . . . . . . . . . Offset: 56 . . . . . . . . . . Line: 6 -. . . . . . . . . . Col: 14 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 60 +. . . . . . . . . . Line: 6 +. . . . . . . . . . Col: 9 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: left +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_UnaryMinus { +. . . . . . . . . Roles: Expression,Incomplete,Right,Unary +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 64 +. . . . . . . . . . Line: 6 +. . . . . . . . . . Col: 13 . . . . . . . . . } . . . . . . . . . EndPosition: { . . . . . . . . . . Offset: 65 @@ -191,7 +185,26 @@ File { . . . . . . . . . . Col: 14 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: expr +. . . . . . . . . . internalRole: right +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Scalar_LNumber { +. . . . . . . . . . . Roles: Expression,Literal,Number +. . . . . . . . . . . TOKEN "1" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 65 +. . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . Col: 14 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 65 +. . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . Col: 14 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: expr +. . . . . . . . . . . } +. . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } diff --git a/fixtures/hashbang.php.native b/fixtures/hashbang.php.native index fccb712..651ae66 100644 --- a/fixtures/hashbang.php.native +++ b/fixtures/hashbang.php.native @@ -2,58 +2,61 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 18, - "endLine": 2, - "endTokenPos": 0, - "hasLeadingNewline": true, - "startFilePos": 0, - "startLine": 1, - "startTokenPos": 0 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 18, + "endLine": 2, + "endTokenPos": 0, + "hasLeadingNewline": true, + "startFilePos": 0, + "startLine": 1, + "startTokenPos": 0 + }, + "nodeType": "Stmt_InlineHTML", + "value": "#!/usr/bin/env php\n" }, - "nodeType": "Stmt_InlineHTML", - "value": "#!/usr/bin/env php\n" - }, - { - "attributes": { - "endFilePos": 39, - "endLine": 4, - "endTokenPos": 6, - "startFilePos": 26, - "startLine": 4, - "startTokenPos": 3 + { + "attributes": { + "endFilePos": 39, + "endLine": 4, + "endTokenPos": 6, + "startFilePos": 26, + "startLine": 4, + "startTokenPos": 3 + }, + "exprs": [ + { + "attributes": { + "endFilePos": 38, + "endLine": 4, + "endTokenPos": 5, + "kind": 2, + "startFilePos": 31, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Scalar_String", + "value": "foobar" + } + ], + "nodeType": "Stmt_Echo" }, - "exprs": [ - { - "attributes": { - "endFilePos": 38, - "endLine": 4, - "endTokenPos": 5, - "kind": 2, - "startFilePos": 31, - "startLine": 4, - "startTokenPos": 5 - }, - "nodeType": "Scalar_String", - "value": "foobar" - } - ], - "nodeType": "Stmt_Echo" - }, - { - "attributes": { - "endFilePos": 63, - "endLine": 8, - "endTokenPos": 9, - "hasLeadingNewline": true, - "startFilePos": 45, - "startLine": 7, - "startTokenPos": 9 - }, - "nodeType": "Stmt_InlineHTML", - "value": "#!/usr/bin/env php\n" - } - ] + { + "attributes": { + "endFilePos": 63, + "endLine": 8, + "endTokenPos": 9, + "hasLeadingNewline": true, + "startFilePos": 45, + "startLine": 7, + "startTokenPos": 9 + }, + "nodeType": "Stmt_InlineHTML", + "value": "#!/usr/bin/env php\n" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/hashbang.php.uast b/fixtures/hashbang.php.uast index c40d439..7a87edc 100644 --- a/fixtures/hashbang.php.uast +++ b/fixtures/hashbang.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_InlineHTML { -. . . Roles: String,Literal,Incomplete +. . . Roles: Incomplete,Literal,String . . . TOKEN "#!/usr/bin/env php " . . . StartPosition: { @@ -24,8 +24,7 @@ File { . . . } . . } . . 1: Stmt_Echo { -. . . Roles: Statement,Call -. . . TOKEN "echo" +. . . Roles: Call,Statement . . . StartPosition: { . . . . Offset: 26 . . . . Line: 4 @@ -60,7 +59,7 @@ File { . . . } . . } . . 2: Stmt_InlineHTML { -. . . Roles: String,Literal,Incomplete +. . . Roles: Incomplete,Literal,String . . . TOKEN "#!/usr/bin/env php " . . . StartPosition: { diff --git a/fixtures/hello.php.native b/fixtures/hello.php.native index c7cef85..baeac21 100644 --- a/fixtures/hello.php.native +++ b/fixtures/hello.php.native @@ -2,40 +2,43 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ + "ast": { + "children": [ + { + "attributes": { + "comments": [ + { + "filePos": 6, + "line": 2, + "nodeType": "Comment", + "text": "// this is a simple hello world example\n" + } + ], + "endFilePos": 65, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 46, + "startLine": 3, + "startTokenPos": 2 + }, + "exprs": [ { - "filePos": 6, - "line": 2, - "nodeType": "Comment", - "text": "// this is a simple hello world example\n" + "attributes": { + "endFilePos": 64, + "endLine": 3, + "endTokenPos": 4, + "kind": 2, + "startFilePos": 51, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "Hello World!" } ], - "endFilePos": 65, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 46, - "startLine": 3, - "startTokenPos": 2 - }, - "exprs": [ - { - "attributes": { - "endFilePos": 64, - "endLine": 3, - "endTokenPos": 4, - "kind": 2, - "startFilePos": 51, - "startLine": 3, - "startTokenPos": 4 - }, - "nodeType": "Scalar_String", - "value": "Hello World!" - } - ], - "nodeType": "Stmt_Echo" - } - ] + "nodeType": "Stmt_Echo" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/hello.php.uast b/fixtures/hello.php.uast index 3f4d8a3..60ee7e9 100644 --- a/fixtures/hello.php.uast +++ b/fixtures/hello.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Echo { -. . . Roles: Statement,Call -. . . TOKEN "echo" +. . . Roles: Call,Statement . . . StartPosition: { . . . . Offset: 46 . . . . Line: 3 @@ -23,21 +22,16 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " this is a simple hello world example " . . . . . StartPosition: { -. . . . . . Offset: 6 -. . . . . . Line: 2 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 46 -. . . . . . Line: 3 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Scalar_String { diff --git a/fixtures/if.php.native b/fixtures/if.php.native index 22d75f4..e30a628 100644 --- a/fixtures/if.php.native +++ b/fixtures/if.php.native @@ -2,288 +2,291 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 77, - "endLine": 6, - "endTokenPos": 39, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { - "attributes": { - "endFilePos": 17, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 16, - "startLine": 3, - "startTokenPos": 5 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 77, "endLine": 6, "endTokenPos": 39, - "startFilePos": 63, - "startLine": 6, - "startTokenPos": 36 + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - "nodeType": "Stmt_Else", - "stmts": [] - }, - "elseifs": [ - { + "cond": { + "attributes": { + "endFilePos": 17, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 16, + "startLine": 3, + "startTokenPos": 5 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "else": { "attributes": { - "endFilePos": 45, - "endLine": 4, - "endTokenPos": 25, - "startFilePos": 31, - "startLine": 4, - "startTokenPos": 18 + "endFilePos": 77, + "endLine": 6, + "endTokenPos": 39, + "startFilePos": 63, + "startLine": 6, + "startTokenPos": 36 }, - "cond": { + "nodeType": "Stmt_Else", + "stmts": [] + }, + "elseifs": [ + { "attributes": { - "endFilePos": 41, + "endFilePos": 45, "endLine": 4, - "endTokenPos": 21, - "startFilePos": 40, + "endTokenPos": 25, + "startFilePos": 31, "startLine": 4, - "startTokenPos": 21 + "startTokenPos": 18 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_ElseIf", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 61, - "endLine": 5, - "endTokenPos": 34, - "startFilePos": 47, - "startLine": 5, - "startTokenPos": 27 + "cond": { + "attributes": { + "endFilePos": 41, + "endLine": 4, + "endTokenPos": 21, + "startFilePos": 40, + "startLine": 4, + "startTokenPos": 21 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_ElseIf", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 57, + "endFilePos": 61, "endLine": 5, - "endTokenPos": 30, - "startFilePos": 56, + "endTokenPos": 34, + "startFilePos": 47, "startLine": 5, - "startTokenPos": 30 + "startTokenPos": 27 }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_ElseIf", - "stmts": [] - } - ], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 27, - "endLine": 3, - "endTokenPos": 14, - "startFilePos": 22, - "startLine": 3, - "startTokenPos": 10 - }, - "expr": { + "cond": { + "attributes": { + "endFilePos": 57, + "endLine": 5, + "endTokenPos": 30, + "startFilePos": 56, + "startLine": 5, + "startTokenPos": 30 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_ElseIf", + "stmts": [] + } + ], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { "endFilePos": 27, "endLine": 3, "endTokenPos": 14, - "kind": 10, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 14 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 23, - "endLine": 3, - "endTokenPos": 10, "startFilePos": 22, "startLine": 3, "startTokenPos": 10 }, - "name": "x", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 27, + "endLine": 3, + "endTokenPos": 14, + "kind": 10, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 14 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 23, + "endLine": 3, + "endTokenPos": 10, + "startFilePos": 22, + "startLine": 3, + "startTokenPos": 10 + }, + "name": "x", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 89, - "endLine": 8, - "endTokenPos": 48, - "startFilePos": 80, - "startLine": 8, - "startTokenPos": 41 + ] }, - "cond": { + { "attributes": { - "endFilePos": 85, + "endFilePos": 89, "endLine": 8, - "endTokenPos": 44, - "startFilePos": 84, + "endTokenPos": 48, + "startFilePos": 80, "startLine": 8, - "startTokenPos": 44 + "startTokenPos": 41 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [] - }, - { - "attributes": { - "comments": [ - { - "filePos": 91, - "line": 8, - "nodeType": "Comment", - "text": "// without else\n" - } - ], - "endFilePos": 169, - "endLine": 14, - "endTokenPos": 78, - "startFilePos": 108, - "startLine": 10, - "startTokenPos": 52 + "cond": { + "attributes": { + "endFilePos": 85, + "endLine": 8, + "endTokenPos": 44, + "startFilePos": 84, + "startLine": 8, + "startTokenPos": 44 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 118, - "endLine": 10, - "endTokenPos": 55, - "startFilePos": 117, + "comments": [ + { + "filePos": 91, + "line": 8, + "nodeType": "Comment", + "text": "// without else\n" + } + ], + "endFilePos": 169, + "endLine": 14, + "endTokenPos": 78, + "startFilePos": 108, "startLine": 10, - "startTokenPos": 55 + "startTokenPos": 52 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": { - "attributes": { - "endFilePos": 162, - "endLine": 13, - "endTokenPos": 75, - "startFilePos": 150, - "startLine": 13, - "startTokenPos": 73 + "cond": { + "attributes": { + "endFilePos": 118, + "endLine": 10, + "endTokenPos": 55, + "startFilePos": 117, + "startLine": 10, + "startTokenPos": 55 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "nodeType": "Stmt_Else", - "stmts": [] - }, - "elseifs": [ - { + "else": { "attributes": { - "endFilePos": 134, - "endLine": 11, - "endTokenPos": 64, - "startFilePos": 122, - "startLine": 11, - "startTokenPos": 59 + "endFilePos": 162, + "endLine": 13, + "endTokenPos": 75, + "startFilePos": 150, + "startLine": 13, + "startTokenPos": 73 }, - "cond": { + "nodeType": "Stmt_Else", + "stmts": [] + }, + "elseifs": [ + { "attributes": { - "endFilePos": 132, + "endFilePos": 134, "endLine": 11, - "endTokenPos": 62, - "startFilePos": 131, + "endTokenPos": 64, + "startFilePos": 122, "startLine": 11, - "startTokenPos": 62 + "startTokenPos": 59 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_ElseIf", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 148, - "endLine": 12, - "endTokenPos": 71, - "startFilePos": 136, - "startLine": 12, - "startTokenPos": 66 + "cond": { + "attributes": { + "endFilePos": 132, + "endLine": 11, + "endTokenPos": 62, + "startFilePos": 131, + "startLine": 11, + "startTokenPos": 62 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_ElseIf", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 146, + "endFilePos": 148, "endLine": 12, - "endTokenPos": 69, - "startFilePos": 145, + "endTokenPos": 71, + "startFilePos": 136, "startLine": 12, - "startTokenPos": 69 + "startTokenPos": 66 }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_ElseIf", - "stmts": [] - } - ], - "nodeType": "Stmt_If", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 186, - "endLine": 16, - "endTokenPos": 88, - "startFilePos": 172, - "startLine": 16, - "startTokenPos": 80 + "cond": { + "attributes": { + "endFilePos": 146, + "endLine": 12, + "endTokenPos": 69, + "startFilePos": 145, + "startLine": 12, + "startTokenPos": 69 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_ElseIf", + "stmts": [] + } + ], + "nodeType": "Stmt_If", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 177, + "endFilePos": 186, "endLine": 16, - "endTokenPos": 83, - "startFilePos": 176, + "endTokenPos": 88, + "startFilePos": 172, "startLine": 16, - "startTokenPos": 83 + "startTokenPos": 80 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [] - }, - { - "attributes": { - "comments": [ - { - "filePos": 188, - "line": 16, - "nodeType": "Comment", - "text": "// without else\n" - } - ] + "cond": { + "attributes": { + "endFilePos": 177, + "endLine": 16, + "endTokenPos": 83, + "startFilePos": 176, + "startLine": 16, + "startTokenPos": 83 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [] }, - "nodeType": "Stmt_Nop" - } - ] + { + "attributes": { + "comments": [ + { + "filePos": 188, + "line": 16, + "nodeType": "Comment", + "text": "// without else\n" + } + ] + }, + "nodeType": "Stmt_Nop" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/if.php.uast b/fixtures/if.php.uast index a0eec8d..a7f4f9b 100644 --- a/fixtures/if.php.uast +++ b/fixtures/if.php.uast @@ -2,11 +2,39 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { -. . 0: Stmt_If { -. . . Roles: Statement,If +. . 0: Stmt_Nop { +. . . Roles: Noop +. . . Properties: { +. . . . internalRole: children +. . . } +. . . Children: { +. . . . 0: { +. . . . . Properties: { +. . . . . . internalRole: attributes +. . . . . } +. . . . . Children: { +. . . . . . 0: Comment { +. . . . . . . Roles: Comment,Noop +. . . . . . . TOKEN " without else +" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . } +. . . . } +. . . } +. . } +. . 1: Stmt_If { +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +50,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 3 @@ -37,9 +64,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Assign { -. . . . . Roles: Expression,Body,Assignment +. . . . . Roles: Assignment,Expression . . . . . StartPosition: { . . . . . . Offset: 22 . . . . . . Line: 3 @@ -55,8 +91,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "x" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 22 . . . . . . . . Line: 3 @@ -70,9 +105,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "x" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_LNumber { -. . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . TOKEN "1" . . . . . . . StartPosition: { . . . . . . . . Offset: 27 @@ -91,7 +135,7 @@ File { . . . . . } . . . . } . . . . 2: Stmt_ElseIf { -. . . . . Roles: Statement,If,Else +. . . . . Roles: Else,If,Statement . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 4 @@ -107,8 +151,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 40 . . . . . . . . Line: 4 @@ -122,11 +165,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 3: Stmt_ElseIf { -. . . . . Roles: Statement,If,Else +. . . . . Roles: Else,If,Statement . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 5 @@ -142,8 +194,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 56 . . . . . . . . Line: 5 @@ -157,11 +208,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 4: Stmt_Else { -. . . . . Roles: Statement,Else +. . . . . Roles: Else,Statement . . . . . StartPosition: { . . . . . . Offset: 63 . . . . . . Line: 6 @@ -178,8 +238,8 @@ File { . . . . } . . . } . . } -. . 1: Stmt_If { -. . . Roles: Statement,If +. . 2: Stmt_If { +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 80 . . . . Line: 8 @@ -195,8 +255,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 84 . . . . . . Line: 8 @@ -210,11 +269,20 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } -. . 2: Stmt_If { -. . . Roles: Statement,If +. . 3: Stmt_If { +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 108 . . . . Line: 10 @@ -230,26 +298,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " without else " . . . . . StartPosition: { -. . . . . . Offset: 91 -. . . . . . Line: 8 -. . . . . . Col: 12 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 107 -. . . . . . Line: 9 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 117 . . . . . . Line: 10 @@ -263,9 +325,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Stmt_ElseIf { -. . . . . Roles: Statement,If,Else +. . . . . Roles: Else,If,Statement . . . . . StartPosition: { . . . . . . Offset: 122 . . . . . . Line: 11 @@ -281,8 +352,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 131 . . . . . . . . Line: 11 @@ -296,11 +366,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 3: Stmt_ElseIf { -. . . . . Roles: Statement,If,Else +. . . . . Roles: Else,If,Statement . . . . . StartPosition: { . . . . . . Offset: 136 . . . . . . Line: 12 @@ -316,8 +395,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 145 . . . . . . . . Line: 12 @@ -331,11 +409,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 4: Stmt_Else { -. . . . . Roles: Statement,Else +. . . . . Roles: Else,Statement . . . . . StartPosition: { . . . . . . Offset: 150 . . . . . . Line: 13 @@ -352,8 +439,8 @@ File { . . . . } . . . } . . } -. . 3: Stmt_If { -. . . Roles: Statement,If +. . 4: Stmt_If { +. . . Roles: If,Statement . . . StartPosition: { . . . . Offset: 172 . . . . Line: 16 @@ -369,8 +456,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 176 . . . . . . Line: 16 @@ -384,31 +470,14 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } -. . . . } -. . . } -. . } -. . 4: Stmt_Nop { -. . . Roles: Noop -. . . Properties: { -. . . . internalRole: children -. . . } -. . . Children: { -. . . . 0: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " without else -" -. . . . . StartPosition: { -. . . . . . Offset: 188 -. . . . . . Line: 16 -. . . . . . Col: 17 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 204 -. . . . . . Line: 17 -. . . . . . Col: 1 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } . . . . . } . . . . } . . . } diff --git a/fixtures/include.php.native b/fixtures/include.php.native index 587356b..4e7b733 100644 --- a/fixtures/include.php.native +++ b/fixtures/include.php.native @@ -2,81 +2,84 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 23, + "endFilePos": 24, "endLine": 3, - "endTokenPos": 4, - "kind": 2, - "startFilePos": 15, + "endTokenPos": 5, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "nodeType": "Scalar_String", - "value": "pok.php" - }, - "nodeType": "Expr_Include", - "type": 1 - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 4, - "endTokenPos": 11, - "startFilePos": 27, - "startLine": 4, - "startTokenPos": 8 + "expr": { + "attributes": { + "endFilePos": 23, + "endLine": 3, + "endTokenPos": 4, + "kind": 2, + "startFilePos": 15, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "pok.php" + }, + "nodeType": "Expr_Include", + "type": 1 }, - "expr": { + { "attributes": { - "endFilePos": 43, + "endFilePos": 44, "endLine": 4, - "endTokenPos": 10, - "kind": 2, - "startFilePos": 35, + "endTokenPos": 11, + "startFilePos": 27, "startLine": 4, - "startTokenPos": 10 + "startTokenPos": 8 }, - "nodeType": "Scalar_String", - "value": "foo.php" - }, - "nodeType": "Expr_Include", - "type": 3 - }, - { - "attributes": { - "endFilePos": 69, - "endLine": 5, - "endTokenPos": 17, - "startFilePos": 47, - "startLine": 5, - "startTokenPos": 14 + "expr": { + "attributes": { + "endFilePos": 43, + "endLine": 4, + "endTokenPos": 10, + "kind": 2, + "startFilePos": 35, + "startLine": 4, + "startTokenPos": 10 + }, + "nodeType": "Scalar_String", + "value": "foo.php" + }, + "nodeType": "Expr_Include", + "type": 3 }, - "expr": { + { "attributes": { - "endFilePos": 68, + "endFilePos": 69, "endLine": 5, - "endTokenPos": 16, - "kind": 2, - "startFilePos": 60, + "endTokenPos": 17, + "startFilePos": 47, "startLine": 5, - "startTokenPos": 16 + "startTokenPos": 14 }, - "nodeType": "Scalar_String", - "value": "bar.php" - }, - "nodeType": "Expr_Include", - "type": 4 - } - ] + "expr": { + "attributes": { + "endFilePos": 68, + "endLine": 5, + "endTokenPos": 16, + "kind": 2, + "startFilePos": 60, + "startLine": 5, + "startTokenPos": 16 + }, + "nodeType": "Scalar_String", + "value": "bar.php" + }, + "nodeType": "Expr_Include", + "type": 4 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/include.php.uast b/fixtures/include.php.uast index 804ba94..eb4e039 100644 --- a/fixtures/include.php.uast +++ b/fixtures/include.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Include { . . . Roles: Import @@ -23,7 +23,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "pok.php" . . . . . StartPosition: { . . . . . . Offset: 15 @@ -59,7 +59,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "foo.php" . . . . . StartPosition: { . . . . . . Offset: 35 @@ -95,7 +95,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "bar.php" . . . . . StartPosition: { . . . . . . Offset: 60 diff --git a/fixtures/include_eval.php.native b/fixtures/include_eval.php.native index d320282..af184d0 100644 --- a/fixtures/include_eval.php.native +++ b/fixtures/include_eval.php.native @@ -2,130 +2,133 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 20, "endLine": 2, "endTokenPos": 3, - "kind": 1, - "startFilePos": 14, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "nodeType": "Scalar_String", - "value": "A.php" - }, - "nodeType": "Expr_Include", - "type": 1 - }, - { - "attributes": { - "endFilePos": 42, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 23, - "startLine": 3, - "startTokenPos": 6 + "expr": { + "attributes": { + "endFilePos": 20, + "endLine": 2, + "endTokenPos": 3, + "kind": 1, + "startFilePos": 14, + "startLine": 2, + "startTokenPos": 3 + }, + "nodeType": "Scalar_String", + "value": "A.php" + }, + "nodeType": "Expr_Include", + "type": 1 }, - "expr": { + { "attributes": { "endFilePos": 42, "endLine": 3, "endTokenPos": 8, - "kind": 1, - "startFilePos": 36, + "startFilePos": 23, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 6 }, - "nodeType": "Scalar_String", - "value": "A.php" - }, - "nodeType": "Expr_Include", - "type": 2 - }, - { - "attributes": { - "endFilePos": 59, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 45, - "startLine": 4, - "startTokenPos": 11 + "expr": { + "attributes": { + "endFilePos": 42, + "endLine": 3, + "endTokenPos": 8, + "kind": 1, + "startFilePos": 36, + "startLine": 3, + "startTokenPos": 8 + }, + "nodeType": "Scalar_String", + "value": "A.php" + }, + "nodeType": "Expr_Include", + "type": 2 }, - "expr": { + { "attributes": { "endFilePos": 59, "endLine": 4, "endTokenPos": 13, - "kind": 1, - "startFilePos": 53, + "startFilePos": 45, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 11 }, - "nodeType": "Scalar_String", - "value": "A.php" - }, - "nodeType": "Expr_Include", - "type": 3 - }, - { - "attributes": { - "endFilePos": 81, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 62, - "startLine": 5, - "startTokenPos": 16 + "expr": { + "attributes": { + "endFilePos": 59, + "endLine": 4, + "endTokenPos": 13, + "kind": 1, + "startFilePos": 53, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Scalar_String", + "value": "A.php" + }, + "nodeType": "Expr_Include", + "type": 3 }, - "expr": { + { "attributes": { "endFilePos": 81, "endLine": 5, "endTokenPos": 18, - "kind": 1, - "startFilePos": 75, + "startFilePos": 62, "startLine": 5, - "startTokenPos": 18 + "startTokenPos": 16 }, - "nodeType": "Scalar_String", - "value": "A.php" - }, - "nodeType": "Expr_Include", - "type": 4 - }, - { - "attributes": { - "endFilePos": 92, - "endLine": 6, - "endTokenPos": 24, - "startFilePos": 84, - "startLine": 6, - "startTokenPos": 21 + "expr": { + "attributes": { + "endFilePos": 81, + "endLine": 5, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 75, + "startLine": 5, + "startTokenPos": 18 + }, + "nodeType": "Scalar_String", + "value": "A.php" + }, + "nodeType": "Expr_Include", + "type": 4 }, - "expr": { + { "attributes": { - "endFilePos": 91, + "endFilePos": 92, "endLine": 6, - "endTokenPos": 23, - "kind": 1, - "startFilePos": 89, + "endTokenPos": 24, + "startFilePos": 84, "startLine": 6, - "startTokenPos": 23 + "startTokenPos": 21 }, - "nodeType": "Scalar_String", - "value": "A" - }, - "nodeType": "Expr_Eval" - } - ] + "expr": { + "attributes": { + "endFilePos": 91, + "endLine": 6, + "endTokenPos": 23, + "kind": 1, + "startFilePos": 89, + "startLine": 6, + "startTokenPos": 23 + }, + "nodeType": "Scalar_String", + "value": "A" + }, + "nodeType": "Expr_Eval" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/include_eval.php.uast b/fixtures/include_eval.php.uast index dc6ecd9..75b9425 100644 --- a/fixtures/include_eval.php.uast +++ b/fixtures/include_eval.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Include { . . . Roles: Import @@ -23,7 +23,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "A.php" . . . . . StartPosition: { . . . . . . Offset: 14 @@ -59,7 +59,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "A.php" . . . . . StartPosition: { . . . . . . Offset: 36 @@ -95,7 +95,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "A.php" . . . . . StartPosition: { . . . . . . Offset: 53 @@ -131,7 +131,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "A.php" . . . . . StartPosition: { . . . . . . Offset: 75 @@ -150,8 +150,7 @@ File { . . . } . . } . . 4: Expr_Eval { -. . . Roles: Expression,Call -. . . TOKEN "eval" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 84 . . . . Line: 6 diff --git a/fixtures/indirect_call.php.native b/fixtures/indirect_call.php.native index ef40cb3..a5d1598 100644 --- a/fixtures/indirect_call.php.native +++ b/fixtures/indirect_call.php.native @@ -2,169 +2,133 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [ - { - "attributes": { - "endFilePos": 22, - "endLine": 3, - "endTokenPos": 7, - "startFilePos": 22, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "ast": { + "children": [ + { + "args": [ + { "attributes": { "endFilePos": 22, "endLine": 3, "endTokenPos": 7, - "kind": 10, "startFilePos": 22, "startLine": 3, "startTokenPos": 7 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - } - ], - "attributes": { - "endFilePos": 23, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 19, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 10, - "startLine": 3, - "startTokenPos": 4 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 19, + "endFilePos": 22, "endLine": 3, - "endTokenPos": 4, - "kind": 1, - "startFilePos": 10, + "endTokenPos": 7, + "kind": 10, + "startFilePos": 22, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 7 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 1 } } ], "attributes": { - "endFilePos": 20, + "endFilePos": 23, "endLine": 3, - "endTokenPos": 5, + "endTokenPos": 8, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, "name": { + "args": [ + { + "attributes": { + "endFilePos": 19, + "endLine": 3, + "endTokenPos": 4, + "startFilePos": 10, + "startLine": 3, + "startTokenPos": 4 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 19, + "endLine": 3, + "endTokenPos": 4, + "kind": 1, + "startFilePos": 10, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "var_dump" + } + } + ], "attributes": { - "endFilePos": 8, + "endFilePos": 20, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 5, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "id" - ] + "name": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "id" + ] + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 47, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 47, - "startLine": 4, - "startTokenPos": 19 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 47, "endLine": 4, "endTokenPos": 19, - "kind": 10, "startFilePos": 47, "startLine": 4, "startTokenPos": 19 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - } - ], - "attributes": { - "endFilePos": 48, - "endLine": 4, - "endTokenPos": 20, - "startFilePos": 26, - "startLine": 4, - "startTokenPos": 11 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 44, - "endLine": 4, - "endTokenPos": 16, - "startFilePos": 35, - "startLine": 4, - "startTokenPos": 16 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 44, + "endFilePos": 47, "endLine": 4, - "endTokenPos": 16, - "kind": 1, - "startFilePos": 35, + "endTokenPos": 19, + "kind": 10, + "startFilePos": 47, "startLine": 4, - "startTokenPos": 16 + "startTokenPos": 19 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 2 } } ], "attributes": { - "endFilePos": 45, + "endFilePos": 48, "endLine": 4, - "endTokenPos": 17, + "endTokenPos": 20, "startFilePos": 26, "startLine": 4, "startTokenPos": 11 @@ -173,139 +137,166 @@ "args": [ { "attributes": { - "endFilePos": 32, + "endFilePos": 44, "endLine": 4, - "endTokenPos": 13, - "startFilePos": 29, + "endTokenPos": 16, + "startFilePos": 35, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 16 }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 32, + "endFilePos": 44, "endLine": 4, - "endTokenPos": 13, + "endTokenPos": 16, "kind": 1, - "startFilePos": 29, + "startFilePos": 35, "startLine": 4, - "startTokenPos": 13 + "startTokenPos": 16 }, "nodeType": "Scalar_String", - "value": "id" + "value": "var_dump" } } ], "attributes": { - "endFilePos": 33, + "endFilePos": 45, "endLine": 4, - "endTokenPos": 14, + "endTokenPos": 17, "startFilePos": 26, "startLine": 4, "startTokenPos": 11 }, "name": { + "args": [ + { + "attributes": { + "endFilePos": 32, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 29, + "startLine": 4, + "startTokenPos": 13 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 32, + "endLine": 4, + "endTokenPos": 13, + "kind": 1, + "startFilePos": 29, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Scalar_String", + "value": "id" + } + } + ], "attributes": { - "endFilePos": 27, + "endFilePos": 33, "endLine": 4, - "endTokenPos": 11, + "endTokenPos": 14, "startFilePos": 26, "startLine": 4, "startTokenPos": 11 }, - "nodeType": "Name", - "parts": [ - "id" - ] + "name": { + "attributes": { + "endFilePos": 27, + "endLine": 4, + "endTokenPos": 11, + "startFilePos": 26, + "startLine": 4, + "startTokenPos": 11 + }, + "nodeType": "Name", + "parts": [ + "id" + ] + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 70, - "endLine": 5, - "endTokenPos": 32, - "startFilePos": 70, - "startLine": 5, - "startTokenPos": 32 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 70, "endLine": 5, "endTokenPos": 32, - "kind": 10, "startFilePos": 70, "startLine": 5, "startTokenPos": 32 }, - "nodeType": "Scalar_LNumber", - "value": 4 - } - } - ], - "attributes": { - "endFilePos": 71, - "endLine": 5, - "endTokenPos": 33, - "startFilePos": 51, - "startLine": 5, - "startTokenPos": 23 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 67, - "endLine": 5, - "endTokenPos": 29, - "startFilePos": 58, - "startLine": 5, - "startTokenPos": 29 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 67, + "endFilePos": 70, "endLine": 5, - "endTokenPos": 29, - "kind": 1, - "startFilePos": 58, + "endTokenPos": 32, + "kind": 10, + "startFilePos": 70, "startLine": 5, - "startTokenPos": 29 + "startTokenPos": 32 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 4 } } ], "attributes": { - "endFilePos": 68, + "endFilePos": 71, "endLine": 5, - "endTokenPos": 30, + "endTokenPos": 33, "startFilePos": 51, "startLine": 5, "startTokenPos": 23 }, "name": { - "args": [], + "args": [ + { + "attributes": { + "endFilePos": 67, + "endLine": 5, + "endTokenPos": 29, + "startFilePos": 58, + "startLine": 5, + "startTokenPos": 29 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 67, + "endLine": 5, + "endTokenPos": 29, + "kind": 1, + "startFilePos": 58, + "startLine": 5, + "startTokenPos": 29 + }, + "nodeType": "Scalar_String", + "value": "var_dump" + } + } + ], "attributes": { - "endFilePos": 56, + "endFilePos": 68, "endLine": 5, - "endTokenPos": 27, + "endTokenPos": 30, "startFilePos": 51, "startLine": 5, "startTokenPos": 23 @@ -313,26 +304,38 @@ "name": { "args": [], "attributes": { - "endFilePos": 54, + "endFilePos": 56, "endLine": 5, - "endTokenPos": 25, + "endTokenPos": 27, "startFilePos": 51, "startLine": 5, "startTokenPos": 23 }, "name": { + "args": [], "attributes": { - "endFilePos": 52, + "endFilePos": 54, "endLine": 5, - "endTokenPos": 23, + "endTokenPos": 25, "startFilePos": 51, "startLine": 5, "startTokenPos": 23 }, - "nodeType": "Name", - "parts": [ - "id" - ] + "name": { + "attributes": { + "endFilePos": 52, + "endLine": 5, + "endTokenPos": 23, + "startFilePos": 51, + "startLine": 5, + "startTokenPos": 23 + }, + "nodeType": "Name", + "parts": [ + "id" + ] + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, @@ -340,298 +343,259 @@ }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 110, - "endLine": 6, - "endTokenPos": 54, - "startFilePos": 110, - "startLine": 6, - "startTokenPos": 54 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 110, "endLine": 6, "endTokenPos": 54, - "kind": 10, "startFilePos": 110, "startLine": 6, "startTokenPos": 54 }, - "nodeType": "Scalar_LNumber", - "value": 5 - } - } - ], - "attributes": { - "endFilePos": 111, - "endLine": 6, - "endTokenPos": 55, - "startFilePos": 74, - "startLine": 6, - "startTokenPos": 36 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 107, - "endLine": 6, - "endTokenPos": 51, - "startFilePos": 98, - "startLine": 6, - "startTokenPos": 51 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 107, + "endFilePos": 110, "endLine": 6, - "endTokenPos": 51, - "kind": 1, - "startFilePos": 98, + "endTokenPos": 54, + "kind": 10, + "startFilePos": 110, "startLine": 6, - "startTokenPos": 51 + "startTokenPos": 54 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 5 } } ], "attributes": { - "endFilePos": 108, + "endFilePos": 111, "endLine": 6, - "endTokenPos": 52, + "endTokenPos": 55, "startFilePos": 74, "startLine": 6, "startTokenPos": 36 }, "name": { - "args": [], + "args": [ + { + "attributes": { + "endFilePos": 107, + "endLine": 6, + "endTokenPos": 51, + "startFilePos": 98, + "startLine": 6, + "startTokenPos": 51 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 107, + "endLine": 6, + "endTokenPos": 51, + "kind": 1, + "startFilePos": 98, + "startLine": 6, + "startTokenPos": 51 + }, + "nodeType": "Scalar_String", + "value": "var_dump" + } + } + ], "attributes": { - "endFilePos": 96, + "endFilePos": 108, "endLine": 6, - "endTokenPos": 49, + "endTokenPos": 52, "startFilePos": 74, "startLine": 6, "startTokenPos": 36 }, "name": { + "args": [], "attributes": { - "endFilePos": 94, + "endFilePos": 96, "endLine": 6, - "endTokenPos": 47, + "endTokenPos": 49, "startFilePos": 74, "startLine": 6, "startTokenPos": 36 }, - "dim": { + "name": { "attributes": { - "endFilePos": 93, + "endFilePos": 94, "endLine": 6, - "endTokenPos": 46, - "kind": 10, - "startFilePos": 93, + "endTokenPos": 47, + "startFilePos": 74, "startLine": 6, - "startTokenPos": 46 + "startTokenPos": 36 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "args": [ - { - "attributes": { - "endFilePos": 90, - "endLine": 6, - "endTokenPos": 43, - "startFilePos": 77, - "startLine": 6, - "startTokenPos": 38 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "dim": { + "attributes": { + "endFilePos": 93, + "endLine": 6, + "endTokenPos": 46, + "kind": 10, + "startFilePos": 93, + "startLine": 6, + "startTokenPos": 46 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "args": [ + { "attributes": { "endFilePos": 90, "endLine": 6, "endTokenPos": 43, - "kind": 2, "startFilePos": 77, "startLine": 6, "startTokenPos": 38 }, - "items": [ - { - "attributes": { - "endFilePos": 83, - "endLine": 6, - "endTokenPos": 39, - "startFilePos": 78, - "startLine": 6, - "startTokenPos": 39 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 90, + "endLine": 6, + "endTokenPos": 43, + "kind": 2, + "startFilePos": 77, + "startLine": 6, + "startTokenPos": 38 + }, + "items": [ + { "attributes": { "endFilePos": 83, "endLine": 6, "endTokenPos": 39, - "kind": 1, "startFilePos": 78, "startLine": 6, "startTokenPos": 39 }, - "nodeType": "Scalar_String", - "value": "udef" - } - }, - { - "attributes": { - "endFilePos": 89, - "endLine": 6, - "endTokenPos": 42, - "startFilePos": 86, - "startLine": 6, - "startTokenPos": 42 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 83, + "endLine": 6, + "endTokenPos": 39, + "kind": 1, + "startFilePos": 78, + "startLine": 6, + "startTokenPos": 39 + }, + "nodeType": "Scalar_String", + "value": "udef" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 89, "endLine": 6, "endTokenPos": 42, - "kind": 1, "startFilePos": 86, "startLine": 6, "startTokenPos": 42 }, - "nodeType": "Scalar_String", - "value": "id" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 89, + "endLine": 6, + "endTokenPos": 42, + "kind": 1, + "startFilePos": 86, + "startLine": 6, + "startTokenPos": 42 + }, + "nodeType": "Scalar_String", + "value": "id" + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ], - "attributes": { - "endFilePos": 91, - "endLine": 6, - "endTokenPos": 44, - "startFilePos": 74, - "startLine": 6, - "startTokenPos": 36 - }, - "name": { + ], "attributes": { - "endFilePos": 75, + "endFilePos": 91, "endLine": 6, - "endTokenPos": 36, + "endTokenPos": 44, "startFilePos": 74, "startLine": 6, "startTokenPos": 36 }, - "nodeType": "Name", - "parts": [ - "id" - ] - }, - "nodeType": "Expr_FuncCall" - } + "name": { + "attributes": { + "endFilePos": 75, + "endLine": 6, + "endTokenPos": 36, + "startFilePos": 74, + "startLine": 6, + "startTokenPos": 36 + }, + "nodeType": "Name", + "parts": [ + "id" + ] + }, + "nodeType": "Expr_FuncCall" + } + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 162, - "endLine": 7, - "endTokenPos": 80, - "startFilePos": 162, - "startLine": 7, - "startTokenPos": 80 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 162, "endLine": 7, "endTokenPos": 80, - "kind": 10, "startFilePos": 162, "startLine": 7, "startTokenPos": 80 }, - "nodeType": "Scalar_LNumber", - "value": 8 - } - } - ], - "attributes": { - "endFilePos": 163, - "endLine": 7, - "endTokenPos": 81, - "startFilePos": 114, - "startLine": 7, - "startTokenPos": 58 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 159, - "endLine": 7, - "endTokenPos": 77, - "startFilePos": 150, - "startLine": 7, - "startTokenPos": 77 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 159, + "endFilePos": 162, "endLine": 7, - "endTokenPos": 77, - "kind": 1, - "startFilePos": 150, + "endTokenPos": 80, + "kind": 10, + "startFilePos": 162, "startLine": 7, - "startTokenPos": 77 + "startTokenPos": 80 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 8 } } ], "attributes": { - "endFilePos": 160, + "endFilePos": 163, "endLine": 7, - "endTokenPos": 78, + "endTokenPos": 81, "startFilePos": 114, "startLine": 7, "startTokenPos": 58 @@ -640,183 +604,210 @@ "args": [ { "attributes": { - "endFilePos": 147, + "endFilePos": 159, "endLine": 7, - "endTokenPos": 74, - "startFilePos": 144, + "endTokenPos": 77, + "startFilePos": 150, "startLine": 7, - "startTokenPos": 74 + "startTokenPos": 77 }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 147, + "endFilePos": 159, "endLine": 7, - "endTokenPos": 74, + "endTokenPos": 77, "kind": 1, - "startFilePos": 144, + "startFilePos": 150, "startLine": 7, - "startTokenPos": 74 + "startTokenPos": 77 }, "nodeType": "Scalar_String", - "value": "id" + "value": "var_dump" } } ], "attributes": { - "endFilePos": 148, + "endFilePos": 160, "endLine": 7, - "endTokenPos": 75, + "endTokenPos": 78, "startFilePos": 114, "startLine": 7, "startTokenPos": 58 }, "name": { - "attributes": { - "endFilePos": 141, - "endLine": 7, - "endTokenPos": 71, - "startFilePos": 115, - "startLine": 7, - "startTokenPos": 59 - }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [ + "args": [ { "attributes": { - "endFilePos": 125, + "endFilePos": 147, "endLine": 7, - "endTokenPos": 61, - "startFilePos": 124, + "endTokenPos": 74, + "startFilePos": 144, "startLine": 7, - "startTokenPos": 61 + "startTokenPos": 74 }, "byRef": false, - "default": null, - "name": "x", - "nodeType": "Param", - "type": null, - "variadic": false + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 147, + "endLine": 7, + "endTokenPos": 74, + "kind": 1, + "startFilePos": 144, + "startLine": 7, + "startTokenPos": 74 + }, + "nodeType": "Scalar_String", + "value": "id" + } } ], - "returnType": null, - "static": false, - "stmts": [ - { - "attributes": { - "endFilePos": 139, - "endLine": 7, - "endTokenPos": 69, - "startFilePos": 130, - "startLine": 7, - "startTokenPos": 66 - }, - "expr": { + "attributes": { + "endFilePos": 148, + "endLine": 7, + "endTokenPos": 75, + "startFilePos": 114, + "startLine": 7, + "startTokenPos": 58 + }, + "name": { + "attributes": { + "endFilePos": 141, + "endLine": 7, + "endTokenPos": 71, + "startFilePos": 115, + "startLine": 7, + "startTokenPos": 59 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { "attributes": { - "endFilePos": 138, + "endFilePos": 125, "endLine": 7, - "endTokenPos": 68, - "startFilePos": 137, + "endTokenPos": 61, + "startFilePos": 124, "startLine": 7, - "startTokenPos": 68 + "startTokenPos": 61 }, + "byRef": false, + "default": null, "name": "x", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Return" - } - ], - "uses": [] + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "static": false, + "stmts": [ + { + "attributes": { + "endFilePos": 139, + "endLine": 7, + "endTokenPos": 69, + "startFilePos": 130, + "startLine": 7, + "startTokenPos": 66 + }, + "expr": { + "attributes": { + "endFilePos": 138, + "endLine": 7, + "endTokenPos": 68, + "startFilePos": 137, + "startLine": 7, + "startTokenPos": 68 + }, + "name": "x", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Return" + } + ], + "uses": [] + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 246, - "endLine": 10, - "endTokenPos": 129, - "startFilePos": 246, - "startLine": 10, - "startTokenPos": 129 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 246, "endLine": 10, "endTokenPos": 129, - "kind": 10, "startFilePos": 246, "startLine": 10, "startTokenPos": 129 }, - "nodeType": "Scalar_LNumber", - "value": 9 - } - } - ], - "attributes": { - "endFilePos": 247, - "endLine": 10, - "endTokenPos": 130, - "startFilePos": 166, - "startLine": 8, - "startTokenPos": 84 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 243, - "endLine": 10, - "endTokenPos": 126, - "startFilePos": 234, - "startLine": 10, - "startTokenPos": 126 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 243, + "endFilePos": 246, "endLine": 10, - "endTokenPos": 126, - "kind": 1, - "startFilePos": 234, + "endTokenPos": 129, + "kind": 10, + "startFilePos": 246, "startLine": 10, - "startTokenPos": 126 + "startTokenPos": 129 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 9 } } ], "attributes": { - "endFilePos": 244, + "endFilePos": 247, "endLine": 10, - "endTokenPos": 127, + "endTokenPos": 130, "startFilePos": 166, "startLine": 8, "startTokenPos": 84 }, "name": { - "args": [], + "args": [ + { + "attributes": { + "endFilePos": 243, + "endLine": 10, + "endTokenPos": 126, + "startFilePos": 234, + "startLine": 10, + "startTokenPos": 126 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 243, + "endLine": 10, + "endTokenPos": 126, + "kind": 1, + "startFilePos": 234, + "startLine": 10, + "startTokenPos": 126 + }, + "nodeType": "Scalar_String", + "value": "var_dump" + } + } + ], "attributes": { - "endFilePos": 232, + "endFilePos": 244, "endLine": 10, - "endTokenPos": 124, + "endTokenPos": 127, "startFilePos": 166, "startLine": 8, "startTokenPos": 84 @@ -824,9 +815,9 @@ "name": { "args": [], "attributes": { - "endFilePos": 230, + "endFilePos": 232, "endLine": 10, - "endTokenPos": 122, + "endTokenPos": 124, "startFilePos": 166, "startLine": 8, "startTokenPos": 84 @@ -834,54 +825,55 @@ "name": { "args": [], "attributes": { - "endFilePos": 228, + "endFilePos": 230, "endLine": 10, - "endTokenPos": 120, + "endTokenPos": 122, "startFilePos": 166, "startLine": 8, "startTokenPos": 84 }, "name": { + "args": [], "attributes": { - "endFilePos": 225, + "endFilePos": 228, "endLine": 10, - "endTokenPos": 117, - "startFilePos": 167, + "endTokenPos": 120, + "startFilePos": 166, "startLine": 8, - "startTokenPos": 85 + "startTokenPos": 84 }, - "expr": { + "name": { "attributes": { "endFilePos": 225, "endLine": 10, "endTokenPos": 117, - "startFilePos": 172, + "startFilePos": 167, "startLine": 8, - "startTokenPos": 89 + "startTokenPos": 85 }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 189, - "endLine": 8, - "endTokenPos": 95, - "startFilePos": 181, - "startLine": 8, - "startTokenPos": 91 - }, - "byRef": false, - "default": { + "expr": { + "attributes": { + "endFilePos": 225, + "endLine": 10, + "endTokenPos": 117, + "startFilePos": 172, + "startLine": 8, + "startTokenPos": 89 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { "attributes": { "endFilePos": 189, "endLine": 8, "endTokenPos": 95, - "startFilePos": 186, + "startFilePos": 181, "startLine": 8, - "startTokenPos": 95 + "startTokenPos": 91 }, - "name": { + "byRef": false, + "default": { "attributes": { "endFilePos": 189, "endLine": 8, @@ -890,99 +882,110 @@ "startLine": 8, "startTokenPos": 95 }, - "nodeType": "Name", - "parts": [ - "null" - ] + "name": { + "attributes": { + "endFilePos": 189, + "endLine": 8, + "endTokenPos": 95, + "startFilePos": 186, + "startLine": 8, + "startTokenPos": 95 + }, + "nodeType": "Name", + "parts": [ + "null" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "nodeType": "Expr_ConstFetch" - }, - "name": "x", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "static": false, - "stmts": [ - { - "attributes": { - "endFilePos": 223, - "endLine": 9, - "endTokenPos": 115, - "startFilePos": 208, - "startLine": 9, - "startTokenPos": 107 - }, - "expr": { + "name": "x", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "static": false, + "stmts": [ + { "attributes": { - "endFilePos": 222, + "endFilePos": 223, "endLine": 9, - "endTokenPos": 114, - "startFilePos": 215, + "endTokenPos": 115, + "startFilePos": 208, "startLine": 9, - "startTokenPos": 109 + "startTokenPos": 107 }, - "cond": { + "expr": { "attributes": { - "endFilePos": 216, + "endFilePos": 222, "endLine": 9, - "endTokenPos": 109, + "endTokenPos": 114, "startFilePos": 215, "startLine": 9, "startTokenPos": 109 }, - "name": "x", - "nodeType": "Expr_Variable" - }, - "else": { - "attributes": { - "endFilePos": 222, - "endLine": 9, - "endTokenPos": 114, - "startFilePos": 221, - "startLine": 9, - "startTokenPos": 114 + "cond": { + "attributes": { + "endFilePos": 216, + "endLine": 9, + "endTokenPos": 109, + "startFilePos": 215, + "startLine": 9, + "startTokenPos": 109 + }, + "name": "x", + "nodeType": "Expr_Variable" + }, + "else": { + "attributes": { + "endFilePos": 222, + "endLine": 9, + "endTokenPos": 114, + "startFilePos": 221, + "startLine": 9, + "startTokenPos": 114 + }, + "name": "f", + "nodeType": "Expr_Variable" }, - "name": "f", - "nodeType": "Expr_Variable" + "if": null, + "nodeType": "Expr_Ternary" }, - "if": null, - "nodeType": "Expr_Ternary" - }, - "nodeType": "Stmt_Return" - } - ], - "uses": [ - { - "attributes": { - "endFilePos": 199, - "endLine": 8, - "endTokenPos": 102, - "startFilePos": 197, - "startLine": 8, - "startTokenPos": 101 - }, - "byRef": true, - "nodeType": "Expr_ClosureUse", - "var": "f" - } - ] - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 168, - "endLine": 8, - "endTokenPos": 85, - "startFilePos": 167, - "startLine": 8, - "startTokenPos": 85 + "nodeType": "Stmt_Return" + } + ], + "uses": [ + { + "attributes": { + "endFilePos": 199, + "endLine": 8, + "endTokenPos": 102, + "startFilePos": 197, + "startLine": 8, + "startTokenPos": 101 + }, + "byRef": true, + "nodeType": "Expr_ClosureUse", + "var": "f" + } + ] }, - "name": "f", - "nodeType": "Expr_Variable" - } + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 168, + "endLine": 8, + "endTokenPos": 85, + "startFilePos": 167, + "startLine": 8, + "startTokenPos": 85 + }, + "name": "f", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, @@ -992,78 +995,39 @@ }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 289, - "endLine": 11, - "endTokenPos": 151, - "startFilePos": 288, - "startLine": 11, - "startTokenPos": 151 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 289, "endLine": 11, "endTokenPos": 151, - "kind": 10, "startFilePos": 288, "startLine": 11, "startTokenPos": 151 }, - "nodeType": "Scalar_LNumber", - "value": 10 - } - } - ], - "attributes": { - "endFilePos": 290, - "endLine": 11, - "endTokenPos": 152, - "startFilePos": 250, - "startLine": 11, - "startTokenPos": 133 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 285, - "endLine": 11, - "endTokenPos": 148, - "startFilePos": 276, - "startLine": 11, - "startTokenPos": 148 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 285, - "endLine": 11, - "endTokenPos": 148, - "kind": 1, - "startFilePos": 276, + "endFilePos": 289, + "endLine": 11, + "endTokenPos": 151, + "kind": 10, + "startFilePos": 288, "startLine": 11, - "startTokenPos": 148 + "startTokenPos": 151 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 10 } } ], "attributes": { - "endFilePos": 286, + "endFilePos": 290, "endLine": 11, - "endTokenPos": 149, + "endTokenPos": 152, "startFilePos": 250, "startLine": 11, "startTokenPos": 133 @@ -1072,34 +1036,35 @@ "args": [ { "attributes": { - "endFilePos": 273, + "endFilePos": 285, "endLine": 11, - "endTokenPos": 145, - "startFilePos": 271, + "endTokenPos": 148, + "startFilePos": 276, "startLine": 11, - "startTokenPos": 145 + "startTokenPos": 148 }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 273, + "endFilePos": 285, "endLine": 11, - "endTokenPos": 145, - "startFilePos": 271, + "endTokenPos": 148, + "kind": 1, + "startFilePos": 276, "startLine": 11, - "startTokenPos": 145 + "startTokenPos": 148 }, - "name": "id", - "nodeType": "Expr_Variable" + "nodeType": "Scalar_String", + "value": "var_dump" } } ], "attributes": { - "endFilePos": 274, + "endFilePos": 286, "endLine": 11, - "endTokenPos": 146, + "endTokenPos": 149, "startFilePos": 250, "startLine": 11, "startTokenPos": 133 @@ -1108,73 +1073,97 @@ "args": [ { "attributes": { - "endFilePos": 268, + "endFilePos": 273, "endLine": 11, - "endTokenPos": 142, - "startFilePos": 265, + "endTokenPos": 145, + "startFilePos": 271, "startLine": 11, - "startTokenPos": 142 + "startTokenPos": 145 }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 268, + "endFilePos": 273, "endLine": 11, - "endTokenPos": 142, - "kind": 1, - "startFilePos": 265, + "endTokenPos": 145, + "startFilePos": 271, "startLine": 11, - "startTokenPos": 142 + "startTokenPos": 145 }, - "nodeType": "Scalar_String", - "value": "id" + "name": "id", + "nodeType": "Expr_Variable" } } ], "attributes": { - "endFilePos": 269, + "endFilePos": 274, "endLine": 11, - "endTokenPos": 143, + "endTokenPos": 146, "startFilePos": 250, "startLine": 11, "startTokenPos": 133 }, "name": { - "args": [], + "args": [ + { + "attributes": { + "endFilePos": 268, + "endLine": 11, + "endTokenPos": 142, + "startFilePos": 265, + "startLine": 11, + "startTokenPos": 142 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 268, + "endLine": 11, + "endTokenPos": 142, + "kind": 1, + "startFilePos": 265, + "startLine": 11, + "startTokenPos": 142 + }, + "nodeType": "Scalar_String", + "value": "id" + } + } + ], "attributes": { - "endFilePos": 263, + "endFilePos": 269, "endLine": 11, - "endTokenPos": 140, + "endTokenPos": 143, "startFilePos": 250, "startLine": 11, "startTokenPos": 133 }, "name": { + "args": [], "attributes": { - "endFilePos": 261, + "endFilePos": 263, "endLine": 11, - "endTokenPos": 138, - "kind": 2, + "endTokenPos": 140, "startFilePos": 250, "startLine": 11, "startTokenPos": 133 }, - "items": [ - { - "attributes": { - "endFilePos": 254, - "endLine": 11, - "endTokenPos": 134, - "startFilePos": 251, - "startLine": 11, - "startTokenPos": 134 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "name": { + "attributes": { + "endFilePos": 261, + "endLine": 11, + "endTokenPos": 138, + "kind": 2, + "startFilePos": 250, + "startLine": 11, + "startTokenPos": 133 + }, + "items": [ + { "attributes": { "endFilePos": 254, "endLine": 11, @@ -1183,38 +1172,52 @@ "startLine": 11, "startTokenPos": 134 }, - "name": "obj", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 260, - "endLine": 11, - "endTokenPos": 137, - "startFilePos": 257, - "startLine": 11, - "startTokenPos": 137 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 254, + "endLine": 11, + "endTokenPos": 134, + "startFilePos": 251, + "startLine": 11, + "startTokenPos": 134 + }, + "name": "obj", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 260, "endLine": 11, "endTokenPos": 137, - "kind": 1, "startFilePos": 257, "startLine": 11, "startTokenPos": 137 }, - "nodeType": "Scalar_String", - "value": "id" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 260, + "endLine": 11, + "endTokenPos": 137, + "kind": 1, + "startFilePos": 257, + "startLine": 11, + "startTokenPos": 137 + }, + "nodeType": "Scalar_String", + "value": "id" + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, @@ -1224,78 +1227,39 @@ }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 319, - "endLine": 12, - "endTokenPos": 165, - "startFilePos": 318, - "startLine": 12, - "startTokenPos": 165 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 319, "endLine": 12, "endTokenPos": 165, - "kind": 10, "startFilePos": 318, "startLine": 12, "startTokenPos": 165 }, - "nodeType": "Scalar_LNumber", - "value": 12 - } - } - ], - "attributes": { - "endFilePos": 320, - "endLine": 12, - "endTokenPos": 166, - "startFilePos": 293, - "startLine": 12, - "startTokenPos": 155 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 315, - "endLine": 12, - "endTokenPos": 162, - "startFilePos": 306, - "startLine": 12, - "startTokenPos": 162 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 315, + "endFilePos": 319, "endLine": 12, - "endTokenPos": 162, - "kind": 1, - "startFilePos": 306, + "endTokenPos": 165, + "kind": 10, + "startFilePos": 318, "startLine": 12, - "startTokenPos": 162 + "startTokenPos": 165 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 12 } } ], "attributes": { - "endFilePos": 316, + "endFilePos": 320, "endLine": 12, - "endTokenPos": 163, + "endTokenPos": 166, "startFilePos": 293, "startLine": 12, "startTokenPos": 155 @@ -1304,61 +1268,100 @@ "args": [ { "attributes": { - "endFilePos": 303, + "endFilePos": 315, "endLine": 12, - "endTokenPos": 159, - "startFilePos": 300, + "endTokenPos": 162, + "startFilePos": 306, "startLine": 12, - "startTokenPos": 159 + "startTokenPos": 162 }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 303, + "endFilePos": 315, "endLine": 12, - "endTokenPos": 159, + "endTokenPos": 162, "kind": 1, - "startFilePos": 300, + "startFilePos": 306, "startLine": 12, - "startTokenPos": 159 + "startTokenPos": 162 }, "nodeType": "Scalar_String", - "value": "id" + "value": "var_dump" } } ], "attributes": { - "endFilePos": 304, + "endFilePos": 316, "endLine": 12, - "endTokenPos": 160, + "endTokenPos": 163, "startFilePos": 293, "startLine": 12, "startTokenPos": 155 }, "name": { - "args": [], + "args": [ + { + "attributes": { + "endFilePos": 303, + "endLine": 12, + "endTokenPos": 159, + "startFilePos": 300, + "startLine": 12, + "startTokenPos": 159 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 303, + "endLine": 12, + "endTokenPos": 159, + "kind": 1, + "startFilePos": 300, + "startLine": 12, + "startTokenPos": 159 + }, + "nodeType": "Scalar_String", + "value": "id" + } + } + ], "attributes": { - "endFilePos": 298, + "endFilePos": 304, "endLine": 12, - "endTokenPos": 157, + "endTokenPos": 160, "startFilePos": 293, "startLine": 12, "startTokenPos": 155 }, "name": { + "args": [], "attributes": { - "endFilePos": 296, + "endFilePos": 298, "endLine": 12, - "endTokenPos": 155, - "kind": 1, + "endTokenPos": 157, "startFilePos": 293, "startLine": 12, "startTokenPos": 155 }, - "nodeType": "Scalar_String", - "value": "id" + "name": { + "attributes": { + "endFilePos": 296, + "endLine": 12, + "endTokenPos": 155, + "kind": 1, + "startFilePos": 293, + "startLine": 12, + "startTokenPos": 155 + }, + "nodeType": "Scalar_String", + "value": "id" + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, @@ -1366,225 +1369,225 @@ }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 350, - "endLine": 13, - "endTokenPos": 182, - "startFilePos": 349, - "startLine": 13, - "startTokenPos": 182 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 350, "endLine": 13, "endTokenPos": 182, - "kind": 10, "startFilePos": 349, "startLine": 13, "startTokenPos": 182 }, - "nodeType": "Scalar_LNumber", - "value": 13 - } - } - ], - "attributes": { - "endFilePos": 351, - "endLine": 13, - "endTokenPos": 183, - "startFilePos": 323, - "startLine": 13, - "startTokenPos": 169 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 346, - "endLine": 13, - "endTokenPos": 179, - "startFilePos": 337, - "startLine": 13, - "startTokenPos": 179 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 346, + "endFilePos": 350, "endLine": 13, - "endTokenPos": 179, - "kind": 1, - "startFilePos": 337, + "endTokenPos": 182, + "kind": 10, + "startFilePos": 349, "startLine": 13, - "startTokenPos": 179 + "startTokenPos": 182 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 13 } } ], "attributes": { - "endFilePos": 347, + "endFilePos": 351, "endLine": 13, - "endTokenPos": 180, + "endTokenPos": 183, "startFilePos": 323, "startLine": 13, "startTokenPos": 169 }, "name": { - "args": [], + "args": [ + { + "attributes": { + "endFilePos": 346, + "endLine": 13, + "endTokenPos": 179, + "startFilePos": 337, + "startLine": 13, + "startTokenPos": 179 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 346, + "endLine": 13, + "endTokenPos": 179, + "kind": 1, + "startFilePos": 337, + "startLine": 13, + "startTokenPos": 179 + }, + "nodeType": "Scalar_String", + "value": "var_dump" + } + } + ], "attributes": { - "endFilePos": 335, + "endFilePos": 347, "endLine": 13, - "endTokenPos": 177, + "endTokenPos": 180, "startFilePos": 323, "startLine": 13, "startTokenPos": 169 }, "name": { + "args": [], "attributes": { - "endFilePos": 332, + "endFilePos": 335, "endLine": 13, - "endTokenPos": 174, - "startFilePos": 324, + "endTokenPos": 177, + "startFilePos": 323, "startLine": 13, - "startTokenPos": 170 + "startTokenPos": 169 }, - "left": { + "name": { "attributes": { - "endFilePos": 326, + "endFilePos": 332, "endLine": 13, - "endTokenPos": 170, - "kind": 1, + "endTokenPos": 174, "startFilePos": 324, "startLine": 13, "startTokenPos": 170 }, - "nodeType": "Scalar_String", - "value": "i" - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 332, - "endLine": 13, - "endTokenPos": 174, - "kind": 1, - "startFilePos": 330, - "startLine": 13, - "startTokenPos": 174 + "left": { + "attributes": { + "endFilePos": 326, + "endLine": 13, + "endTokenPos": 170, + "kind": 1, + "startFilePos": 324, + "startLine": 13, + "startTokenPos": 170 + }, + "nodeType": "Scalar_String", + "value": "i" }, - "nodeType": "Scalar_String", - "value": "d" - } + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 332, + "endLine": 13, + "endTokenPos": 174, + "kind": 1, + "startFilePos": 330, + "startLine": 13, + "startTokenPos": 174 + }, + "nodeType": "Scalar_String", + "value": "d" + } + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 373, - "endLine": 14, - "endTokenPos": 191, - "startFilePos": 372, - "startLine": 14, - "startTokenPos": 191 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 373, "endLine": 14, "endTokenPos": 191, - "kind": 10, "startFilePos": 372, "startLine": 14, "startTokenPos": 191 }, - "nodeType": "Scalar_LNumber", - "value": 14 - } - } - ], - "attributes": { - "endFilePos": 374, - "endLine": 14, - "endTokenPos": 192, - "startFilePos": 354, - "startLine": 14, - "startTokenPos": 186 - }, - "name": { - "args": [ - { - "attributes": { - "endFilePos": 369, - "endLine": 14, - "endTokenPos": 188, - "startFilePos": 360, - "startLine": 14, - "startTokenPos": 188 - }, "byRef": false, "nodeType": "Arg", "unpack": false, "value": { "attributes": { - "endFilePos": 369, + "endFilePos": 373, "endLine": 14, - "endTokenPos": 188, - "kind": 1, - "startFilePos": 360, + "endTokenPos": 191, + "kind": 10, + "startFilePos": 372, "startLine": 14, - "startTokenPos": 188 + "startTokenPos": 191 }, - "nodeType": "Scalar_String", - "value": "var_dump" + "nodeType": "Scalar_LNumber", + "value": 14 } } ], "attributes": { - "endFilePos": 370, + "endFilePos": 374, "endLine": 14, - "endTokenPos": 189, + "endTokenPos": 192, "startFilePos": 354, "startLine": 14, "startTokenPos": 186 }, "name": { + "args": [ + { + "attributes": { + "endFilePos": 369, + "endLine": 14, + "endTokenPos": 188, + "startFilePos": 360, + "startLine": 14, + "startTokenPos": 188 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 369, + "endLine": 14, + "endTokenPos": 188, + "kind": 1, + "startFilePos": 360, + "startLine": 14, + "startTokenPos": 188 + }, + "nodeType": "Scalar_String", + "value": "var_dump" + } + } + ], "attributes": { - "endFilePos": 358, + "endFilePos": 370, "endLine": 14, - "endTokenPos": 186, - "kind": 1, + "endTokenPos": 189, "startFilePos": 354, "startLine": 14, "startTokenPos": 186 }, - "nodeType": "Scalar_String", - "value": "\\id" + "name": { + "attributes": { + "endFilePos": 358, + "endLine": 14, + "endTokenPos": 186, + "kind": 1, + "startFilePos": 354, + "startLine": 14, + "startTokenPos": 186 + }, + "nodeType": "Scalar_String", + "value": "\\id" + }, + "nodeType": "Expr_FuncCall" }, "nodeType": "Expr_FuncCall" - }, - "nodeType": "Expr_FuncCall" - } - ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/indirect_call.php.uast b/fixtures/indirect_call.php.uast index 12e191d..553a547 100644 --- a/fixtures/indirect_call.php.uast +++ b/fixtures/indirect_call.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -38,7 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "id" . . . . . . . StartPosition: { . . . . . . . . Offset: 7 @@ -133,7 +133,7 @@ File { . . . } . . } . . 1: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 26 . . . . Line: 4 @@ -149,7 +149,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 26 . . . . . . Line: 4 @@ -165,7 +165,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 26 . . . . . . . . Line: 4 @@ -181,7 +181,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "id" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 26 @@ -315,7 +315,7 @@ File { . . . } . . } . . 2: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 51 . . . . Line: 5 @@ -331,7 +331,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 51 . . . . . . Line: 5 @@ -347,7 +347,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 51 . . . . . . . . Line: 5 @@ -363,7 +363,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 51 . . . . . . . . . . Line: 5 @@ -379,7 +379,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "id" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 51 @@ -478,7 +478,7 @@ File { . . . } . . } . . 3: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 74 . . . . Line: 6 @@ -494,7 +494,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 74 . . . . . . Line: 6 @@ -510,7 +510,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 74 . . . . . . . . Line: 6 @@ -526,7 +526,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . . . . . Roles: Entry,Expression,List,Value . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 74 . . . . . . . . . . Line: 6 @@ -542,7 +542,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . Roles: Expression,Call +. . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 74 . . . . . . . . . . . . Line: 6 @@ -558,7 +558,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . TOKEN "id" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 74 @@ -593,7 +593,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 77 . . . . . . . . . . . . . . . . Line: 6 @@ -609,7 +609,7 @@ File { . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 78 . . . . . . . . . . . . . . . . . . Line: 6 @@ -645,7 +645,7 @@ File { . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 86 . . . . . . . . . . . . . . . . . . Line: 6 @@ -786,7 +786,7 @@ File { . . . } . . } . . 4: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 114 . . . . Line: 7 @@ -802,7 +802,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 114 . . . . . . Line: 7 @@ -818,7 +818,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 114 . . . . . . . . Line: 7 @@ -834,7 +834,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Closure { -. . . . . . . . . Roles: Function,Declaration,Expression,Anonymous,Name +. . . . . . . . . Roles: Anonymous,Declaration,Expression,Function . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 115 . . . . . . . . . . Line: 7 @@ -853,7 +853,6 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Param { . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . TOKEN "x" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 124 . . . . . . . . . . . . Line: 7 @@ -869,9 +868,18 @@ File { . . . . . . . . . . . . internalRole: params . . . . . . . . . . . . variadic: false . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "x" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Stmt_Return { -. . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 130 . . . . . . . . . . . . Line: 7 @@ -888,7 +896,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "x" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 137 . . . . . . . . . . . . . . Line: 7 @@ -902,6 +909,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "x" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } @@ -1025,7 +1041,7 @@ File { . . . } . . } . . 5: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 166 . . . . Line: 8 @@ -1041,7 +1057,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 166 . . . . . . Line: 8 @@ -1057,7 +1073,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 166 . . . . . . . . Line: 8 @@ -1073,7 +1089,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 166 . . . . . . . . . . Line: 8 @@ -1089,7 +1105,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 166 . . . . . . . . . . . . Line: 8 @@ -1105,7 +1121,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Assign { -. . . . . . . . . . . . . Roles: Expression,Assignment,Function,Name +. . . . . . . . . . . . . Roles: Assignment,Expression . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 167 . . . . . . . . . . . . . . Line: 8 @@ -1121,8 +1137,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . . . . . . . TOKEN "f" +. . . . . . . . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 167 . . . . . . . . . . . . . . . . Line: 8 @@ -1136,9 +1151,18 @@ File { . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "f" +. . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_Closure { -. . . . . . . . . . . . . . . Roles: Function,Declaration,Expression,Anonymous,Right +. . . . . . . . . . . . . . . Roles: Anonymous,Declaration,Expression,Function,Right . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 172 . . . . . . . . . . . . . . . . Line: 8 @@ -1157,7 +1181,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Param { . . . . . . . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . . . . . . . TOKEN "x" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 181 . . . . . . . . . . . . . . . . . . Line: 8 @@ -1174,8 +1197,15 @@ File { . . . . . . . . . . . . . . . . . . variadic: false . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . . . . . 0: Expr_ConstFetch { -. . . . . . . . . . . . . . . . . . . Roles: Expression,Variable,Incomplete +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "x" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . 1: Expr_ConstFetch { +. . . . . . . . . . . . . . . . . . . Roles: Default,Expression,Incomplete,Variable . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 186 . . . . . . . . . . . . . . . . . . . . Line: 8 @@ -1191,7 +1221,7 @@ File { . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Null +. . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . . . . . . . TOKEN "null" . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 186 @@ -1212,8 +1242,7 @@ File { . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . 1: Expr_ClosureUse { -. . . . . . . . . . . . . . . . . Roles: Visibility,Incomplete -. . . . . . . . . . . . . . . . . TOKEN "f" +. . . . . . . . . . . . . . . . . Roles: Incomplete,Visibility . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 197 . . . . . . . . . . . . . . . . . . Line: 8 @@ -1227,10 +1256,11 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . byRef: true . . . . . . . . . . . . . . . . . . internalRole: uses +. . . . . . . . . . . . . . . . . . var: f . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . 2: Stmt_Return { -. . . . . . . . . . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . . . . . . . . . Roles: Return,Statement . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 208 . . . . . . . . . . . . . . . . . . Line: 9 @@ -1262,8 +1292,7 @@ File { . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . . . . . . . . . . . . . . . TOKEN "x" +. . . . . . . . . . . . . . . . . . . . . Roles: Condition,Identifier,If,Variable . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 215 . . . . . . . . . . . . . . . . . . . . . . Line: 9 @@ -1277,10 +1306,18 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: cond . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "x" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . 1: Expr_Variable { -. . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable,Else -. . . . . . . . . . . . . . . . . . . . . TOKEN "f" +. . . . . . . . . . . . . . . . . . . . . Roles: Else,Identifier,Variable . . . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . . . Offset: 221 . . . . . . . . . . . . . . . . . . . . . . Line: 9 @@ -1294,6 +1331,15 @@ File { . . . . . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . . . . . internalRole: else . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "f" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } @@ -1388,7 +1434,7 @@ File { . . . } . . } . . 6: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 250 . . . . Line: 11 @@ -1404,7 +1450,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 250 . . . . . . Line: 11 @@ -1420,7 +1466,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 250 . . . . . . . . Line: 11 @@ -1436,7 +1482,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 250 . . . . . . . . . . Line: 11 @@ -1452,7 +1498,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 250 . . . . . . . . . . . . Line: 11 @@ -1468,7 +1514,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . . . Roles: Expression,Literal,List,Function,Name +. . . . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 250 . . . . . . . . . . . . . . Line: 11 @@ -1484,7 +1530,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 251 . . . . . . . . . . . . . . . . Line: 11 @@ -1502,7 +1548,6 @@ File { . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . TOKEN "obj" . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . Offset: 251 . . . . . . . . . . . . . . . . . . Line: 11 @@ -1516,11 +1561,20 @@ File { . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "obj" +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . } . . . . . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 257 . . . . . . . . . . . . . . . . Line: 11 @@ -1618,7 +1672,6 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "id" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 271 . . . . . . . . . . . . Line: 11 @@ -1632,6 +1685,15 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: value . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "id" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } @@ -1716,7 +1778,7 @@ File { . . . } . . } . . 7: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 293 . . . . Line: 12 @@ -1732,7 +1794,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 293 . . . . . . Line: 12 @@ -1748,7 +1810,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 293 . . . . . . . . Line: 12 @@ -1764,7 +1826,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 293 . . . . . . . . . . Line: 12 @@ -1780,7 +1842,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . Roles: Expression,Literal,String,Function,Name +. . . . . . . . . . . Roles: Expression,Literal,String . . . . . . . . . . . TOKEN "id" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 293 @@ -1916,7 +1978,7 @@ File { . . . } . . } . . 8: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 323 . . . . Line: 13 @@ -1932,7 +1994,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 323 . . . . . . Line: 13 @@ -1948,7 +2010,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Function,Name,Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 323 . . . . . . . . Line: 13 @@ -1964,7 +2026,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_BinaryOp_Concat { -. . . . . . . . . Roles: Expression,Binary,Operator,Add,Incomplete,Function,Name +. . . . . . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 324 . . . . . . . . . . Line: 13 @@ -1980,7 +2042,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Scalar_String { -. . . . . . . . . . . Roles: Left,Expression,Literal,String +. . . . . . . . . . . Roles: Expression,Left,Literal,String . . . . . . . . . . . TOKEN "i" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 324 @@ -1997,7 +2059,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_String { -. . . . . . . . . . . Roles: Right,Expression,Literal,String +. . . . . . . . . . . Roles: Expression,Literal,Right,String . . . . . . . . . . . TOKEN "d" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 330 @@ -2096,7 +2158,7 @@ File { . . . } . . } . . 9: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 354 . . . . Line: 14 @@ -2112,7 +2174,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Function,Name,Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 354 . . . . . . Line: 14 @@ -2128,7 +2190,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Expression,Literal,String,Function,Name +. . . . . . . Roles: Expression,Literal,String . . . . . . . TOKEN "\id" . . . . . . . StartPosition: { . . . . . . . . Offset: 354 diff --git a/fixtures/inlinehtml.php.native b/fixtures/inlinehtml.php.native index abb5f39..34d877f 100644 --- a/fixtures/inlinehtml.php.native +++ b/fixtures/inlinehtml.php.native @@ -2,55 +2,58 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 7, - "endLine": 2, - "endTokenPos": 1, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 7, + "endLine": 2, + "endTokenPos": 1, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "a", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 14, - "endLine": 5, - "endTokenPos": 5, - "hasLeadingNewline": true, - "startFilePos": 13, - "startLine": 4, - "startTokenPos": 5 + { + "attributes": { + "endFilePos": 14, + "endLine": 5, + "endTokenPos": 5, + "hasLeadingNewline": true, + "startFilePos": 13, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Stmt_InlineHTML", + "value": "B\n" }, - "nodeType": "Stmt_InlineHTML", - "value": "B\n" - }, - { - "attributes": { - "endFilePos": 22, - "endLine": 6, - "endTokenPos": 7, - "startFilePos": 21, - "startLine": 6, - "startTokenPos": 7 + { + "attributes": { + "endFilePos": 22, + "endLine": 6, + "endTokenPos": 7, + "startFilePos": 21, + "startLine": 6, + "startTokenPos": 7 + }, + "name": "c", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 35, - "endLine": 9, - "endTokenPos": 12, - "startFilePos": 34, - "startLine": 9, - "startTokenPos": 12 - }, - "name": "d", - "nodeType": "Expr_Variable" - } - ] + { + "attributes": { + "endFilePos": 35, + "endLine": 9, + "endTokenPos": 12, + "startFilePos": 34, + "startLine": 9, + "startTokenPos": 12 + }, + "name": "d", + "nodeType": "Expr_Variable" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/inlinehtml.php.uast b/fixtures/inlinehtml.php.uast index c9c4a23..e65d3ae 100644 --- a/fixtures/inlinehtml.php.uast +++ b/fixtures/inlinehtml.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Variable { . . . Roles: Identifier,Variable -. . . TOKEN "a" . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -21,9 +20,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "a" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 1: Stmt_InlineHTML { -. . . Roles: String,Literal,Incomplete +. . . Roles: Incomplete,Literal,String . . . TOKEN "B " . . . StartPosition: { @@ -42,7 +50,6 @@ File { . . } . . 2: Expr_Variable { . . . Roles: Identifier,Variable -. . . TOKEN "c" . . . StartPosition: { . . . . Offset: 21 . . . . Line: 6 @@ -56,10 +63,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "c" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 3: Expr_Variable { . . . Roles: Identifier,Variable -. . . TOKEN "d" . . . StartPosition: { . . . . Offset: 34 . . . . Line: 9 @@ -73,6 +88,15 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "d" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/instanceof.php.native b/fixtures/instanceof.php.native index 7d85627..5b6ac99 100644 --- a/fixtures/instanceof.php.native +++ b/fixtures/instanceof.php.native @@ -2,41 +2,44 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 22, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "class": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 22, "endLine": 3, "endTokenPos": 6, - "startFilePos": 21, - "startLine": 3, - "startTokenPos": 6 - }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "expr": { - "attributes": { - "endFilePos": 8, - "endLine": 3, - "endTokenPos": 2, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Instanceof" - } - ] + "class": { + "attributes": { + "endFilePos": 22, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 21, + "startLine": 3, + "startTokenPos": 6 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "expr": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Instanceof" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/instanceof.php.uast b/fixtures/instanceof.php.uast index c8ff463..f83405e 100644 --- a/fixtures/instanceof.php.uast +++ b/fixtures/instanceof.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Instanceof { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . TOKEN "instanceof" . . . StartPosition: { . . . . Offset: 7 @@ -23,8 +23,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Argument -. . . . . TOKEN "a" +. . . . . Roles: Argument,Call,Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -38,10 +37,18 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Argument,Type -. . . . . TOKEN "b" +. . . . . Roles: Argument,Call,Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 3 @@ -55,6 +62,15 @@ File { . . . . . Properties: { . . . . . . internalRole: class . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/interface.php.native b/fixtures/interface.php.native index bad02bd..67c76e4 100644 --- a/fixtures/interface.php.native +++ b/fixtures/interface.php.native @@ -2,68 +2,71 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 59, - "endLine": 5, - "endTokenPos": 24, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "extends": [ - { - "attributes": { - "endFilePos": 27, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 8 - }, - "nodeType": "Name", - "parts": [ - "C" - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 59, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - { - "attributes": { - "endFilePos": 30, - "endLine": 3, - "endTokenPos": 11, - "startFilePos": 30, - "startLine": 3, - "startTokenPos": 11 - }, - "nodeType": "Name", - "parts": [ - "D" - ] - } - ], - "name": "A", - "nodeType": "Stmt_Interface", - "stmts": [ - { - "attributes": { - "endFilePos": 57, - "endLine": 4, - "endTokenPos": 22, - "startFilePos": 38, - "startLine": 4, - "startTokenPos": 15 + "extends": [ + { + "attributes": { + "endFilePos": 27, + "endLine": 3, + "endTokenPos": 8, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 8 + }, + "nodeType": "Name", + "parts": [ + "C" + ] }, - "byRef": false, - "flags": 1, - "name": "a", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": null, - "type": 1 - } - ] - } - ] + { + "attributes": { + "endFilePos": 30, + "endLine": 3, + "endTokenPos": 11, + "startFilePos": 30, + "startLine": 3, + "startTokenPos": 11 + }, + "nodeType": "Name", + "parts": [ + "D" + ] + } + ], + "name": "A", + "nodeType": "Stmt_Interface", + "stmts": [ + { + "attributes": { + "endFilePos": 57, + "endLine": 4, + "endTokenPos": 22, + "startFilePos": 38, + "startLine": 4, + "startTokenPos": 15 + }, + "byRef": false, + "flags": 1, + "name": "a", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": null, + "type": 1 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/interface.php.uast b/fixtures/interface.php.uast index 517d745..b61de6f 100644 --- a/fixtures/interface.php.uast +++ b/fixtures/interface.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "A" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +22,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Base,Type +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "C" . . . . . StartPosition: { . . . . . . Offset: 27 @@ -39,8 +45,8 @@ File { . . . . . . internalRole: extends . . . . . } . . . . } -. . . . 1: Name { -. . . . . Roles: Expression,Identifier,Base,Type +. . . . 2: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "D" . . . . . StartPosition: { . . . . . . Offset: 30 @@ -56,9 +62,8 @@ File { . . . . . . internalRole: extends . . . . . } . . . . } -. . . . 2: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "a" +. . . . 3: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 38 . . . . . . Line: 4 @@ -75,6 +80,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/isset.php.native b/fixtures/isset.php.native index 075527e..27ad39b 100644 --- a/fixtures/isset.php.native +++ b/fixtures/isset.php.native @@ -2,248 +2,251 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 29, - "endLine": 3, - "endTokenPos": 20, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 28, - "endLine": 3, - "endTokenPos": 19, - "startFilePos": 13, - "startLine": 3, - "startTokenPos": 4 - }, - "dim": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 29, + "endLine": 3, + "endTokenPos": 20, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Expr_Isset", + "vars": [ + { "attributes": { - "endFilePos": 27, + "endFilePos": 28, "endLine": 3, - "endTokenPos": 18, - "kind": 10, - "startFilePos": 27, + "endTokenPos": 19, + "startFilePos": 13, "startLine": 3, - "startTokenPos": 18 + "startTokenPos": 4 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 14, - "startLine": 3, - "startTokenPos": 5 + "dim": { + "attributes": { + "endFilePos": 27, + "endLine": 3, + "endTokenPos": 18, + "kind": 10, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 18 + }, + "nodeType": "Scalar_LNumber", + "value": 0 }, - "left": { + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 19, + "endFilePos": 24, "endLine": 3, - "endTokenPos": 10, - "kind": 2, + "endTokenPos": 15, "startFilePos": 14, "startLine": 3, "startTokenPos": 5 }, - "items": [ - { - "attributes": { - "endFilePos": 15, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 15, - "startLine": 3, - "startTokenPos": 6 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "left": { + "attributes": { + "endFilePos": 19, + "endLine": 3, + "endTokenPos": 10, + "kind": 2, + "startFilePos": 14, + "startLine": 3, + "startTokenPos": 5 + }, + "items": [ + { "attributes": { "endFilePos": 15, "endLine": 3, "endTokenPos": 6, - "kind": 10, "startFilePos": 15, "startLine": 3, "startTokenPos": 6 }, - "nodeType": "Scalar_LNumber", - "value": 0 - } - }, - { - "attributes": { - "endFilePos": 18, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 18, - "startLine": 3, - "startTokenPos": 9 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 15, + "endLine": 3, + "endTokenPos": 6, + "kind": 10, + "startFilePos": 15, + "startLine": 3, + "startTokenPos": 6 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 18, "endLine": 3, "endTokenPos": 9, - "kind": 10, "startFilePos": 18, "startLine": 3, "startTokenPos": 9 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 18, + "endLine": 3, + "endTokenPos": 9, + "kind": 10, + "startFilePos": 18, + "startLine": 3, + "startTokenPos": 9 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } - } - ], - "nodeType": "Expr_Array" - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 15, - "kind": 2, - "startFilePos": 23, - "startLine": 3, - "startTokenPos": 14 + ], + "nodeType": "Expr_Array" }, - "items": [], - "nodeType": "Expr_Array" + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 15, + "kind": 2, + "startFilePos": 23, + "startLine": 3, + "startTokenPos": 14 + }, + "items": [], + "nodeType": "Expr_Array" + } } } - } - ] - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 4, - "endTokenPos": 34, - "startFilePos": 32, - "startLine": 4, - "startTokenPos": 23 + ] }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 4, - "endTokenPos": 33, - "startFilePos": 38, - "startLine": 4, - "startTokenPos": 25 - }, - "name": "a", - "nodeType": "Expr_PropertyFetch", - "var": { + { + "attributes": { + "endFilePos": 53, + "endLine": 4, + "endTokenPos": 34, + "startFilePos": 32, + "startLine": 4, + "startTokenPos": 23 + }, + "nodeType": "Expr_Isset", + "vars": [ + { "attributes": { - "endFilePos": 49, + "endFilePos": 52, "endLine": 4, - "endTokenPos": 31, - "kind": 2, + "endTokenPos": 33, "startFilePos": 38, "startLine": 4, "startTokenPos": 25 }, - "items": [ - { - "attributes": { - "endFilePos": 48, - "endLine": 4, - "endTokenPos": 30, - "startFilePos": 39, - "startLine": 4, - "startTokenPos": 26 - }, - "byRef": false, - "key": { + "name": "a", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 49, + "endLine": 4, + "endTokenPos": 31, + "kind": 2, + "startFilePos": 38, + "startLine": 4, + "startTokenPos": 25 + }, + "items": [ + { "attributes": { - "endFilePos": 41, + "endFilePos": 48, "endLine": 4, - "endTokenPos": 26, - "kind": 1, + "endTokenPos": 30, "startFilePos": 39, "startLine": 4, "startTokenPos": 26 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 48, - "endLine": 4, - "endTokenPos": 30, - "kind": 1, - "startFilePos": 46, - "startLine": 4, - "startTokenPos": 30 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 41, + "endLine": 4, + "endTokenPos": 26, + "kind": 1, + "startFilePos": 39, + "startLine": 4, + "startTokenPos": 26 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 48, + "endLine": 4, + "endTokenPos": 30, + "kind": 1, + "startFilePos": 46, + "startLine": 4, + "startTokenPos": 30 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 70, - "endLine": 5, - "endTokenPos": 42, - "startFilePos": 56, - "startLine": 5, - "startTokenPos": 37 + ] }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 69, - "endLine": 5, - "endTokenPos": 41, - "startFilePos": 62, - "startLine": 5, - "startTokenPos": 39 - }, - "name": "a", - "nodeType": "Expr_PropertyFetch", - "var": { + { + "attributes": { + "endFilePos": 70, + "endLine": 5, + "endTokenPos": 42, + "startFilePos": 56, + "startLine": 5, + "startTokenPos": 37 + }, + "nodeType": "Expr_Isset", + "vars": [ + { "attributes": { - "endFilePos": 66, + "endFilePos": 69, "endLine": 5, - "endTokenPos": 39, - "kind": 2, + "endTokenPos": 41, "startFilePos": 62, "startLine": 5, "startTokenPos": 39 }, - "nodeType": "Scalar_String", - "value": "str" + "name": "a", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 66, + "endLine": 5, + "endTokenPos": 39, + "kind": 2, + "startFilePos": 62, + "startLine": 5, + "startTokenPos": 39 + }, + "nodeType": "Scalar_String", + "value": "str" + } } - } - ] - } - ] + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/isset.php.uast b/fixtures/isset.php.uast index f2f926e..e22bd72 100644 --- a/fixtures/isset.php.uast +++ b/fixtures/isset.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Isset { -. . . Roles: Expression,Call -. . . TOKEN "isset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 3 @@ -39,7 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_BinaryOp_Plus { -. . . . . . . Roles: Expression,Operator,Add +. . . . . . . Roles: Add,Expression,Operator . . . . . . . StartPosition: { . . . . . . . . Offset: 14 . . . . . . . . Line: 3 @@ -55,7 +54,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List,Left +. . . . . . . . . Roles: Expression,Left,List,Literal . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 14 . . . . . . . . . . Line: 3 @@ -71,7 +70,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 15 . . . . . . . . . . . . Line: 3 @@ -107,7 +106,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 18 . . . . . . . . . . . . Line: 3 @@ -145,7 +144,7 @@ File { . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_Array { -. . . . . . . . . Roles: Expression,Literal,List,Right +. . . . . . . . . Roles: Expression,List,Literal,Right . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 23 . . . . . . . . . . Line: 3 @@ -184,8 +183,7 @@ File { . . . } . . } . . 1: Expr_Isset { -. . . Roles: Expression,Call -. . . TOKEN "isset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 32 . . . . Line: 4 @@ -201,8 +199,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . TOKEN "a" +. . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . StartPosition: { . . . . . . Offset: 38 . . . . . . Line: 4 @@ -217,8 +214,15 @@ File { . . . . . . internalRole: vars . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Array { -. . . . . . . Roles: Expression,Literal,List +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Array { +. . . . . . . Roles: Expression,List,Literal . . . . . . . StartPosition: { . . . . . . . . Offset: 38 . . . . . . . . Line: 4 @@ -234,7 +238,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 39 . . . . . . . . . . Line: 4 @@ -293,8 +297,7 @@ File { . . . } . . } . . 2: Expr_Isset { -. . . Roles: Expression,Call -. . . TOKEN "isset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 56 . . . . Line: 5 @@ -310,8 +313,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . TOKEN "a" +. . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . StartPosition: { . . . . . . Offset: 62 . . . . . . Line: 5 @@ -326,7 +328,14 @@ File { . . . . . . internalRole: vars . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_String { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String . . . . . . . TOKEN "str" . . . . . . . StartPosition: { diff --git a/fixtures/isset_and_empty.php.native b/fixtures/isset_and_empty.php.native index 970817e..14bf03d 100644 --- a/fixtures/isset_and_empty.php.native +++ b/fixtures/isset_and_empty.php.native @@ -2,243 +2,246 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 14, - "endLine": 2, - "endTokenPos": 4, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 12, - "startLine": 2, - "startTokenPos": 3 - }, - "name": "a", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 33, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 17, - "startLine": 3, - "startTokenPos": 7 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 14, + "endLine": 2, + "endTokenPos": 4, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "nodeType": "Expr_Isset", + "vars": [ + { + "attributes": { + "endFilePos": 13, + "endLine": 2, + "endTokenPos": 3, + "startFilePos": 12, + "startLine": 2, + "startTokenPos": 3 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + ] }, - "nodeType": "Expr_Isset", - "vars": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 23, - "startLine": 3, - "startTokenPos": 9 - }, - "name": "a", - "nodeType": "Expr_Variable" + { + "attributes": { + "endFilePos": 33, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 7 }, - { - "attributes": { - "endFilePos": 28, - "endLine": 3, - "endTokenPos": 12, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 12 + "nodeType": "Expr_Isset", + "vars": [ + { + "attributes": { + "endFilePos": 24, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 23, + "startLine": 3, + "startTokenPos": 9 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 32, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 31, - "startLine": 3, - "startTokenPos": 15 + { + "attributes": { + "endFilePos": 28, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 12 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 45, - "endLine": 5, - "endTokenPos": 22, - "startFilePos": 37, - "startLine": 5, - "startTokenPos": 19 + { + "attributes": { + "endFilePos": 32, + "endLine": 3, + "endTokenPos": 15, + "startFilePos": 31, + "startLine": 3, + "startTokenPos": 15 + }, + "name": "c", + "nodeType": "Expr_Variable" + } + ] }, - "expr": { + { "attributes": { - "endFilePos": 44, + "endFilePos": 45, "endLine": 5, - "endTokenPos": 21, - "startFilePos": 43, + "endTokenPos": 22, + "startFilePos": 37, "startLine": 5, - "startTokenPos": 21 + "startTokenPos": 19 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Empty" - }, - { - "attributes": { - "endFilePos": 59, - "endLine": 6, - "endTokenPos": 30, - "startFilePos": 48, - "startLine": 6, - "startTokenPos": 25 + "expr": { + "attributes": { + "endFilePos": 44, + "endLine": 5, + "endTokenPos": 21, + "startFilePos": 43, + "startLine": 5, + "startTokenPos": 21 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Empty" }, - "expr": { - "args": [], + { "attributes": { - "endFilePos": 58, + "endFilePos": 59, "endLine": 6, - "endTokenPos": 29, - "startFilePos": 54, + "endTokenPos": 30, + "startFilePos": 48, "startLine": 6, - "startTokenPos": 27 + "startTokenPos": 25 }, - "name": { + "expr": { + "args": [], "attributes": { - "endFilePos": 56, + "endFilePos": 58, "endLine": 6, - "endTokenPos": 27, + "endTokenPos": 29, "startFilePos": 54, "startLine": 6, "startTokenPos": 27 }, - "nodeType": "Name", - "parts": [ - "foo" - ] + "name": { + "attributes": { + "endFilePos": 56, + "endLine": 6, + "endTokenPos": 27, + "startFilePos": 54, + "startLine": 6, + "startTokenPos": 27 + }, + "nodeType": "Name", + "parts": [ + "foo" + ] + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" + "nodeType": "Expr_Empty" }, - "nodeType": "Expr_Empty" - }, - { - "attributes": { - "endFilePos": 82, - "endLine": 7, - "endTokenPos": 45, - "startFilePos": 62, - "startLine": 7, - "startTokenPos": 33 - }, - "expr": { + { "attributes": { - "endFilePos": 81, + "endFilePos": 82, "endLine": 7, - "endTokenPos": 44, - "kind": 1, - "startFilePos": 68, + "endTokenPos": 45, + "startFilePos": 62, "startLine": 7, - "startTokenPos": 35 + "startTokenPos": 33 }, - "items": [ - { - "attributes": { - "endFilePos": 74, - "endLine": 7, - "endTokenPos": 37, - "startFilePos": 74, - "startLine": 7, - "startTokenPos": 37 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "expr": { + "attributes": { + "endFilePos": 81, + "endLine": 7, + "endTokenPos": 44, + "kind": 1, + "startFilePos": 68, + "startLine": 7, + "startTokenPos": 35 + }, + "items": [ + { "attributes": { "endFilePos": 74, "endLine": 7, "endTokenPos": 37, - "kind": 10, "startFilePos": 74, "startLine": 7, "startTokenPos": 37 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 77, - "endLine": 7, - "endTokenPos": 40, - "startFilePos": 77, - "startLine": 7, - "startTokenPos": 40 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 74, + "endLine": 7, + "endTokenPos": 37, + "kind": 10, + "startFilePos": 74, + "startLine": 7, + "startTokenPos": 37 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 77, "endLine": 7, "endTokenPos": 40, - "kind": 10, "startFilePos": 77, "startLine": 7, "startTokenPos": 40 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 80, - "endLine": 7, - "endTokenPos": 43, - "startFilePos": 80, - "startLine": 7, - "startTokenPos": 43 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 77, + "endLine": 7, + "endTokenPos": 40, + "kind": 10, + "startFilePos": 77, + "startLine": 7, + "startTokenPos": 40 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 80, "endLine": 7, "endTokenPos": 43, - "kind": 10, "startFilePos": 80, "startLine": 7, "startTokenPos": 43 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 80, + "endLine": 7, + "endTokenPos": 43, + "kind": 10, + "startFilePos": 80, + "startLine": 7, + "startTokenPos": 43 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" - }, - "nodeType": "Expr_Empty" - } - ] + ], + "nodeType": "Expr_Array" + }, + "nodeType": "Expr_Empty" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/isset_and_empty.php.uast b/fixtures/isset_and_empty.php.uast index ee9cafe..6d05ffa 100644 --- a/fixtures/isset_and_empty.php.uast +++ b/fixtures/isset_and_empty.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Isset { -. . . Roles: Expression,Call -. . . TOKEN "isset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 2 @@ -38,12 +36,20 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_Isset { -. . . Roles: Expression,Call -. . . TOKEN "isset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 17 . . . . Line: 3 @@ -60,7 +66,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 3 @@ -74,10 +79,18 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -91,10 +104,18 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "c" . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 3 @@ -108,12 +129,20 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_Empty { -. . . Roles: Expression,Call -. . . TOKEN "empty" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 37 . . . . Line: 5 @@ -130,7 +159,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 43 . . . . . . Line: 5 @@ -144,12 +172,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_Empty { -. . . Roles: Expression,Call -. . . TOKEN "empty" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 48 . . . . Line: 6 @@ -165,7 +201,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 54 . . . . . . Line: 6 @@ -181,7 +217,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "foo" . . . . . . . StartPosition: { . . . . . . . . Offset: 54 @@ -202,8 +238,7 @@ File { . . . } . . } . . 4: Expr_Empty { -. . . Roles: Expression,Call -. . . TOKEN "empty" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 62 . . . . Line: 7 @@ -219,7 +254,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Array { -. . . . . Roles: Expression,Literal,List +. . . . . Roles: Expression,List,Literal . . . . . StartPosition: { . . . . . . Offset: 68 . . . . . . Line: 7 @@ -235,7 +270,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 74 . . . . . . . . Line: 7 @@ -271,7 +306,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 77 . . . . . . . . Line: 7 @@ -307,7 +342,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 80 . . . . . . . . Line: 7 diff --git a/fixtures/list_withkeys.php.native b/fixtures/list_withkeys.php.native index 615671e..a7b86df 100644 --- a/fixtures/list_withkeys.php.native +++ b/fixtures/list_withkeys.php.native @@ -2,312 +2,301 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 3, - "endTokenPos": 19, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 36, "endLine": 3, "endTokenPos": 19, - "kind": 2, - "startFilePos": 25, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 13 + "startTokenPos": 2 }, - "items": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 3, - "endTokenPos": 18, - "startFilePos": 26, - "startLine": 3, - "startTokenPos": 14 - }, - "byRef": false, - "key": { + "expr": { + "attributes": { + "endFilePos": 36, + "endLine": 3, + "endTokenPos": 19, + "kind": 2, + "startFilePos": 25, + "startLine": 3, + "startTokenPos": 13 + }, + "items": [ + { "attributes": { - "endFilePos": 28, + "endFilePos": 35, "endLine": 3, - "endTokenPos": 14, - "kind": 1, + "endTokenPos": 18, "startFilePos": 26, "startLine": 3, "startTokenPos": 14 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 35, - "endLine": 3, - "endTokenPos": 18, - "kind": 1, - "startFilePos": 33, - "startLine": 3, - "startTokenPos": 18 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 28, + "endLine": 3, + "endTokenPos": 14, + "kind": 1, + "startFilePos": 26, + "startLine": 3, + "startTokenPos": 14 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "nodeType": "Scalar_String", - "value": "b" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 35, + "endLine": 3, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 33, + "startLine": 3, + "startTokenPos": 18 + }, + "nodeType": "Scalar_String", + "value": "b" + } } - } - ], - "nodeType": "Expr_Array" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 21, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + ], + "nodeType": "Expr_Array" }, - "items": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 4 - }, - "byRef": false, - "key": { + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 21, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "items": [ + { "attributes": { - "endFilePos": 14, + "endFilePos": 20, "endLine": 3, - "endTokenPos": 4, - "kind": 1, + "endTokenPos": 8, "startFilePos": 12, "startLine": 3, "startTokenPos": 4 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 20, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 19, - "startLine": 3, - "startTokenPos": 8 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 4, + "kind": 1, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 4 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "name": "b", - "nodeType": "Expr_Variable" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 20, + "endLine": 3, + "endTokenPos": 8, + "startFilePos": 19, + "startLine": 3, + "startTokenPos": 8 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_List" - } - }, - { - "attributes": { - "endFilePos": 81, - "endLine": 4, - "endTokenPos": 47, - "startFilePos": 39, - "startLine": 4, - "startTokenPos": 22 + ], + "nodeType": "Expr_List" + } }, - "expr": { + { "attributes": { "endFilePos": 81, "endLine": 4, "endTokenPos": 47, - "startFilePos": 80, - "startLine": 4, - "startTokenPos": 47 - }, - "name": "x", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 76, - "endLine": 4, - "endTokenPos": 43, "startFilePos": 39, "startLine": 4, "startTokenPos": 22 }, - "items": [ - { - "attributes": { - "endFilePos": 64, - "endLine": 4, - "endTokenPos": 35, - "startFilePos": 44, - "startLine": 4, - "startTokenPos": 24 - }, - "byRef": false, - "key": { + "expr": { + "attributes": { + "endFilePos": 81, + "endLine": 4, + "endTokenPos": 47, + "startFilePos": 80, + "startLine": 4, + "startTokenPos": 47 + }, + "name": "x", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 76, + "endLine": 4, + "endTokenPos": 43, + "startFilePos": 39, + "startLine": 4, + "startTokenPos": 22 + }, + "items": [ + { "attributes": { - "endFilePos": 46, + "endFilePos": 64, "endLine": 4, - "endTokenPos": 24, - "kind": 1, + "endTokenPos": 35, "startFilePos": 44, "startLine": 4, "startTokenPos": 24 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 64, - "endLine": 4, - "endTokenPos": 35, - "startFilePos": 51, - "startLine": 4, - "startTokenPos": 28 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 46, + "endLine": 4, + "endTokenPos": 24, + "kind": 1, + "startFilePos": 44, + "startLine": 4, + "startTokenPos": 24 + }, + "nodeType": "Scalar_String", + "value": "a" }, - "items": [ - { - "attributes": { - "endFilePos": 63, - "endLine": 4, - "endTokenPos": 34, - "startFilePos": 56, - "startLine": 4, - "startTokenPos": 30 - }, - "byRef": false, - "key": { + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 64, + "endLine": 4, + "endTokenPos": 35, + "startFilePos": 51, + "startLine": 4, + "startTokenPos": 28 + }, + "items": [ + { "attributes": { - "endFilePos": 57, + "endFilePos": 63, "endLine": 4, - "endTokenPos": 30, + "endTokenPos": 34, "startFilePos": 56, "startLine": 4, "startTokenPos": 30 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 63, - "endLine": 4, - "endTokenPos": 34, - "startFilePos": 62, - "startLine": 4, - "startTokenPos": 34 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 57, + "endLine": 4, + "endTokenPos": 30, + "startFilePos": 56, + "startLine": 4, + "startTokenPos": 30 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 63, + "endLine": 4, + "endTokenPos": 34, + "startFilePos": 62, + "startLine": 4, + "startTokenPos": 34 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_List" - } - }, - { - "attributes": { - "endFilePos": 75, - "endLine": 4, - "endTokenPos": 42, - "startFilePos": 67, - "startLine": 4, - "startTokenPos": 38 + ], + "nodeType": "Expr_List" + } }, - "byRef": false, - "key": { + { "attributes": { - "endFilePos": 69, + "endFilePos": 75, "endLine": 4, - "endTokenPos": 38, - "kind": 1, + "endTokenPos": 42, "startFilePos": 67, "startLine": 4, "startTokenPos": 38 }, - "nodeType": "Scalar_String", - "value": "d" - }, - "nodeType": "Expr_ArrayItem", - "value": { - "attributes": { - "endFilePos": 75, - "endLine": 4, - "endTokenPos": 42, - "startFilePos": 74, - "startLine": 4, - "startTokenPos": 42 + "byRef": false, + "key": { + "attributes": { + "endFilePos": 69, + "endLine": 4, + "endTokenPos": 38, + "kind": 1, + "startFilePos": 67, + "startLine": 4, + "startTokenPos": 38 + }, + "nodeType": "Scalar_String", + "value": "d" }, - "name": "e", - "nodeType": "Expr_Variable" + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 75, + "endLine": 4, + "endTokenPos": 42, + "startFilePos": 74, + "startLine": 4, + "startTokenPos": 42 + }, + "name": "e", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_List" - } - }, - { - "attributes": { - "endFilePos": 100, - "endLine": 5, - "endTokenPos": 60, - "startFilePos": 84, - "startLine": 5, - "startTokenPos": 50 + ], + "nodeType": "Expr_List" + } }, - "expr": { + { "attributes": { "endFilePos": 100, "endLine": 5, "endTokenPos": 60, - "startFilePos": 99, - "startLine": 5, - "startTokenPos": 60 - }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 95, - "endLine": 5, - "endTokenPos": 56, "startFilePos": 84, "startLine": 5, "startTokenPos": 50 }, - "items": [ - { - "attributes": { - "endFilePos": 90, - "endLine": 5, - "endTokenPos": 52, - "startFilePos": 89, - "startLine": 5, - "startTokenPos": 52 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "expr": { + "attributes": { + "endFilePos": 100, + "endLine": 5, + "endTokenPos": 60, + "startFilePos": 99, + "startLine": 5, + "startTokenPos": 60 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 95, + "endLine": 5, + "endTokenPos": 56, + "startFilePos": 84, + "startLine": 5, + "startTokenPos": 50 + }, + "items": [ + { "attributes": { "endFilePos": 90, "endLine": 5, @@ -316,23 +305,23 @@ "startLine": 5, "startTokenPos": 52 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 94, - "endLine": 5, - "endTokenPos": 55, - "startFilePos": 93, - "startLine": 5, - "startTokenPos": 55 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 90, + "endLine": 5, + "endTokenPos": 52, + "startFilePos": 89, + "startLine": 5, + "startTokenPos": 52 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 94, "endLine": 5, @@ -341,13 +330,27 @@ "startLine": 5, "startTokenPos": 55 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 94, + "endLine": 5, + "endTokenPos": 55, + "startFilePos": 93, + "startLine": 5, + "startTokenPos": 55 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "nodeType": "Expr_List" + ], + "nodeType": "Expr_List" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/list_withkeys.php.uast b/fixtures/list_withkeys.php.uast index 13e32a1..a920ab4 100644 --- a/fixtures/list_withkeys.php.uast +++ b/fixtures/list_withkeys.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_List { -. . . . . Roles: Left,Call,List -. . . . . TOKEN "list" +. . . . . Roles: Call,Left,List . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -39,7 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 12 . . . . . . . . Line: 3 @@ -74,7 +73,6 @@ File { . . . . . . . . } . . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 19 . . . . . . . . . . Line: 3 @@ -88,13 +86,22 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Array { -. . . . . Roles: Expression,Literal,List,Right +. . . . . Roles: Expression,List,Literal,Right . . . . . StartPosition: { . . . . . . Offset: 25 . . . . . . Line: 3 @@ -110,7 +117,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 26 . . . . . . . . Line: 3 @@ -167,7 +174,7 @@ File { . . . } . . } . . 1: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 39 . . . . Line: 4 @@ -183,8 +190,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_List { -. . . . . Roles: Left,Call,List -. . . . . TOKEN "list" +. . . . . Roles: Call,Left,List . . . . . StartPosition: { . . . . . . Offset: 39 . . . . . . Line: 4 @@ -200,7 +206,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 44 . . . . . . . . Line: 4 @@ -235,7 +241,6 @@ File { . . . . . . . . } . . . . . . . . 1: Expr_List { . . . . . . . . . Roles: Call,List -. . . . . . . . . TOKEN "list" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 51 . . . . . . . . . . Line: 4 @@ -251,7 +256,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 56 . . . . . . . . . . . . Line: 4 @@ -269,7 +274,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "b" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 56 . . . . . . . . . . . . . . Line: 4 @@ -283,10 +287,18 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: key . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "c" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 62 . . . . . . . . . . . . . . Line: 4 @@ -300,6 +312,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } @@ -308,7 +329,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 67 . . . . . . . . Line: 4 @@ -343,7 +364,6 @@ File { . . . . . . . . } . . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "e" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 74 . . . . . . . . . . Line: 4 @@ -357,14 +377,22 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "e" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "x" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 80 . . . . . . Line: 4 @@ -378,11 +406,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "x" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 84 . . . . Line: 5 @@ -398,8 +435,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_List { -. . . . . Roles: Left,Call,List -. . . . . TOKEN "list" +. . . . . Roles: Call,Left,List . . . . . StartPosition: { . . . . . . Offset: 84 . . . . . . Line: 5 @@ -415,7 +451,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 89 . . . . . . . . Line: 5 @@ -433,7 +469,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 89 . . . . . . . . . . Line: 5 @@ -447,11 +482,20 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 1: Expr_ArrayItem { -. . . . . . . Roles: Expression,List,Entry +. . . . . . . Roles: Entry,Expression,List . . . . . . . StartPosition: { . . . . . . . . Offset: 93 . . . . . . . . Line: 5 @@ -469,7 +513,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 93 . . . . . . . . . . Line: 5 @@ -483,14 +526,22 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: value . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 99 . . . . . . Line: 5 @@ -504,6 +555,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/logic.php.native b/fixtures/logic.php.native index c2a7379..494d851 100644 --- a/fixtures/logic.php.native +++ b/fixtures/logic.php.native @@ -2,25 +2,9 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 7, - "line": 3, - "nodeType": "Comment", - "text": "// boolean ops\n" - } - ], - "endFilePos": 29, - "endLine": 4, - "endTokenPos": 7, - "startFilePos": 22, - "startLine": 4, - "startTokenPos": 3 - }, - "left": { + "ast": { + "children": [ + { "attributes": { "comments": [ { @@ -30,140 +14,140 @@ "text": "// boolean ops\n" } ], - "endFilePos": 23, + "endFilePos": 29, "endLine": 4, - "endTokenPos": 3, + "endTokenPos": 7, "startFilePos": 22, "startLine": 4, "startTokenPos": 3 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { - "attributes": { - "endFilePos": 29, - "endLine": 4, - "endTokenPos": 7, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 7 + "left": { + "attributes": { + "comments": [ + { + "filePos": 7, + "line": 3, + "nodeType": "Comment", + "text": "// boolean ops\n" + } + ], + "endFilePos": 23, + "endLine": 4, + "endTokenPos": 3, + "startFilePos": 22, + "startLine": 4, + "startTokenPos": 3 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 39, - "endLine": 5, - "endTokenPos": 14, - "startFilePos": 32, - "startLine": 5, - "startTokenPos": 10 + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 29, + "endLine": 4, + "endTokenPos": 7, + "startFilePos": 28, + "startLine": 4, + "startTokenPos": 7 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 33, + "endFilePos": 39, "endLine": 5, - "endTokenPos": 10, + "endTokenPos": 14, "startFilePos": 32, "startLine": 5, "startTokenPos": 10 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BooleanOr", - "right": { - "attributes": { - "endFilePos": 39, - "endLine": 5, - "endTokenPos": 14, - "startFilePos": 38, - "startLine": 5, - "startTokenPos": 14 + "left": { + "attributes": { + "endFilePos": 33, + "endLine": 5, + "endTokenPos": 10, + "startFilePos": 32, + "startLine": 5, + "startTokenPos": 10 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 6, - "endTokenPos": 18, - "startFilePos": 42, - "startLine": 6, - "startTokenPos": 17 + "nodeType": "Expr_BinaryOp_BooleanOr", + "right": { + "attributes": { + "endFilePos": 39, + "endLine": 5, + "endTokenPos": 14, + "startFilePos": 38, + "startLine": 5, + "startTokenPos": 14 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 44, "endLine": 6, "endTokenPos": 18, - "startFilePos": 43, + "startFilePos": 42, "startLine": 6, - "startTokenPos": 18 + "startTokenPos": 17 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BooleanNot" - }, - { - "attributes": { - "endFilePos": 50, - "endLine": 7, - "endTokenPos": 23, - "startFilePos": 47, - "startLine": 7, - "startTokenPos": 21 + "expr": { + "attributes": { + "endFilePos": 44, + "endLine": 6, + "endTokenPos": 18, + "startFilePos": 43, + "startLine": 6, + "startTokenPos": 18 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BooleanNot" }, - "expr": { + { "attributes": { "endFilePos": 50, "endLine": 7, "endTokenPos": 23, - "startFilePos": 48, + "startFilePos": 47, "startLine": 7, - "startTokenPos": 22 + "startTokenPos": 21 }, "expr": { "attributes": { "endFilePos": 50, "endLine": 7, "endTokenPos": 23, - "startFilePos": 49, + "startFilePos": 48, "startLine": 7, - "startTokenPos": 23 + "startTokenPos": 22 }, - "name": "a", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 50, + "endLine": 7, + "endTokenPos": 23, + "startFilePos": 49, + "startLine": 7, + "startTokenPos": 23 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BooleanNot" }, "nodeType": "Expr_BooleanNot" }, - "nodeType": "Expr_BooleanNot" - }, - { - "attributes": { - "comments": [ - { - "filePos": 54, - "line": 9, - "nodeType": "Comment", - "text": "// logical ops\n" - } - ], - "endFilePos": 77, - "endLine": 10, - "endTokenPos": 31, - "startFilePos": 69, - "startLine": 10, - "startTokenPos": 27 - }, - "left": { + { "attributes": { "comments": [ { @@ -173,118 +157,118 @@ "text": "// logical ops\n" } ], - "endFilePos": 70, + "endFilePos": 77, "endLine": 10, - "endTokenPos": 27, + "endTokenPos": 31, "startFilePos": 69, "startLine": 10, "startTokenPos": 27 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_LogicalAnd", - "right": { - "attributes": { - "endFilePos": 77, - "endLine": 10, - "endTokenPos": 31, - "startFilePos": 76, - "startLine": 10, - "startTokenPos": 31 + "left": { + "attributes": { + "comments": [ + { + "filePos": 54, + "line": 9, + "nodeType": "Comment", + "text": "// logical ops\n" + } + ], + "endFilePos": 70, + "endLine": 10, + "endTokenPos": 27, + "startFilePos": 69, + "startLine": 10, + "startTokenPos": 27 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 87, - "endLine": 11, - "endTokenPos": 38, - "startFilePos": 80, - "startLine": 11, - "startTokenPos": 34 + "nodeType": "Expr_BinaryOp_LogicalAnd", + "right": { + "attributes": { + "endFilePos": 77, + "endLine": 10, + "endTokenPos": 31, + "startFilePos": 76, + "startLine": 10, + "startTokenPos": 31 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 81, + "endFilePos": 87, "endLine": 11, - "endTokenPos": 34, + "endTokenPos": 38, "startFilePos": 80, "startLine": 11, "startTokenPos": 34 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_LogicalOr", - "right": { - "attributes": { - "endFilePos": 87, - "endLine": 11, - "endTokenPos": 38, - "startFilePos": 86, - "startLine": 11, - "startTokenPos": 38 + "left": { + "attributes": { + "endFilePos": 81, + "endLine": 11, + "endTokenPos": 34, + "startFilePos": 80, + "startLine": 11, + "startTokenPos": 34 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 98, - "endLine": 12, - "endTokenPos": 45, - "startFilePos": 90, - "startLine": 12, - "startTokenPos": 41 + "nodeType": "Expr_BinaryOp_LogicalOr", + "right": { + "attributes": { + "endFilePos": 87, + "endLine": 11, + "endTokenPos": 38, + "startFilePos": 86, + "startLine": 11, + "startTokenPos": 38 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 91, + "endFilePos": 98, "endLine": 12, - "endTokenPos": 41, + "endTokenPos": 45, "startFilePos": 90, "startLine": 12, "startTokenPos": 41 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_LogicalXor", - "right": { - "attributes": { - "endFilePos": 98, - "endLine": 12, - "endTokenPos": 45, - "startFilePos": 97, - "startLine": 12, - "startTokenPos": 45 + "left": { + "attributes": { + "endFilePos": 91, + "endLine": 12, + "endTokenPos": 41, + "startFilePos": 90, + "startLine": 12, + "startTokenPos": 41 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "comments": [ - { - "filePos": 102, - "line": 14, - "nodeType": "Comment", - "text": "// precedence\n" - } - ], - "endFilePos": 135, - "endLine": 15, - "endTokenPos": 61, - "startFilePos": 116, - "startLine": 15, - "startTokenPos": 49 + "nodeType": "Expr_BinaryOp_LogicalXor", + "right": { + "attributes": { + "endFilePos": 98, + "endLine": 12, + "endTokenPos": 45, + "startFilePos": 97, + "startLine": 12, + "startTokenPos": 45 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { "comments": [ { @@ -294,9 +278,9 @@ "text": "// precedence\n" } ], - "endFilePos": 123, + "endFilePos": 135, "endLine": 15, - "endTokenPos": 53, + "endTokenPos": 61, "startFilePos": 116, "startLine": 15, "startTokenPos": 49 @@ -311,263 +295,282 @@ "text": "// precedence\n" } ], - "endFilePos": 117, - "endLine": 15, - "endTokenPos": 49, - "startFilePos": 116, - "startLine": 15, - "startTokenPos": 49 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { - "attributes": { "endFilePos": 123, "endLine": 15, "endTokenPos": 53, - "startFilePos": 122, + "startFilePos": 116, "startLine": 15, - "startTokenPos": 53 + "startTokenPos": 49 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_BinaryOp_BooleanOr", - "right": { - "attributes": { - "endFilePos": 135, - "endLine": 15, - "endTokenPos": 61, - "startFilePos": 128, - "startLine": 15, - "startTokenPos": 57 - }, - "left": { - "attributes": { - "endFilePos": 129, - "endLine": 15, - "endTokenPos": 57, - "startFilePos": 128, - "startLine": 15, - "startTokenPos": 57 + "left": { + "attributes": { + "comments": [ + { + "filePos": 102, + "line": 14, + "nodeType": "Comment", + "text": "// precedence\n" + } + ], + "endFilePos": 117, + "endLine": 15, + "endTokenPos": 49, + "startFilePos": 116, + "startLine": 15, + "startTokenPos": 49 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 123, + "endLine": 15, + "endTokenPos": 53, + "startFilePos": 122, + "startLine": 15, + "startTokenPos": 53 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_BooleanAnd", + "nodeType": "Expr_BinaryOp_BooleanOr", "right": { "attributes": { "endFilePos": 135, "endLine": 15, "endTokenPos": 61, - "startFilePos": 134, + "startFilePos": 128, "startLine": 15, - "startTokenPos": 61 + "startTokenPos": 57 }, - "name": "d", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 129, + "endLine": 15, + "endTokenPos": 57, + "startFilePos": 128, + "startLine": 15, + "startTokenPos": 57 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 135, + "endLine": 15, + "endTokenPos": 61, + "startFilePos": 134, + "startLine": 15, + "startTokenPos": 61 + }, + "name": "d", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 159, - "endLine": 16, - "endTokenPos": 78, - "startFilePos": 138, - "startLine": 16, - "startTokenPos": 64 }, - "left": { + { "attributes": { - "endFilePos": 153, + "endFilePos": 159, "endLine": 16, - "endTokenPos": 74, + "endTokenPos": 78, "startFilePos": 138, "startLine": 16, "startTokenPos": 64 }, "left": { "attributes": { - "endFilePos": 139, + "endFilePos": 153, "endLine": 16, - "endTokenPos": 64, + "endTokenPos": 74, "startFilePos": 138, "startLine": 16, "startTokenPos": 64 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { - "attributes": { - "endFilePos": 152, - "endLine": 16, - "endTokenPos": 73, - "startFilePos": 145, - "startLine": 16, - "startTokenPos": 69 - }, "left": { "attributes": { - "endFilePos": 146, + "endFilePos": 139, "endLine": 16, - "endTokenPos": 69, - "startFilePos": 145, + "endTokenPos": 64, + "startFilePos": 138, "startLine": 16, - "startTokenPos": 69 + "startTokenPos": 64 }, - "name": "b", + "name": "a", "nodeType": "Expr_Variable" }, - "nodeType": "Expr_BinaryOp_BooleanOr", + "nodeType": "Expr_BinaryOp_BooleanAnd", "right": { "attributes": { "endFilePos": 152, "endLine": 16, "endTokenPos": 73, - "startFilePos": 151, + "startFilePos": 145, "startLine": 16, - "startTokenPos": 73 + "startTokenPos": 69 }, - "name": "c", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 146, + "endLine": 16, + "endTokenPos": 69, + "startFilePos": 145, + "startLine": 16, + "startTokenPos": 69 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_BooleanOr", + "right": { + "attributes": { + "endFilePos": 152, + "endLine": 16, + "endTokenPos": 73, + "startFilePos": 151, + "startLine": 16, + "startTokenPos": 73 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_BinaryOp_BooleanAnd", - "right": { - "attributes": { - "endFilePos": 159, - "endLine": 16, - "endTokenPos": 78, - "startFilePos": 158, - "startLine": 16, - "startTokenPos": 78 }, - "name": "d", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 175, - "endLine": 18, - "endTokenPos": 89, - "startFilePos": 163, - "startLine": 18, - "startTokenPos": 81 + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 159, + "endLine": 16, + "endTokenPos": 78, + "startFilePos": 158, + "startLine": 16, + "startTokenPos": 78 + }, + "name": "d", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { "endFilePos": 175, "endLine": 18, "endTokenPos": 89, - "startFilePos": 168, + "startFilePos": 163, "startLine": 18, - "startTokenPos": 85 + "startTokenPos": 81 }, - "left": { + "expr": { "attributes": { - "endFilePos": 169, + "endFilePos": 175, "endLine": 18, - "endTokenPos": 85, + "endTokenPos": 89, "startFilePos": 168, "startLine": 18, "startTokenPos": 85 }, - "name": "b", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 169, + "endLine": 18, + "endTokenPos": 85, + "startFilePos": 168, + "startLine": 18, + "startTokenPos": 85 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_BooleanOr", + "right": { + "attributes": { + "endFilePos": 175, + "endLine": 18, + "endTokenPos": 89, + "startFilePos": 174, + "startLine": 18, + "startTokenPos": 89 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_BooleanOr", - "right": { + "nodeType": "Expr_Assign", + "var": { "attributes": { - "endFilePos": 175, + "endFilePos": 164, "endLine": 18, - "endTokenPos": 89, - "startFilePos": 174, + "endTokenPos": 81, + "startFilePos": 163, "startLine": 18, - "startTokenPos": 89 + "startTokenPos": 81 }, - "name": "c", + "name": "a", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 164, - "endLine": 18, - "endTokenPos": 81, - "startFilePos": 163, - "startLine": 18, - "startTokenPos": 81 - }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 190, - "endLine": 19, - "endTokenPos": 100, - "startFilePos": 178, - "startLine": 19, - "startTokenPos": 92 - }, - "left": { + { "attributes": { - "endFilePos": 184, + "endFilePos": 190, "endLine": 19, - "endTokenPos": 96, + "endTokenPos": 100, "startFilePos": 178, "startLine": 19, "startTokenPos": 92 }, - "expr": { + "left": { "attributes": { "endFilePos": 184, "endLine": 19, "endTokenPos": 96, - "startFilePos": 183, + "startFilePos": 178, "startLine": 19, - "startTokenPos": 96 + "startTokenPos": 92 }, - "name": "b", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 184, + "endLine": 19, + "endTokenPos": 96, + "startFilePos": 183, + "startLine": 19, + "startTokenPos": 96 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 179, + "endLine": 19, + "endTokenPos": 92, + "startFilePos": 178, + "startLine": 19, + "startTokenPos": 92 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_Assign", - "var": { + "nodeType": "Expr_BinaryOp_LogicalOr", + "right": { "attributes": { - "endFilePos": 179, + "endFilePos": 190, "endLine": 19, - "endTokenPos": 92, - "startFilePos": 178, + "endTokenPos": 100, + "startFilePos": 189, "startLine": 19, - "startTokenPos": 92 + "startTokenPos": 100 }, - "name": "a", + "name": "c", "nodeType": "Expr_Variable" } - }, - "nodeType": "Expr_BinaryOp_LogicalOr", - "right": { - "attributes": { - "endFilePos": 190, - "endLine": 19, - "endTokenPos": 100, - "startFilePos": 189, - "startLine": 19, - "startTokenPos": 100 - }, - "name": "c", - "nodeType": "Expr_Variable" } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/logic.php.uast b/fixtures/logic.php.uast index 688d13d..2a9be5f 100644 --- a/fixtures/logic.php.uast +++ b/fixtures/logic.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_BinaryOp_BooleanAnd { -. . . Roles: Expression,Binary,Operator,Boolean,And +. . . Roles: And,Binary,Boolean,Expression,Operator . . . StartPosition: { . . . . Offset: 22 . . . . Line: 4 @@ -22,26 +22,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " boolean ops " . . . . . StartPosition: { -. . . . . . Offset: 7 -. . . . . . Line: 3 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 22 -. . . . . . Line: 4 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 22 . . . . . . Line: 4 @@ -56,29 +50,30 @@ File { . . . . . . internalRole: left . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " boolean ops " . . . . . . . StartPosition: { -. . . . . . . . Offset: 7 -. . . . . . . . Line: 3 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 22 -. . . . . . . . Line: 4 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 28 . . . . . . Line: 4 @@ -92,11 +87,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_BinaryOp_BooleanOr { -. . . Roles: Expression,Binary,Operator,Boolean,Or +. . . Roles: Binary,Boolean,Expression,Operator,Or . . . StartPosition: { . . . . Offset: 32 . . . . Line: 5 @@ -112,8 +116,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 32 . . . . . . Line: 5 @@ -127,10 +130,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 38 . . . . . . Line: 5 @@ -144,11 +155,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_BooleanNot { -. . . Roles: Expression,Operator,Boolean,Not +. . . Roles: Boolean,Expression,Not,Operator . . . StartPosition: { . . . . Offset: 42 . . . . Line: 6 @@ -165,7 +185,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 43 . . . . . . Line: 6 @@ -179,11 +198,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_BooleanNot { -. . . Roles: Expression,Operator,Boolean,Not +. . . Roles: Boolean,Expression,Not,Operator . . . StartPosition: { . . . . Offset: 47 . . . . Line: 7 @@ -199,7 +227,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_BooleanNot { -. . . . . Roles: Expression,Operator,Boolean,Not +. . . . . Roles: Boolean,Expression,Not,Operator . . . . . StartPosition: { . . . . . . Offset: 48 . . . . . . Line: 7 @@ -216,7 +244,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 49 . . . . . . . . Line: 7 @@ -230,13 +257,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: expr . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 4: Expr_BinaryOp_LogicalAnd { -. . . Roles: Expression,Binary,Operator,Boolean,And +. . . Roles: And,Binary,Boolean,Expression,Operator . . . StartPosition: { . . . . Offset: 69 . . . . Line: 10 @@ -252,26 +288,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " logical ops " . . . . . StartPosition: { -. . . . . . Offset: 54 -. . . . . . Line: 9 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 69 -. . . . . . Line: 10 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 69 . . . . . . Line: 10 @@ -286,29 +316,30 @@ File { . . . . . . internalRole: left . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " logical ops " . . . . . . . StartPosition: { -. . . . . . . . Offset: 54 -. . . . . . . . Line: 9 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 69 -. . . . . . . . Line: 10 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 76 . . . . . . Line: 10 @@ -322,11 +353,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Expr_BinaryOp_LogicalOr { -. . . Roles: Expression,Binary,Operator,Boolean,Or +. . . Roles: Binary,Boolean,Expression,Operator,Or . . . StartPosition: { . . . . Offset: 80 . . . . Line: 11 @@ -342,8 +382,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 80 . . . . . . Line: 11 @@ -357,10 +396,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 86 . . . . . . Line: 11 @@ -374,11 +421,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_BinaryOp_LogicalXor { -. . . Roles: Expression,Binary,Operator,Boolean,Xor +. . . Roles: Binary,Boolean,Expression,Operator,Xor . . . StartPosition: { . . . . Offset: 90 . . . . Line: 12 @@ -394,8 +450,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 90 . . . . . . Line: 12 @@ -409,10 +464,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 12 @@ -426,11 +489,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Expr_BinaryOp_BooleanOr { -. . . Roles: Expression,Binary,Operator,Boolean,Or +. . . Roles: Binary,Boolean,Expression,Operator,Or . . . StartPosition: { . . . . Offset: 116 . . . . Line: 15 @@ -446,25 +518,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " precedence " . . . . . StartPosition: { -. . . . . . Offset: 102 -. . . . . . Line: 14 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 116 -. . . . . . Line: 15 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_BinaryOp_BooleanAnd { -. . . . . Roles: Left,Expression,Binary,Operator,Boolean,And +. . . . . Roles: And,Binary,Boolean,Expression,Left,Operator . . . . . StartPosition: { . . . . . . Offset: 116 . . . . . . Line: 15 @@ -480,26 +547,20 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " precedence " . . . . . . . StartPosition: { -. . . . . . . . Offset: 102 -. . . . . . . . Line: 14 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 116 -. . . . . . . . Line: 15 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 116 . . . . . . . . Line: 15 @@ -514,29 +575,30 @@ File { . . . . . . . . internalRole: left . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment { -. . . . . . . . . Roles: Noop,Comment +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment { +. . . . . . . . . Roles: Comment,Noop . . . . . . . . . TOKEN " precedence " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 102 -. . . . . . . . . . Line: 14 -. . . . . . . . . . Col: 1 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 116 -. . . . . . . . . . Line: 15 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 . . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 122 . . . . . . . . Line: 15 @@ -550,11 +612,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_BinaryOp_BooleanAnd { -. . . . . Roles: Right,Expression,Binary,Operator,Boolean,And +. . . . . Roles: And,Binary,Boolean,Expression,Operator,Right . . . . . StartPosition: { . . . . . . Offset: 128 . . . . . . Line: 15 @@ -570,8 +641,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 128 . . . . . . . . Line: 15 @@ -585,10 +655,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "d" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 134 . . . . . . . . Line: 15 @@ -602,13 +680,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "d" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 8: Expr_BinaryOp_BooleanAnd { -. . . Roles: Expression,Binary,Operator,Boolean,And +. . . Roles: And,Binary,Boolean,Expression,Operator . . . StartPosition: { . . . . Offset: 138 . . . . Line: 16 @@ -624,7 +711,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_BinaryOp_BooleanAnd { -. . . . . Roles: Left,Expression,Binary,Operator,Boolean,And +. . . . . Roles: And,Binary,Boolean,Expression,Left,Operator . . . . . StartPosition: { . . . . . . Offset: 138 . . . . . . Line: 16 @@ -640,8 +727,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 138 . . . . . . . . Line: 16 @@ -655,9 +741,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_BinaryOp_BooleanOr { -. . . . . . . Roles: Right,Expression,Binary,Operator,Boolean,Or +. . . . . . . Roles: Binary,Boolean,Expression,Operator,Or,Right . . . . . . . StartPosition: { . . . . . . . . Offset: 145 . . . . . . . . Line: 16 @@ -673,8 +768,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . TOKEN "b" +. . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 145 . . . . . . . . . . Line: 16 @@ -688,10 +782,18 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: left . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable,Right -. . . . . . . . . TOKEN "c" +. . . . . . . . . Roles: Identifier,Right,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 151 . . . . . . . . . . Line: 16 @@ -705,14 +807,22 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: right . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "d" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 158 . . . . . . Line: 16 @@ -726,11 +836,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 9: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 163 . . . . Line: 18 @@ -746,8 +865,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 163 . . . . . . Line: 18 @@ -761,9 +879,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_BinaryOp_BooleanOr { -. . . . . Roles: Right,Expression,Binary,Operator,Boolean,Or +. . . . . Roles: Binary,Boolean,Expression,Operator,Or,Right . . . . . StartPosition: { . . . . . . Offset: 168 . . . . . . Line: 18 @@ -779,8 +906,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 168 . . . . . . . . Line: 18 @@ -794,10 +920,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 174 . . . . . . . . Line: 18 @@ -811,13 +945,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 10: Expr_BinaryOp_LogicalOr { -. . . Roles: Expression,Binary,Operator,Boolean,Or +. . . Roles: Binary,Boolean,Expression,Operator,Or . . . StartPosition: { . . . . Offset: 178 . . . . Line: 19 @@ -833,7 +976,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Assign { -. . . . . Roles: Expression,Assignment,Left +. . . . . Roles: Assignment,Expression,Left . . . . . StartPosition: { . . . . . . Offset: 178 . . . . . . Line: 19 @@ -849,8 +992,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 178 . . . . . . . . Line: 19 @@ -864,10 +1006,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 183 . . . . . . . . Line: 19 @@ -881,12 +1031,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: expr . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 189 . . . . . . Line: 19 @@ -900,6 +1058,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/loop_do.php.native b/fixtures/loop_do.php.native index c8b3da2..b7c93d2 100644 --- a/fixtures/loop_do.php.native +++ b/fixtures/loop_do.php.native @@ -2,67 +2,70 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 34, + "endFilePos": 36, "endLine": 5, - "endTokenPos": 18, - "startFilePos": 33, - "startLine": 5, - "startTokenPos": 18 + "endTokenPos": 20, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Do", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 21, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 6 + "endFilePos": 34, + "endLine": 5, + "endTokenPos": 18, + "startFilePos": 33, + "startLine": 5, + "startTokenPos": 18 }, - "expr": { + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Do", + "stmts": [ + { "attributes": { "endFilePos": 21, "endLine": 4, "endTokenPos": 10, - "kind": 10, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 10 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 17, - "endLine": 4, - "endTokenPos": 6, "startFilePos": 16, "startLine": 4, "startTokenPos": 6 }, - "name": "a", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 10, + "kind": 10, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 10 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 17, + "endLine": 4, + "endTokenPos": 6, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 6 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - ] - } - ] + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/loop_do.php.uast b/fixtures/loop_do.php.uast index a121d84..40fda25 100644 --- a/fixtures/loop_do.php.uast +++ b/fixtures/loop_do.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Do { -. . . Roles: Statement,DoWhile +. . . Roles: DoWhile,Statement . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Assign { -. . . . . Roles: Expression,Body,Assignment +. . . . . Roles: Assignment,Expression . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 4 @@ -38,8 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 16 . . . . . . . . Line: 4 @@ -53,9 +52,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_LNumber { -. . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . TOKEN "1" . . . . . . . StartPosition: { . . . . . . . . Offset: 21 @@ -74,8 +82,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 33 . . . . . . Line: 5 @@ -89,6 +96,15 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/math.php.native b/fixtures/math.php.native index 2d96f4d..119ce30 100644 --- a/fixtures/math.php.native +++ b/fixtures/math.php.native @@ -2,102 +2,86 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 7, - "line": 3, - "nodeType": "Comment", - "text": "// unary ops\n" - } - ], - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 4, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 3 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { + "comments": [ + { + "filePos": 7, + "line": 3, + "nodeType": "Comment", + "text": "// unary ops\n" + } + ], "endFilePos": 22, "endLine": 4, "endTokenPos": 4, - "startFilePos": 21, + "startFilePos": 20, "startLine": 4, - "startTokenPos": 4 + "startTokenPos": 3 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BitwiseNot" - }, - { - "attributes": { - "endFilePos": 27, - "endLine": 5, - "endTokenPos": 8, - "startFilePos": 25, - "startLine": 5, - "startTokenPos": 7 + "expr": { + "attributes": { + "endFilePos": 22, + "endLine": 4, + "endTokenPos": 4, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 4 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BitwiseNot" }, - "expr": { + { "attributes": { "endFilePos": 27, "endLine": 5, "endTokenPos": 8, - "startFilePos": 26, + "startFilePos": 25, "startLine": 5, - "startTokenPos": 8 + "startTokenPos": 7 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_UnaryPlus" - }, - { - "attributes": { - "endFilePos": 32, - "endLine": 6, - "endTokenPos": 12, - "startFilePos": 30, - "startLine": 6, - "startTokenPos": 11 + "expr": { + "attributes": { + "endFilePos": 27, + "endLine": 5, + "endTokenPos": 8, + "startFilePos": 26, + "startLine": 5, + "startTokenPos": 8 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_UnaryPlus" }, - "expr": { + { "attributes": { "endFilePos": 32, "endLine": 6, "endTokenPos": 12, - "startFilePos": 31, + "startFilePos": 30, "startLine": 6, - "startTokenPos": 12 + "startTokenPos": 11 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_UnaryMinus" - }, - { - "attributes": { - "comments": [ - { - "filePos": 36, - "line": 8, - "nodeType": "Comment", - "text": "// binary ops\n" - } - ], - "endFilePos": 56, - "endLine": 9, - "endTokenPos": 20, - "startFilePos": 50, - "startLine": 9, - "startTokenPos": 16 + "expr": { + "attributes": { + "endFilePos": 32, + "endLine": 6, + "endTokenPos": 12, + "startFilePos": 31, + "startLine": 6, + "startTokenPos": 12 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_UnaryMinus" }, - "left": { + { "attributes": { "comments": [ { @@ -107,433 +91,433 @@ "text": "// binary ops\n" } ], - "endFilePos": 51, + "endFilePos": 56, "endLine": 9, - "endTokenPos": 16, + "endTokenPos": 20, "startFilePos": 50, "startLine": 9, "startTokenPos": 16 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BitwiseAnd", - "right": { - "attributes": { - "endFilePos": 56, - "endLine": 9, - "endTokenPos": 20, - "startFilePos": 55, - "startLine": 9, - "startTokenPos": 20 + "left": { + "attributes": { + "comments": [ + { + "filePos": 36, + "line": 8, + "nodeType": "Comment", + "text": "// binary ops\n" + } + ], + "endFilePos": 51, + "endLine": 9, + "endTokenPos": 16, + "startFilePos": 50, + "startLine": 9, + "startTokenPos": 16 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 65, - "endLine": 10, - "endTokenPos": 27, - "startFilePos": 59, - "startLine": 10, - "startTokenPos": 23 + "nodeType": "Expr_BinaryOp_BitwiseAnd", + "right": { + "attributes": { + "endFilePos": 56, + "endLine": 9, + "endTokenPos": 20, + "startFilePos": 55, + "startLine": 9, + "startTokenPos": 20 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 60, + "endFilePos": 65, "endLine": 10, - "endTokenPos": 23, + "endTokenPos": 27, "startFilePos": 59, "startLine": 10, "startTokenPos": 23 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BitwiseOr", - "right": { - "attributes": { - "endFilePos": 65, - "endLine": 10, - "endTokenPos": 27, - "startFilePos": 64, - "startLine": 10, - "startTokenPos": 27 + "left": { + "attributes": { + "endFilePos": 60, + "endLine": 10, + "endTokenPos": 23, + "startFilePos": 59, + "startLine": 10, + "startTokenPos": 23 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 74, - "endLine": 11, - "endTokenPos": 34, - "startFilePos": 68, - "startLine": 11, - "startTokenPos": 30 + "nodeType": "Expr_BinaryOp_BitwiseOr", + "right": { + "attributes": { + "endFilePos": 65, + "endLine": 10, + "endTokenPos": 27, + "startFilePos": 64, + "startLine": 10, + "startTokenPos": 27 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 69, + "endFilePos": 74, "endLine": 11, - "endTokenPos": 30, + "endTokenPos": 34, "startFilePos": 68, "startLine": 11, "startTokenPos": 30 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_BitwiseXor", - "right": { - "attributes": { - "endFilePos": 74, - "endLine": 11, - "endTokenPos": 34, - "startFilePos": 73, - "startLine": 11, - "startTokenPos": 34 + "left": { + "attributes": { + "endFilePos": 69, + "endLine": 11, + "endTokenPos": 30, + "startFilePos": 68, + "startLine": 11, + "startTokenPos": 30 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 83, - "endLine": 12, - "endTokenPos": 41, - "startFilePos": 77, - "startLine": 12, - "startTokenPos": 37 + "nodeType": "Expr_BinaryOp_BitwiseXor", + "right": { + "attributes": { + "endFilePos": 74, + "endLine": 11, + "endTokenPos": 34, + "startFilePos": 73, + "startLine": 11, + "startTokenPos": 34 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 78, + "endFilePos": 83, "endLine": 12, - "endTokenPos": 37, + "endTokenPos": 41, "startFilePos": 77, "startLine": 12, "startTokenPos": 37 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { - "attributes": { - "endFilePos": 83, - "endLine": 12, - "endTokenPos": 41, - "startFilePos": 82, - "startLine": 12, - "startTokenPos": 41 + "left": { + "attributes": { + "endFilePos": 78, + "endLine": 12, + "endTokenPos": 37, + "startFilePos": 77, + "startLine": 12, + "startTokenPos": 37 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 92, - "endLine": 13, - "endTokenPos": 48, - "startFilePos": 86, - "startLine": 13, - "startTokenPos": 44 + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 83, + "endLine": 12, + "endTokenPos": 41, + "startFilePos": 82, + "startLine": 12, + "startTokenPos": 41 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 87, + "endFilePos": 92, "endLine": 13, - "endTokenPos": 44, + "endTokenPos": 48, "startFilePos": 86, "startLine": 13, "startTokenPos": 44 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Div", - "right": { - "attributes": { - "endFilePos": 92, - "endLine": 13, - "endTokenPos": 48, - "startFilePos": 91, - "startLine": 13, - "startTokenPos": 48 + "left": { + "attributes": { + "endFilePos": 87, + "endLine": 13, + "endTokenPos": 44, + "startFilePos": 86, + "startLine": 13, + "startTokenPos": 44 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 101, - "endLine": 14, - "endTokenPos": 55, - "startFilePos": 95, - "startLine": 14, - "startTokenPos": 51 + "nodeType": "Expr_BinaryOp_Div", + "right": { + "attributes": { + "endFilePos": 92, + "endLine": 13, + "endTokenPos": 48, + "startFilePos": 91, + "startLine": 13, + "startTokenPos": 48 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 96, + "endFilePos": 101, "endLine": 14, - "endTokenPos": 51, + "endTokenPos": 55, "startFilePos": 95, "startLine": 14, "startTokenPos": 51 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Minus", - "right": { - "attributes": { - "endFilePos": 101, - "endLine": 14, - "endTokenPos": 55, - "startFilePos": 100, - "startLine": 14, - "startTokenPos": 55 + "left": { + "attributes": { + "endFilePos": 96, + "endLine": 14, + "endTokenPos": 51, + "startFilePos": 95, + "startLine": 14, + "startTokenPos": 51 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 110, - "endLine": 15, - "endTokenPos": 62, - "startFilePos": 104, - "startLine": 15, - "startTokenPos": 58 + "nodeType": "Expr_BinaryOp_Minus", + "right": { + "attributes": { + "endFilePos": 101, + "endLine": 14, + "endTokenPos": 55, + "startFilePos": 100, + "startLine": 14, + "startTokenPos": 55 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 105, + "endFilePos": 110, "endLine": 15, - "endTokenPos": 58, + "endTokenPos": 62, "startFilePos": 104, "startLine": 15, "startTokenPos": 58 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Mod", - "right": { - "attributes": { - "endFilePos": 110, - "endLine": 15, - "endTokenPos": 62, - "startFilePos": 109, - "startLine": 15, - "startTokenPos": 62 + "left": { + "attributes": { + "endFilePos": 105, + "endLine": 15, + "endTokenPos": 58, + "startFilePos": 104, + "startLine": 15, + "startTokenPos": 58 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 119, - "endLine": 16, - "endTokenPos": 69, - "startFilePos": 113, - "startLine": 16, - "startTokenPos": 65 + "nodeType": "Expr_BinaryOp_Mod", + "right": { + "attributes": { + "endFilePos": 110, + "endLine": 15, + "endTokenPos": 62, + "startFilePos": 109, + "startLine": 15, + "startTokenPos": 62 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 114, + "endFilePos": 119, "endLine": 16, - "endTokenPos": 65, + "endTokenPos": 69, "startFilePos": 113, "startLine": 16, "startTokenPos": 65 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { - "attributes": { - "endFilePos": 119, - "endLine": 16, - "endTokenPos": 69, - "startFilePos": 118, - "startLine": 16, - "startTokenPos": 69 + "left": { + "attributes": { + "endFilePos": 114, + "endLine": 16, + "endTokenPos": 65, + "startFilePos": 113, + "startLine": 16, + "startTokenPos": 65 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 128, - "endLine": 17, - "endTokenPos": 76, - "startFilePos": 122, - "startLine": 17, - "startTokenPos": 72 + "nodeType": "Expr_BinaryOp_Mul", + "right": { + "attributes": { + "endFilePos": 119, + "endLine": 16, + "endTokenPos": 69, + "startFilePos": 118, + "startLine": 16, + "startTokenPos": 69 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 123, + "endFilePos": 128, "endLine": 17, - "endTokenPos": 72, + "endTokenPos": 76, "startFilePos": 122, "startLine": 17, "startTokenPos": 72 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { - "endFilePos": 128, - "endLine": 17, - "endTokenPos": 76, - "startFilePos": 127, - "startLine": 17, - "startTokenPos": 76 + "left": { + "attributes": { + "endFilePos": 123, + "endLine": 17, + "endTokenPos": 72, + "startFilePos": 122, + "startLine": 17, + "startTokenPos": 72 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 138, - "endLine": 18, - "endTokenPos": 83, - "startFilePos": 131, - "startLine": 18, - "startTokenPos": 79 + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 128, + "endLine": 17, + "endTokenPos": 76, + "startFilePos": 127, + "startLine": 17, + "startTokenPos": 76 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 132, + "endFilePos": 138, "endLine": 18, - "endTokenPos": 79, + "endTokenPos": 83, "startFilePos": 131, "startLine": 18, "startTokenPos": 79 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_ShiftLeft", - "right": { - "attributes": { - "endFilePos": 138, - "endLine": 18, - "endTokenPos": 83, - "startFilePos": 137, - "startLine": 18, - "startTokenPos": 83 + "left": { + "attributes": { + "endFilePos": 132, + "endLine": 18, + "endTokenPos": 79, + "startFilePos": 131, + "startLine": 18, + "startTokenPos": 79 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 148, - "endLine": 19, - "endTokenPos": 90, - "startFilePos": 141, - "startLine": 19, - "startTokenPos": 86 + "nodeType": "Expr_BinaryOp_ShiftLeft", + "right": { + "attributes": { + "endFilePos": 138, + "endLine": 18, + "endTokenPos": 83, + "startFilePos": 137, + "startLine": 18, + "startTokenPos": 83 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 142, + "endFilePos": 148, "endLine": 19, - "endTokenPos": 86, + "endTokenPos": 90, "startFilePos": 141, "startLine": 19, "startTokenPos": 86 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_ShiftRight", - "right": { - "attributes": { - "endFilePos": 148, - "endLine": 19, - "endTokenPos": 90, - "startFilePos": 147, - "startLine": 19, - "startTokenPos": 90 + "left": { + "attributes": { + "endFilePos": 142, + "endLine": 19, + "endTokenPos": 86, + "startFilePos": 141, + "startLine": 19, + "startTokenPos": 86 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 158, - "endLine": 20, - "endTokenPos": 97, - "startFilePos": 151, - "startLine": 20, - "startTokenPos": 93 + "nodeType": "Expr_BinaryOp_ShiftRight", + "right": { + "attributes": { + "endFilePos": 148, + "endLine": 19, + "endTokenPos": 90, + "startFilePos": 147, + "startLine": 19, + "startTokenPos": 90 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { - "endFilePos": 152, + "endFilePos": 158, "endLine": 20, - "endTokenPos": 93, + "endTokenPos": 97, "startFilePos": 151, "startLine": 20, "startTokenPos": 93 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Pow", - "right": { - "attributes": { - "endFilePos": 158, - "endLine": 20, - "endTokenPos": 97, - "startFilePos": 157, - "startLine": 20, - "startTokenPos": 97 + "left": { + "attributes": { + "endFilePos": 152, + "endLine": 20, + "endTokenPos": 93, + "startFilePos": 151, + "startLine": 20, + "startTokenPos": 93 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "comments": [ - { - "filePos": 162, - "line": 22, - "nodeType": "Comment", - "text": "// associativity\n" - } - ], - "endFilePos": 190, - "endLine": 23, - "endTokenPos": 109, - "startFilePos": 179, - "startLine": 23, - "startTokenPos": 101 + "nodeType": "Expr_BinaryOp_Pow", + "right": { + "attributes": { + "endFilePos": 158, + "endLine": 20, + "endTokenPos": 97, + "startFilePos": 157, + "startLine": 20, + "startTokenPos": 97 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "left": { + { "attributes": { "comments": [ { @@ -543,9 +527,9 @@ "text": "// associativity\n" } ], - "endFilePos": 185, + "endFilePos": 190, "endLine": 23, - "endTokenPos": 105, + "endTokenPos": 109, "startFilePos": 179, "startLine": 23, "startTokenPos": 101 @@ -560,85 +544,80 @@ "text": "// associativity\n" } ], - "endFilePos": 180, + "endFilePos": 185, "endLine": 23, - "endTokenPos": 101, + "endTokenPos": 105, "startFilePos": 179, "startLine": 23, "startTokenPos": 101 }, - "name": "a", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "comments": [ + { + "filePos": 162, + "line": 22, + "nodeType": "Comment", + "text": "// associativity\n" + } + ], + "endFilePos": 180, + "endLine": 23, + "endTokenPos": 101, + "startFilePos": 179, + "startLine": 23, + "startTokenPos": 101 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Mul", + "right": { + "attributes": { + "endFilePos": 185, + "endLine": 23, + "endTokenPos": 105, + "startFilePos": 184, + "startLine": 23, + "startTokenPos": 105 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, "nodeType": "Expr_BinaryOp_Mul", "right": { "attributes": { - "endFilePos": 185, + "endFilePos": 190, "endLine": 23, - "endTokenPos": 105, - "startFilePos": 184, + "endTokenPos": 109, + "startFilePos": 189, "startLine": 23, - "startTokenPos": 105 + "startTokenPos": 109 }, - "name": "b", + "name": "c", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { + { "attributes": { - "endFilePos": 190, - "endLine": 23, - "endTokenPos": 109, - "startFilePos": 189, - "startLine": 23, - "startTokenPos": 109 - }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 206, - "endLine": 24, - "endTokenPos": 122, - "startFilePos": 193, - "startLine": 24, - "startTokenPos": 112 - }, - "left": { - "attributes": { - "endFilePos": 194, + "endFilePos": 206, "endLine": 24, - "endTokenPos": 112, + "endTokenPos": 122, "startFilePos": 193, "startLine": 24, "startTokenPos": 112 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { - "attributes": { - "endFilePos": 205, - "endLine": 24, - "endTokenPos": 121, - "startFilePos": 199, - "startLine": 24, - "startTokenPos": 117 - }, "left": { "attributes": { - "endFilePos": 200, + "endFilePos": 194, "endLine": 24, - "endTokenPos": 117, - "startFilePos": 199, + "endTokenPos": 112, + "startFilePos": 193, "startLine": 24, - "startTokenPos": 117 + "startTokenPos": 112 }, - "name": "b", + "name": "a", "nodeType": "Expr_Variable" }, "nodeType": "Expr_BinaryOp_Mul", @@ -647,33 +626,38 @@ "endFilePos": 205, "endLine": 24, "endTokenPos": 121, - "startFilePos": 204, + "startFilePos": 199, "startLine": 24, - "startTokenPos": 121 + "startTokenPos": 117 }, - "name": "c", - "nodeType": "Expr_Variable" - } - } - }, - { - "attributes": { - "comments": [ - { - "filePos": 210, - "line": 26, - "nodeType": "Comment", - "text": "// precedence\n" + "left": { + "attributes": { + "endFilePos": 200, + "endLine": 24, + "endTokenPos": 117, + "startFilePos": 199, + "startLine": 24, + "startTokenPos": 117 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Mul", + "right": { + "attributes": { + "endFilePos": 205, + "endLine": 24, + "endTokenPos": 121, + "startFilePos": 204, + "startLine": 24, + "startTokenPos": 121 + }, + "name": "c", + "nodeType": "Expr_Variable" } - ], - "endFilePos": 235, - "endLine": 27, - "endTokenPos": 134, - "startFilePos": 224, - "startLine": 27, - "startTokenPos": 126 + } }, - "left": { + { "attributes": { "comments": [ { @@ -683,129 +667,129 @@ "text": "// precedence\n" } ], - "endFilePos": 225, - "endLine": 27, - "endTokenPos": 126, - "startFilePos": 224, - "startLine": 27, - "startTokenPos": 126 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Plus", - "right": { - "attributes": { "endFilePos": 235, "endLine": 27, "endTokenPos": 134, - "startFilePos": 229, + "startFilePos": 224, "startLine": 27, - "startTokenPos": 130 + "startTokenPos": 126 }, "left": { "attributes": { - "endFilePos": 230, + "comments": [ + { + "filePos": 210, + "line": 26, + "nodeType": "Comment", + "text": "// precedence\n" + } + ], + "endFilePos": 225, "endLine": 27, - "endTokenPos": 130, - "startFilePos": 229, + "endTokenPos": 126, + "startFilePos": 224, "startLine": 27, - "startTokenPos": 130 + "startTokenPos": 126 }, - "name": "b", + "name": "a", "nodeType": "Expr_Variable" }, - "nodeType": "Expr_BinaryOp_Mul", + "nodeType": "Expr_BinaryOp_Plus", "right": { "attributes": { "endFilePos": 235, "endLine": 27, "endTokenPos": 134, - "startFilePos": 234, + "startFilePos": 229, "startLine": 27, - "startTokenPos": 134 + "startTokenPos": 130 }, - "name": "c", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 230, + "endLine": 27, + "endTokenPos": 130, + "startFilePos": 229, + "startLine": 27, + "startTokenPos": 130 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Mul", + "right": { + "attributes": { + "endFilePos": 235, + "endLine": 27, + "endTokenPos": 134, + "startFilePos": 234, + "startLine": 27, + "startTokenPos": 134 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 251, - "endLine": 28, - "endTokenPos": 147, - "startFilePos": 238, - "startLine": 28, - "startTokenPos": 137 }, - "left": { + { "attributes": { - "endFilePos": 245, + "endFilePos": 251, "endLine": 28, - "endTokenPos": 142, - "startFilePos": 239, + "endTokenPos": 147, + "startFilePos": 238, "startLine": 28, - "startTokenPos": 138 + "startTokenPos": 137 }, "left": { "attributes": { - "endFilePos": 240, + "endFilePos": 245, "endLine": 28, - "endTokenPos": 138, + "endTokenPos": 142, "startFilePos": 239, "startLine": 28, "startTokenPos": 138 }, - "name": "a", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 240, + "endLine": 28, + "endTokenPos": 138, + "startFilePos": 239, + "startLine": 28, + "startTokenPos": 138 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Plus", + "right": { + "attributes": { + "endFilePos": 245, + "endLine": 28, + "endTokenPos": 142, + "startFilePos": 244, + "startLine": 28, + "startTokenPos": 142 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_Plus", + "nodeType": "Expr_BinaryOp_Mul", "right": { "attributes": { - "endFilePos": 245, + "endFilePos": 251, "endLine": 28, - "endTokenPos": 142, - "startFilePos": 244, + "endTokenPos": 147, + "startFilePos": 250, "startLine": 28, - "startTokenPos": 142 + "startTokenPos": 147 }, - "name": "b", + "name": "c", "nodeType": "Expr_Variable" } }, - "nodeType": "Expr_BinaryOp_Mul", - "right": { - "attributes": { - "endFilePos": 251, - "endLine": 28, - "endTokenPos": 147, - "startFilePos": 250, - "startLine": 28, - "startTokenPos": 147 - }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "comments": [ - { - "filePos": 255, - "line": 30, - "nodeType": "Comment", - "text": "// pow is special\n" - } - ], - "endFilePos": 286, - "endLine": 31, - "endTokenPos": 159, - "startFilePos": 273, - "startLine": 31, - "startTokenPos": 151 - }, - "left": { + { "attributes": { "comments": [ { @@ -815,36 +799,31 @@ "text": "// pow is special\n" } ], - "endFilePos": 274, - "endLine": 31, - "endTokenPos": 151, - "startFilePos": 273, - "startLine": 31, - "startTokenPos": 151 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Pow", - "right": { - "attributes": { "endFilePos": 286, "endLine": 31, "endTokenPos": 159, - "startFilePos": 279, + "startFilePos": 273, "startLine": 31, - "startTokenPos": 155 + "startTokenPos": 151 }, "left": { "attributes": { - "endFilePos": 280, + "comments": [ + { + "filePos": 255, + "line": 30, + "nodeType": "Comment", + "text": "// pow is special\n" + } + ], + "endFilePos": 274, "endLine": 31, - "endTokenPos": 155, - "startFilePos": 279, + "endTokenPos": 151, + "startFilePos": 273, "startLine": 31, - "startTokenPos": 155 + "startTokenPos": 151 }, - "name": "b", + "name": "a", "nodeType": "Expr_Variable" }, "nodeType": "Expr_BinaryOp_Pow", @@ -853,72 +832,96 @@ "endFilePos": 286, "endLine": 31, "endTokenPos": 159, - "startFilePos": 285, + "startFilePos": 279, "startLine": 31, - "startTokenPos": 159 + "startTokenPos": 155 }, - "name": "c", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 280, + "endLine": 31, + "endTokenPos": 155, + "startFilePos": 279, + "startLine": 31, + "startTokenPos": 155 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Pow", + "right": { + "attributes": { + "endFilePos": 286, + "endLine": 31, + "endTokenPos": 159, + "startFilePos": 285, + "startLine": 31, + "startTokenPos": 159 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 304, - "endLine": 32, - "endTokenPos": 172, - "startFilePos": 289, - "startLine": 32, - "startTokenPos": 162 }, - "left": { + { "attributes": { - "endFilePos": 297, + "endFilePos": 304, "endLine": 32, - "endTokenPos": 167, - "startFilePos": 290, + "endTokenPos": 172, + "startFilePos": 289, "startLine": 32, - "startTokenPos": 163 + "startTokenPos": 162 }, "left": { "attributes": { - "endFilePos": 291, + "endFilePos": 297, "endLine": 32, - "endTokenPos": 163, + "endTokenPos": 167, "startFilePos": 290, "startLine": 32, "startTokenPos": 163 }, - "name": "a", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 291, + "endLine": 32, + "endTokenPos": 163, + "startFilePos": 290, + "startLine": 32, + "startTokenPos": 163 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Pow", + "right": { + "attributes": { + "endFilePos": 297, + "endLine": 32, + "endTokenPos": 167, + "startFilePos": 296, + "startLine": 32, + "startTokenPos": 167 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, "nodeType": "Expr_BinaryOp_Pow", "right": { "attributes": { - "endFilePos": 297, + "endFilePos": 304, "endLine": 32, - "endTokenPos": 167, - "startFilePos": 296, + "endTokenPos": 172, + "startFilePos": 303, "startLine": 32, - "startTokenPos": 167 + "startTokenPos": 172 }, - "name": "b", + "name": "c", "nodeType": "Expr_Variable" } - }, - "nodeType": "Expr_BinaryOp_Pow", - "right": { - "attributes": { - "endFilePos": 304, - "endLine": 32, - "endTokenPos": 172, - "startFilePos": 303, - "startLine": 32, - "startTokenPos": 172 - }, - "name": "c", - "nodeType": "Expr_Variable" } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/math.php.uast b/fixtures/math.php.uast index be0cb36..dbca63f 100644 --- a/fixtures/math.php.uast +++ b/fixtures/math.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_BitwiseNot { -. . . Roles: Expression,Unary,Operator,Bitwise,Not +. . . Roles: Bitwise,Expression,Not,Operator,Unary . . . StartPosition: { . . . . Offset: 20 . . . . Line: 4 @@ -22,26 +22,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " unary ops " . . . . . StartPosition: { -. . . . . . Offset: 7 -. . . . . . Line: 3 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 20 -. . . . . . Line: 4 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 4 @@ -55,11 +49,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_UnaryPlus { -. . . Roles: Expression,Unary,Incomplete +. . . Roles: Expression,Incomplete,Unary . . . StartPosition: { . . . . Offset: 25 . . . . Line: 5 @@ -76,7 +79,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 26 . . . . . . Line: 5 @@ -90,11 +92,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_UnaryMinus { -. . . Roles: Expression,Unary,Incomplete +. . . Roles: Expression,Incomplete,Unary . . . StartPosition: { . . . . Offset: 30 . . . . Line: 6 @@ -111,7 +122,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 6 @@ -125,11 +135,20 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_BinaryOp_BitwiseAnd { -. . . Roles: Expression,Binary,Operator,Bitwise,And +. . . Roles: And,Binary,Bitwise,Expression,Operator . . . StartPosition: { . . . . Offset: 50 . . . . Line: 9 @@ -145,26 +164,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " binary ops " . . . . . StartPosition: { -. . . . . . Offset: 36 -. . . . . . Line: 8 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 50 -. . . . . . Line: 9 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 50 . . . . . . Line: 9 @@ -179,29 +192,30 @@ File { . . . . . . internalRole: left . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " binary ops " . . . . . . . StartPosition: { -. . . . . . . . Offset: 36 -. . . . . . . . Line: 8 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 50 -. . . . . . . . Line: 9 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 55 . . . . . . Line: 9 @@ -215,11 +229,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_BinaryOp_BitwiseOr { -. . . Roles: Expression,Binary,Operator,Bitwise,Or +. . . Roles: Binary,Bitwise,Expression,Operator,Or . . . StartPosition: { . . . . Offset: 59 . . . . Line: 10 @@ -235,8 +258,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 59 . . . . . . Line: 10 @@ -250,10 +272,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 64 . . . . . . Line: 10 @@ -267,11 +297,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 5: Expr_BinaryOp_BitwiseXor { -. . . Roles: Expression,Binary,Operator,Bitwise,Xor +. . . Roles: Binary,Bitwise,Expression,Operator,Xor . . . StartPosition: { . . . . Offset: 68 . . . . Line: 11 @@ -287,8 +326,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 68 . . . . . . Line: 11 @@ -302,10 +340,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 73 . . . . . . Line: 11 @@ -319,11 +365,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_BinaryOp_Concat { -. . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . Roles: Add,Binary,Expression,Incomplete,Operator . . . StartPosition: { . . . . Offset: 77 . . . . Line: 12 @@ -339,8 +394,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 77 . . . . . . Line: 12 @@ -354,10 +408,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 82 . . . . . . Line: 12 @@ -371,11 +433,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 7: Expr_BinaryOp_Div { -. . . Roles: Expression,Operator,Divide +. . . Roles: Divide,Expression,Operator . . . StartPosition: { . . . . Offset: 86 . . . . Line: 13 @@ -391,8 +462,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 86 . . . . . . Line: 13 @@ -406,10 +476,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 91 . . . . . . Line: 13 @@ -423,6 +501,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -443,8 +530,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 95 . . . . . . Line: 14 @@ -458,10 +544,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 100 . . . . . . Line: 14 @@ -475,11 +569,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 9: Expr_BinaryOp_Mod { -. . . Roles: Expression,Operator,Modulo +. . . Roles: Expression,Modulo,Operator . . . StartPosition: { . . . . Offset: 104 . . . . Line: 15 @@ -495,8 +598,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 104 . . . . . . Line: 15 @@ -510,10 +612,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 109 . . . . . . Line: 15 @@ -527,11 +637,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 10: Expr_BinaryOp_Mul { -. . . Roles: Expression,Operator,Multiply +. . . Roles: Expression,Multiply,Operator . . . StartPosition: { . . . . Offset: 113 . . . . Line: 16 @@ -547,8 +666,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 113 . . . . . . Line: 16 @@ -562,10 +680,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 118 . . . . . . Line: 16 @@ -579,11 +705,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 11: Expr_BinaryOp_Plus { -. . . Roles: Expression,Operator,Add +. . . Roles: Add,Expression,Operator . . . StartPosition: { . . . . Offset: 122 . . . . Line: 17 @@ -599,8 +734,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 122 . . . . . . Line: 17 @@ -614,10 +748,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 127 . . . . . . Line: 17 @@ -631,11 +773,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 12: Expr_BinaryOp_ShiftLeft { -. . . Roles: Expression,Binary,Operator,Bitwise,LeftShift +. . . Roles: Binary,Bitwise,Expression,LeftShift,Operator . . . StartPosition: { . . . . Offset: 131 . . . . Line: 18 @@ -651,8 +802,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 131 . . . . . . Line: 18 @@ -666,10 +816,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 137 . . . . . . Line: 18 @@ -683,11 +841,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 13: Expr_BinaryOp_ShiftRight { -. . . Roles: Expression,Binary,Operator,Bitwise,RightShift +. . . Roles: Binary,Bitwise,Expression,Operator,RightShift . . . StartPosition: { . . . . Offset: 141 . . . . Line: 19 @@ -703,8 +870,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 141 . . . . . . Line: 19 @@ -718,10 +884,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 147 . . . . . . Line: 19 @@ -735,11 +909,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 14: Expr_BinaryOp_Pow { -. . . Roles: Expression,Operator,Incomplete +. . . Roles: Expression,Incomplete,Operator . . . StartPosition: { . . . . Offset: 151 . . . . Line: 20 @@ -755,8 +938,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 151 . . . . . . Line: 20 @@ -770,10 +952,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 157 . . . . . . Line: 20 @@ -787,11 +977,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 15: Expr_BinaryOp_Mul { -. . . Roles: Expression,Operator,Multiply +. . . Roles: Expression,Multiply,Operator . . . StartPosition: { . . . . Offset: 179 . . . . Line: 23 @@ -807,25 +1006,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " associativity " . . . . . StartPosition: { -. . . . . . Offset: 162 -. . . . . . Line: 22 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 179 -. . . . . . Line: 23 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_BinaryOp_Mul { -. . . . . Roles: Left,Expression,Operator,Multiply +. . . . . Roles: Expression,Left,Multiply,Operator . . . . . StartPosition: { . . . . . . Offset: 179 . . . . . . Line: 23 @@ -841,26 +1035,20 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " associativity " . . . . . . . StartPosition: { -. . . . . . . . Offset: 162 -. . . . . . . . Line: 22 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 179 -. . . . . . . . Line: 23 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 179 . . . . . . . . Line: 23 @@ -875,29 +1063,30 @@ File { . . . . . . . . internalRole: left . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Comment { -. . . . . . . . . Roles: Noop,Comment +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Comment { +. . . . . . . . . Roles: Comment,Noop . . . . . . . . . TOKEN " associativity " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 162 -. . . . . . . . . . Line: 22 -. . . . . . . . . . Col: 1 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 179 -. . . . . . . . . . Line: 23 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 . . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } . . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 184 . . . . . . . . Line: 23 @@ -911,12 +1100,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 189 . . . . . . Line: 23 @@ -930,11 +1127,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 16: Expr_BinaryOp_Mul { -. . . Roles: Expression,Operator,Multiply +. . . Roles: Expression,Multiply,Operator . . . StartPosition: { . . . . Offset: 193 . . . . Line: 24 @@ -950,8 +1156,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 193 . . . . . . Line: 24 @@ -965,9 +1170,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_BinaryOp_Mul { -. . . . . Roles: Right,Expression,Operator,Multiply +. . . . . Roles: Expression,Multiply,Operator,Right . . . . . StartPosition: { . . . . . . Offset: 199 . . . . . . Line: 24 @@ -983,8 +1197,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 199 . . . . . . . . Line: 24 @@ -998,10 +1211,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 204 . . . . . . . . Line: 24 @@ -1015,13 +1236,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 17: Expr_BinaryOp_Plus { -. . . Roles: Expression,Operator,Add +. . . Roles: Add,Expression,Operator . . . StartPosition: { . . . . Offset: 224 . . . . Line: 27 @@ -1037,26 +1267,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " precedence " . . . . . StartPosition: { -. . . . . . Offset: 210 -. . . . . . Line: 26 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 224 -. . . . . . Line: 27 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 224 . . . . . . Line: 27 @@ -1071,28 +1295,30 @@ File { . . . . . . internalRole: left . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " precedence " . . . . . . . StartPosition: { -. . . . . . . . Offset: 210 -. . . . . . . . Line: 26 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 224 -. . . . . . . . Line: 27 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_BinaryOp_Mul { -. . . . . Roles: Right,Expression,Operator,Multiply +. . . . . Roles: Expression,Multiply,Operator,Right . . . . . StartPosition: { . . . . . . Offset: 229 . . . . . . Line: 27 @@ -1108,8 +1334,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 229 . . . . . . . . Line: 27 @@ -1123,10 +1348,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 234 . . . . . . . . Line: 27 @@ -1140,13 +1373,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 18: Expr_BinaryOp_Mul { -. . . Roles: Expression,Operator,Multiply +. . . Roles: Expression,Multiply,Operator . . . StartPosition: { . . . . Offset: 238 . . . . Line: 28 @@ -1162,7 +1404,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_BinaryOp_Plus { -. . . . . Roles: Left,Expression,Operator,Add +. . . . . Roles: Add,Expression,Left,Operator . . . . . StartPosition: { . . . . . . Offset: 239 . . . . . . Line: 28 @@ -1178,8 +1420,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 239 . . . . . . . . Line: 28 @@ -1193,10 +1434,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 244 . . . . . . . . Line: 28 @@ -1210,12 +1459,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 250 . . . . . . Line: 28 @@ -1229,11 +1486,20 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 19: Expr_BinaryOp_Pow { -. . . Roles: Expression,Operator,Incomplete +. . . Roles: Expression,Incomplete,Operator . . . StartPosition: { . . . . Offset: 273 . . . . Line: 31 @@ -1249,26 +1515,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " pow is special " . . . . . StartPosition: { -. . . . . . Offset: 255 -. . . . . . Line: 30 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 273 -. . . . . . Line: 31 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 273 . . . . . . Line: 31 @@ -1283,28 +1543,30 @@ File { . . . . . . internalRole: left . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " pow is special " . . . . . . . StartPosition: { -. . . . . . . . Offset: 255 -. . . . . . . . Line: 30 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 273 -. . . . . . . . Line: 31 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Expr_BinaryOp_Pow { -. . . . . Roles: Right,Expression,Operator,Incomplete +. . . . . Roles: Expression,Incomplete,Operator,Right . . . . . StartPosition: { . . . . . . Offset: 279 . . . . . . Line: 31 @@ -1320,8 +1582,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 279 . . . . . . . . Line: 31 @@ -1335,10 +1596,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 285 . . . . . . . . Line: 31 @@ -1352,13 +1621,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 20: Expr_BinaryOp_Pow { -. . . Roles: Expression,Operator,Incomplete +. . . Roles: Expression,Incomplete,Operator . . . StartPosition: { . . . . Offset: 289 . . . . Line: 32 @@ -1374,7 +1652,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_BinaryOp_Pow { -. . . . . Roles: Left,Expression,Operator,Incomplete +. . . . . Roles: Expression,Incomplete,Left,Operator . . . . . StartPosition: { . . . . . . Offset: 290 . . . . . . Line: 32 @@ -1390,8 +1668,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 290 . . . . . . . . Line: 32 @@ -1405,10 +1682,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 296 . . . . . . . . Line: 32 @@ -1422,12 +1707,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 303 . . . . . . Line: 32 @@ -1441,6 +1734,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/misc.php.native b/fixtures/misc.php.native index 5835e89..aafc7a8 100644 --- a/fixtures/misc.php.native +++ b/fixtures/misc.php.native @@ -2,294 +2,283 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 7, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "dim": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 12, + "endFilePos": 13, "endLine": 3, - "endTokenPos": 6, - "kind": 10, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "attributes": { - "endFilePos": 10, - "endLine": 3, - "endTokenPos": 4, + "endTokenPos": 7, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 6, + "kind": 10, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 7, + "endFilePos": 10, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 4, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "A", - "nodeType": "Expr_ClassConstFetch" - } - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 4, - "endTokenPos": 21, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 10 - }, - "dim": { - "attributes": { - "endFilePos": 27, - "endLine": 4, - "endTokenPos": 20, - "kind": 10, - "startFilePos": 27, - "startLine": 4, - "startTokenPos": 20 - }, - "nodeType": "Scalar_LNumber", - "value": 2 + "class": { + "attributes": { + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "A", + "nodeType": "Expr_ClassConstFetch" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 25, + "endFilePos": 28, "endLine": 4, - "endTokenPos": 18, + "endTokenPos": 21, "startFilePos": 16, "startLine": 4, "startTokenPos": 10 }, "dim": { "attributes": { - "endFilePos": 24, + "endFilePos": 27, "endLine": 4, - "endTokenPos": 17, + "endTokenPos": 20, "kind": 10, - "startFilePos": 24, + "startFilePos": 27, "startLine": 4, - "startTokenPos": 17 + "startTokenPos": 20 }, "nodeType": "Scalar_LNumber", - "value": 1 + "value": 2 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 22, + "endFilePos": 25, "endLine": 4, - "endTokenPos": 15, + "endTokenPos": 18, "startFilePos": 16, "startLine": 4, "startTokenPos": 10 }, "dim": { "attributes": { - "endFilePos": 21, + "endFilePos": 24, "endLine": 4, - "endTokenPos": 14, + "endTokenPos": 17, "kind": 10, - "startFilePos": 21, + "startFilePos": 24, "startLine": 4, - "startTokenPos": 14 + "startTokenPos": 17 }, "nodeType": "Scalar_LNumber", - "value": 0 + "value": 1 }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 19, + "endFilePos": 22, "endLine": 4, - "endTokenPos": 12, + "endTokenPos": 15, "startFilePos": 16, "startLine": 4, "startTokenPos": 10 }, - "class": { + "dim": { "attributes": { - "endFilePos": 16, + "endFilePos": 21, "endLine": 4, - "endTokenPos": 10, + "endTokenPos": 14, + "kind": 10, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 14 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 19, + "endLine": 4, + "endTokenPos": 12, "startFilePos": 16, "startLine": 4, "startTokenPos": 10 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "A", - "nodeType": "Expr_ClassConstFetch" + "class": { + "attributes": { + "endFilePos": 16, + "endLine": 4, + "endTokenPos": 10, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 10 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "A", + "nodeType": "Expr_ClassConstFetch" + } } } - } - }, - { - "args": [], - "attributes": { - "endFilePos": 48, - "endLine": 5, - "endTokenPos": 28, - "startFilePos": 31, - "startLine": 5, - "startTokenPos": 24 }, - "name": "length", - "nodeType": "Expr_MethodCall", - "var": { + { + "args": [], "attributes": { - "endFilePos": 38, + "endFilePos": 48, "endLine": 5, - "endTokenPos": 24, - "kind": 2, + "endTokenPos": 28, "startFilePos": 31, "startLine": 5, "startTokenPos": 24 }, - "nodeType": "Scalar_String", - "value": "string" - } - }, - { - "args": [ - { + "name": "length", + "nodeType": "Expr_MethodCall", + "var": { "attributes": { - "endFilePos": 70, - "endLine": 6, - "endTokenPos": 42, - "startFilePos": 70, - "startLine": 6, - "startTokenPos": 42 + "endFilePos": 38, + "endLine": 5, + "endTokenPos": 24, + "kind": 2, + "startFilePos": 31, + "startLine": 5, + "startTokenPos": 24 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Scalar_String", + "value": "string" + } + }, + { + "args": [ + { "attributes": { "endFilePos": 70, "endLine": 6, "endTokenPos": 42, - "kind": 10, "startFilePos": 70, "startLine": 6, "startTokenPos": 42 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 70, + "endLine": 6, + "endTokenPos": 42, + "kind": 10, + "startFilePos": 70, + "startLine": 6, + "startTokenPos": 42 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } - } - ], - "attributes": { - "endFilePos": 71, - "endLine": 6, - "endTokenPos": 43, - "startFilePos": 51, - "startLine": 6, - "startTokenPos": 31 - }, - "name": { + ], "attributes": { - "endFilePos": 68, + "endFilePos": 71, "endLine": 6, - "endTokenPos": 40, + "endTokenPos": 43, "startFilePos": 51, "startLine": 6, "startTokenPos": 31 }, - "dim": { - "attributes": { - "endFilePos": 67, - "endLine": 6, - "endTokenPos": 39, - "kind": 10, - "startFilePos": 67, - "startLine": 6, - "startTokenPos": 39 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": { "attributes": { - "endFilePos": 65, + "endFilePos": 68, "endLine": 6, - "endTokenPos": 37, + "endTokenPos": 40, "startFilePos": 51, "startLine": 6, "startTokenPos": 31 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", + "dim": { + "attributes": { + "endFilePos": 67, + "endLine": 6, + "endTokenPos": 39, + "kind": 10, + "startFilePos": 67, + "startLine": 6, + "startTokenPos": 39 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 61, + "endFilePos": 65, "endLine": 6, - "endTokenPos": 34, - "startFilePos": 52, + "endTokenPos": 37, + "startFilePos": 51, "startLine": 6, - "startTokenPos": 32 + "startTokenPos": 31 }, - "expr": { + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { "attributes": { "endFilePos": 61, "endLine": 6, "endTokenPos": 34, - "startFilePos": 58, + "startFilePos": 52, "startLine": 6, - "startTokenPos": 34 + "startTokenPos": 32 }, - "name": "obj", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Clone" + "expr": { + "attributes": { + "endFilePos": 61, + "endLine": 6, + "endTokenPos": 34, + "startFilePos": 58, + "startLine": 6, + "startTokenPos": 34 + }, + "name": "obj", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Clone" + } } - } + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [ - { - "attributes": { - "endFilePos": 84, - "endLine": 7, - "endTokenPos": 50, - "startFilePos": 80, - "startLine": 7, - "startTokenPos": 50 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "args": [ + { "attributes": { "endFilePos": 84, "endLine": 7, @@ -298,23 +287,23 @@ "startLine": 7, "startTokenPos": 50 }, - "name": "arg1", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 91, - "endLine": 7, - "endTokenPos": 53, - "startFilePos": 87, - "startLine": 7, - "startTokenPos": 53 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 84, + "endLine": 7, + "endTokenPos": 50, + "startFilePos": 80, + "startLine": 7, + "startTokenPos": 50 + }, + "name": "arg1", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 91, "endLine": 7, @@ -323,33 +312,47 @@ "startLine": 7, "startTokenPos": 53 }, - "name": "arg2", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 91, + "endLine": 7, + "endTokenPos": 53, + "startFilePos": 87, + "startLine": 7, + "startTokenPos": 53 + }, + "name": "arg2", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 92, - "endLine": 7, - "endTokenPos": 54, - "startFilePos": 74, - "startLine": 7, - "startTokenPos": 46 - }, - "name": "z", - "nodeType": "Expr_MethodCall", - "var": { + ], "attributes": { - "endFilePos": 75, + "endFilePos": 92, "endLine": 7, - "endTokenPos": 46, + "endTokenPos": 54, "startFilePos": 74, "startLine": 7, "startTokenPos": 46 }, - "name": "x", - "nodeType": "Expr_Variable" + "name": "z", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 75, + "endLine": 7, + "endTokenPos": 46, + "startFilePos": 74, + "startLine": 7, + "startTokenPos": 46 + }, + "name": "x", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/misc.php.uast b/fixtures/misc.php.uast index 8007db2..69ba61c 100644 --- a/fixtures/misc.php.uast +++ b/fixtures/misc.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ClassConstFetch { -. . . . . Roles: Expression,Type,Incomplete -. . . . . TOKEN "A" +. . . . . Roles: Expression,Incomplete,Type . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -39,7 +38,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 7 @@ -77,7 +83,7 @@ File { . . . } . . } . . 1: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 16 . . . . Line: 4 @@ -93,7 +99,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 4 @@ -109,7 +115,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 16 . . . . . . . . Line: 4 @@ -125,8 +131,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_ClassConstFetch { -. . . . . . . . . Roles: Expression,Type,Incomplete -. . . . . . . . . TOKEN "A" +. . . . . . . . . Roles: Expression,Incomplete,Type . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 16 . . . . . . . . . . Line: 4 @@ -142,7 +147,14 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "A" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "A" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 16 @@ -218,8 +230,7 @@ File { . . . } . . } . . 2: Expr_MethodCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "length" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 31 . . . . Line: 5 @@ -234,8 +245,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Receiver,Identifier +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "length" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Scalar_String { +. . . . . Roles: Expression,Identifier,Literal,Receiver,String . . . . . TOKEN "string" . . . . . StartPosition: { . . . . . . Offset: 31 @@ -254,7 +272,7 @@ File { . . . } . . } . . 3: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 51 . . . . Line: 6 @@ -270,7 +288,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 51 . . . . . . Line: 6 @@ -286,8 +304,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . . . TOKEN "b" +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 51 . . . . . . . . Line: 6 @@ -302,9 +319,15 @@ File { . . . . . . . . internalRole: var . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Clone { -. . . . . . . . . Roles: Expression,Call,Incomplete -. . . . . . . . . TOKEN "clone" +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Clone { +. . . . . . . . . Roles: Call,Expression,Incomplete . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 52 . . . . . . . . . . Line: 6 @@ -321,7 +344,6 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "obj" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 58 . . . . . . . . . . . . Line: 6 @@ -335,6 +357,15 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "obj" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } @@ -399,8 +430,7 @@ File { . . . } . . } . . 4: Expr_MethodCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "z" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 74 . . . . Line: 7 @@ -415,9 +445,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Receiver -. . . . . TOKEN "x" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "z" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_Variable { +. . . . . Roles: Identifier,Receiver,Variable . . . . . StartPosition: { . . . . . . Offset: 74 . . . . . . Line: 7 @@ -431,8 +467,17 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "x" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Arg { +. . . . 2: Arg { . . . . . Roles: Argument . . . . . StartPosition: { . . . . . . Offset: 80 @@ -452,7 +497,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "arg1" . . . . . . . StartPosition: { . . . . . . . . Offset: 80 . . . . . . . . Line: 7 @@ -466,10 +510,19 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "arg1" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 2: Arg { +. . . . 3: Arg { . . . . . Roles: Argument . . . . . StartPosition: { . . . . . . Offset: 87 @@ -489,7 +542,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "arg2" . . . . . . . StartPosition: { . . . . . . . . Offset: 87 . . . . . . . . Line: 7 @@ -503,6 +555,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "arg2" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/multicatch.php.native b/fixtures/multicatch.php.native index 99d7f39..2937733 100644 --- a/fixtures/multicatch.php.native +++ b/fixtures/multicatch.php.native @@ -2,147 +2,150 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 79, - "endLine": 8, - "endTokenPos": 45, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "catches": [ - { - "attributes": { - "endFilePos": 48, - "endLine": 6, - "endTokenPos": 25, - "startFilePos": 22, - "startLine": 4, - "startTokenPos": 10 - }, - "nodeType": "Stmt_Catch", - "stmts": [ - { - "attributes": { - "endFilePos": 45, - "endLine": 5, - "endTokenPos": 22, - "startFilePos": 44, - "startLine": 5, - "startTokenPos": 22 - }, - "name": "y", - "nodeType": "Expr_Variable" - } - ], - "types": [ - { - "attributes": { - "endFilePos": 29, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 29, - "startLine": 4, - "startTokenPos": 13 - }, - "nodeType": "Name", - "parts": [ - "X" - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 79, + "endLine": 8, + "endTokenPos": 45, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "catches": [ + { + "attributes": { + "endFilePos": 48, + "endLine": 6, + "endTokenPos": 25, + "startFilePos": 22, + "startLine": 4, + "startTokenPos": 10 }, - { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 15, - "startFilePos": 31, - "startLine": 4, - "startTokenPos": 15 + "nodeType": "Stmt_Catch", + "stmts": [ + { + "attributes": { + "endFilePos": 45, + "endLine": 5, + "endTokenPos": 22, + "startFilePos": 44, + "startLine": 5, + "startTokenPos": 22 + }, + "name": "y", + "nodeType": "Expr_Variable" + } + ], + "types": [ + { + "attributes": { + "endFilePos": 29, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 29, + "startLine": 4, + "startTokenPos": 13 + }, + "nodeType": "Name", + "parts": [ + "X" + ] }, - "nodeType": "Name", - "parts": [ - "Y" - ] - } - ], - "var": "e1" - }, - { - "attributes": { - "endFilePos": 79, - "endLine": 8, - "endTokenPos": 45, - "startFilePos": 50, - "startLine": 6, - "startTokenPos": 27 + { + "attributes": { + "endFilePos": 31, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 31, + "startLine": 4, + "startTokenPos": 15 + }, + "nodeType": "Name", + "parts": [ + "Y" + ] + } + ], + "var": "e1" }, - "nodeType": "Stmt_Catch", - "stmts": [ - { - "attributes": { - "endFilePos": 76, - "endLine": 7, - "endTokenPos": 42, - "startFilePos": 75, - "startLine": 7, - "startTokenPos": 42 - }, - "name": "z", - "nodeType": "Expr_Variable" - } - ], - "types": [ - { - "attributes": { - "endFilePos": 58, - "endLine": 6, - "endTokenPos": 31, - "startFilePos": 57, - "startLine": 6, - "startTokenPos": 30 - }, - "nodeType": "Name_FullyQualified", - "parts": [ - "A" - ] + { + "attributes": { + "endFilePos": 79, + "endLine": 8, + "endTokenPos": 45, + "startFilePos": 50, + "startLine": 6, + "startTokenPos": 27 }, - { - "attributes": { - "endFilePos": 62, - "endLine": 6, - "endTokenPos": 35, - "startFilePos": 60, - "startLine": 6, - "startTokenPos": 33 + "nodeType": "Stmt_Catch", + "stmts": [ + { + "attributes": { + "endFilePos": 76, + "endLine": 7, + "endTokenPos": 42, + "startFilePos": 75, + "startLine": 7, + "startTokenPos": 42 + }, + "name": "z", + "nodeType": "Expr_Variable" + } + ], + "types": [ + { + "attributes": { + "endFilePos": 58, + "endLine": 6, + "endTokenPos": 31, + "startFilePos": 57, + "startLine": 6, + "startTokenPos": 30 + }, + "nodeType": "Name_FullyQualified", + "parts": [ + "A" + ] }, - "nodeType": "Name", - "parts": [ - "B", - "C" - ] - } - ], - "var": "e2" - } - ], - "finally": null, - "nodeType": "Stmt_TryCatch", - "stmts": [ - { - "attributes": { - "endFilePos": 17, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 16, - "startLine": 3, - "startTokenPos": 5 - }, - "name": "x", - "nodeType": "Expr_Variable" - } - ] - } - ] + { + "attributes": { + "endFilePos": 62, + "endLine": 6, + "endTokenPos": 35, + "startFilePos": 60, + "startLine": 6, + "startTokenPos": 33 + }, + "nodeType": "Name", + "parts": [ + "B", + "C" + ] + } + ], + "var": "e2" + } + ], + "finally": null, + "nodeType": "Stmt_TryCatch", + "stmts": [ + { + "attributes": { + "endFilePos": 17, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 16, + "startLine": 3, + "startTokenPos": 5 + }, + "name": "x", + "nodeType": "Expr_Variable" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/multicatch.php.uast b/fixtures/multicatch.php.uast index 20e362a..b401175 100644 --- a/fixtures/multicatch.php.uast +++ b/fixtures/multicatch.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_TryCatch { . . . Roles: Statement,Try @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Expression,Body -. . . . . TOKEN "x" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 16 . . . . . . Line: 3 @@ -37,9 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "x" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Stmt_Catch { -. . . . . Roles: Statement,Catch +. . . . . Roles: Catch,Type . . . . . TOKEN "e1" . . . . . StartPosition: { . . . . . . Offset: 22 @@ -56,7 +64,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . TOKEN "X" . . . . . . . StartPosition: { . . . . . . . . Offset: 29 @@ -73,7 +81,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Name { -. . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . TOKEN "Y" . . . . . . . StartPosition: { . . . . . . . . Offset: 31 @@ -90,8 +98,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Expression,Body -. . . . . . . TOKEN "y" +. . . . . . . Roles: Body,Catch,Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 44 . . . . . . . . Line: 5 @@ -105,11 +112,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: stmts . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "y" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 2: Stmt_Catch { -. . . . . Roles: Statement,Catch +. . . . . Roles: Catch,Type . . . . . TOKEN "e2" . . . . . StartPosition: { . . . . . . Offset: 50 @@ -126,8 +142,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name_FullyQualified { -. . . . . . . Roles: Expression,Variable,Incomplete,Catch,Type -. . . . . . . TOKEN "A" +. . . . . . . Roles: Catch,Expression,Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 57 . . . . . . . . Line: 6 @@ -141,9 +156,17 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: types . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: { +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: parts +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Name { -. . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . TOKEN "B\C" . . . . . . . StartPosition: { . . . . . . . . Offset: 60 @@ -160,8 +183,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Expression,Body -. . . . . . . TOKEN "z" +. . . . . . . Roles: Body,Catch,Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 75 . . . . . . . . Line: 7 @@ -175,6 +197,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: stmts . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "z" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/namespace_braced.php.native b/fixtures/namespace_braced.php.native index 659ea72..d16bbf0 100644 --- a/fixtures/namespace_braced.php.native +++ b/fixtures/namespace_braced.php.native @@ -2,44 +2,36 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 5, - "endTokenPos": 13, - "kind": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 23, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 17, + "endFilePos": 36, + "endLine": 5, + "endTokenPos": 13, + "kind": 2, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "Foo", - "Bar" - ] - }, - "nodeType": "Stmt_Namespace", - "stmts": [ - { + "name": { "attributes": { - "endFilePos": 33, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 31, - "startLine": 4, - "startTokenPos": 10 + "endFilePos": 23, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 4 }, - "name": { + "nodeType": "Name", + "parts": [ + "Foo", + "Bar" + ] + }, + "nodeType": "Stmt_Namespace", + "stmts": [ + { "attributes": { "endFilePos": 33, "endLine": 4, @@ -48,38 +40,38 @@ "startLine": 4, "startTokenPos": 10 }, - "nodeType": "Name", - "parts": [ - "foo" - ] - }, - "nodeType": "Expr_ConstFetch" - } - ] - }, - { - "attributes": { - "endFilePos": 59, - "endLine": 8, - "endTokenPos": 22, - "kind": 2, - "startFilePos": 38, - "startLine": 6, - "startTokenPos": 15 + "name": { + "attributes": { + "endFilePos": 33, + "endLine": 4, + "endTokenPos": 10, + "startFilePos": 31, + "startLine": 4, + "startTokenPos": 10 + }, + "nodeType": "Name", + "parts": [ + "foo" + ] + }, + "nodeType": "Expr_ConstFetch" + } + ] }, - "name": null, - "nodeType": "Stmt_Namespace", - "stmts": [ - { - "attributes": { - "endFilePos": 56, - "endLine": 7, - "endTokenPos": 19, - "startFilePos": 54, - "startLine": 7, - "startTokenPos": 19 - }, - "name": { + { + "attributes": { + "endFilePos": 59, + "endLine": 8, + "endTokenPos": 22, + "kind": 2, + "startFilePos": 38, + "startLine": 6, + "startTokenPos": 15 + }, + "name": null, + "nodeType": "Stmt_Namespace", + "stmts": [ + { "attributes": { "endFilePos": 56, "endLine": 7, @@ -88,14 +80,25 @@ "startLine": 7, "startTokenPos": 19 }, - "nodeType": "Name", - "parts": [ - "bar" - ] - }, - "nodeType": "Expr_ConstFetch" - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 56, + "endLine": 7, + "endTokenPos": 19, + "startFilePos": 54, + "startLine": 7, + "startTokenPos": 19 + }, + "nodeType": "Name", + "parts": [ + "bar" + ] + }, + "nodeType": "Expr_ConstFetch" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/namespace_braced.php.uast b/fixtures/namespace_braced.php.uast index 474b4f8..5198ea8 100644 --- a/fixtures/namespace_braced.php.uast +++ b/fixtures/namespace_braced.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Namespace { . . . Roles: Block @@ -39,7 +39,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ConstFetch { -. . . . . Roles: Expression,Body,Variable,Incomplete +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 4 @@ -92,7 +92,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ConstFetch { -. . . . . Roles: Expression,Body,Variable,Incomplete +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 54 . . . . . . Line: 7 diff --git a/fixtures/namespace_commentAfter.php.native b/fixtures/namespace_commentAfter.php.native index d8236dc..708108e 100644 --- a/fixtures/namespace_commentAfter.php.native +++ b/fixtures/namespace_commentAfter.php.native @@ -2,46 +2,49 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 21, - "endLine": 2, - "endTokenPos": 6, - "kind": 2, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "name": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 18, + "endFilePos": 21, "endLine": 2, - "endTokenPos": 3, - "startFilePos": 16, + "endTokenPos": 6, + "kind": 2, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "nodeType": "Name", - "parts": [ - "Foo" - ] - }, - "nodeType": "Stmt_Namespace", - "stmts": [] - }, - { - "attributes": { - "comments": [ - { - "filePos": 23, - "line": 3, - "nodeType": "Comment", - "text": "// Comment\n" - } - ] + "name": { + "attributes": { + "endFilePos": 18, + "endLine": 2, + "endTokenPos": 3, + "startFilePos": 16, + "startLine": 2, + "startTokenPos": 3 + }, + "nodeType": "Name", + "parts": [ + "Foo" + ] + }, + "nodeType": "Stmt_Namespace", + "stmts": [] }, - "nodeType": "Stmt_Nop" - } - ] + { + "attributes": { + "comments": [ + { + "filePos": 23, + "line": 3, + "nodeType": "Comment", + "text": "// Comment\n" + } + ] + }, + "nodeType": "Stmt_Nop" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/namespace_commentAfter.php.uast b/fixtures/namespace_commentAfter.php.uast index a933cc3..89b6f76 100644 --- a/fixtures/namespace_commentAfter.php.uast +++ b/fixtures/namespace_commentAfter.php.uast @@ -2,10 +2,38 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { -. . 0: Stmt_Namespace { +. . 0: Stmt_Nop { +. . . Roles: Noop +. . . Properties: { +. . . . internalRole: children +. . . } +. . . Children: { +. . . . 0: { +. . . . . Properties: { +. . . . . . internalRole: attributes +. . . . . } +. . . . . Children: { +. . . . . . 0: Comment { +. . . . . . . Roles: Comment,Noop +. . . . . . . TOKEN " Comment +" +. . . . . . . StartPosition: { +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 +. . . . . . . . Col: 1 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . internalRole: comments +. . . . . . . } +. . . . . . } +. . . . . } +. . . . } +. . . } +. . } +. . 1: Stmt_Namespace { . . . Roles: Block . . . StartPosition: { . . . . Offset: 6 @@ -40,32 +68,6 @@ File { . . . . } . . . } . . } -. . 1: Stmt_Nop { -. . . Roles: Noop -. . . Properties: { -. . . . internalRole: children -. . . } -. . . Children: { -. . . . 0: Comment { -. . . . . Roles: Noop,Comment -. . . . . TOKEN " Comment -" -. . . . . StartPosition: { -. . . . . . Offset: 23 -. . . . . . Line: 3 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 34 -. . . . . . Line: 4 -. . . . . . Col: 1 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: attributes -. . . . . } -. . . . } -. . . } -. . } . } } diff --git a/fixtures/namespace_names.php.native b/fixtures/namespace_names.php.native index 0e71f39..546c856 100644 --- a/fixtures/namespace_names.php.native +++ b/fixtures/namespace_names.php.native @@ -2,17 +2,9 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 7, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 7, "endLine": 3, @@ -21,23 +13,23 @@ "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - { - "attributes": { - "endFilePos": 12, - "endLine": 4, - "endTokenPos": 7, - "startFilePos": 10, - "startLine": 4, - "startTokenPos": 5 + "name": { + "attributes": { + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "name": { + { "attributes": { "endFilePos": 12, "endLine": 4, @@ -46,24 +38,24 @@ "startLine": 4, "startTokenPos": 5 }, - "nodeType": "Name", - "parts": [ - "A", - "B" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - { - "attributes": { - "endFilePos": 18, - "endLine": 5, - "endTokenPos": 13, - "startFilePos": 15, - "startLine": 5, - "startTokenPos": 10 + "name": { + "attributes": { + "endFilePos": 12, + "endLine": 4, + "endTokenPos": 7, + "startFilePos": 10, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Name", + "parts": [ + "A", + "B" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "name": { + { "attributes": { "endFilePos": 18, "endLine": 5, @@ -72,24 +64,24 @@ "startLine": 5, "startTokenPos": 10 }, - "nodeType": "Name_FullyQualified", - "parts": [ - "A", - "B" - ] - }, - "nodeType": "Expr_ConstFetch" - }, - { - "attributes": { - "endFilePos": 33, - "endLine": 6, - "endTokenPos": 20, - "startFilePos": 21, - "startLine": 6, - "startTokenPos": 16 + "name": { + "attributes": { + "endFilePos": 18, + "endLine": 5, + "endTokenPos": 13, + "startFilePos": 15, + "startLine": 5, + "startTokenPos": 10 + }, + "nodeType": "Name_FullyQualified", + "parts": [ + "A", + "B" + ] + }, + "nodeType": "Expr_ConstFetch" }, - "name": { + { "attributes": { "endFilePos": 33, "endLine": 6, @@ -98,13 +90,24 @@ "startLine": 6, "startTokenPos": 16 }, - "nodeType": "Name_Relative", - "parts": [ - "A", - "B" - ] - }, - "nodeType": "Expr_ConstFetch" - } - ] + "name": { + "attributes": { + "endFilePos": 33, + "endLine": 6, + "endTokenPos": 20, + "startFilePos": 21, + "startLine": 6, + "startTokenPos": 16 + }, + "nodeType": "Name_Relative", + "parts": [ + "A", + "B" + ] + }, + "nodeType": "Expr_ConstFetch" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/namespace_names.php.uast b/fixtures/namespace_names.php.uast index aca1982..e51c232 100644 --- a/fixtures/namespace_names.php.uast +++ b/fixtures/namespace_names.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ConstFetch { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -41,7 +41,7 @@ File { . . . } . . } . . 1: Expr_ConstFetch { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 10 . . . . Line: 4 @@ -76,7 +76,7 @@ File { . . . } . . } . . 2: Expr_ConstFetch { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 15 . . . . Line: 5 @@ -92,8 +92,7 @@ File { . . . } . . . Children: { . . . . 0: Name_FullyQualified { -. . . . . Roles: Expression,Variable,Incomplete -. . . . . TOKEN "A\B" +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 5 @@ -107,11 +106,25 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: { +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: parts +. . . . . . . } +. . . . . . } +. . . . . . 1: { +. . . . . . . TOKEN "B" +. . . . . . . Properties: { +. . . . . . . . internalRole: parts +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_ConstFetch { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 21 . . . . Line: 6 @@ -127,8 +140,7 @@ File { . . . } . . . Children: { . . . . 0: Name_Relative { -. . . . . Roles: Expression,Identifier,Qualified,Incomplete -. . . . . TOKEN "A\B" +. . . . . Roles: Expression,Identifier,Incomplete,Qualified . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 6 @@ -142,6 +154,20 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: { +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: parts +. . . . . . . } +. . . . . . } +. . . . . . 1: { +. . . . . . . TOKEN "B" +. . . . . . . Properties: { +. . . . . . . . internalRole: parts +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/namespace_notBraced.php.native b/fixtures/namespace_notBraced.php.native index 0bf2af2..ab1b711 100644 --- a/fixtures/namespace_notBraced.php.native +++ b/fixtures/namespace_notBraced.php.native @@ -2,44 +2,36 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 3, - "endTokenPos": 7, - "kind": 1, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 23, + "endFilePos": 24, "endLine": 3, - "endTokenPos": 6, - "startFilePos": 17, + "endTokenPos": 7, + "kind": 1, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "Foo", - "Bar" - ] - }, - "nodeType": "Stmt_Namespace", - "stmts": [ - { + "name": { "attributes": { - "endFilePos": 28, - "endLine": 4, - "endTokenPos": 9, - "startFilePos": 26, - "startLine": 4, - "startTokenPos": 9 + "endFilePos": 23, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 4 }, - "name": { + "nodeType": "Name", + "parts": [ + "Foo", + "Bar" + ] + }, + "nodeType": "Stmt_Namespace", + "stmts": [ + { "attributes": { "endFilePos": 28, "endLine": 4, @@ -48,51 +40,51 @@ "startLine": 4, "startTokenPos": 9 }, - "nodeType": "Name", - "parts": [ - "foo" - ] - }, - "nodeType": "Expr_ConstFetch" - } - ] - }, - { - "attributes": { - "endFilePos": 45, - "endLine": 6, - "endTokenPos": 15, - "kind": 1, - "startFilePos": 32, - "startLine": 6, - "startTokenPos": 12 + "name": { + "attributes": { + "endFilePos": 28, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 26, + "startLine": 4, + "startTokenPos": 9 + }, + "nodeType": "Name", + "parts": [ + "foo" + ] + }, + "nodeType": "Expr_ConstFetch" + } + ] }, - "name": { + { "attributes": { - "endFilePos": 44, + "endFilePos": 45, "endLine": 6, - "endTokenPos": 14, - "startFilePos": 42, + "endTokenPos": 15, + "kind": 1, + "startFilePos": 32, "startLine": 6, - "startTokenPos": 14 + "startTokenPos": 12 }, - "nodeType": "Name", - "parts": [ - "Bar" - ] - }, - "nodeType": "Stmt_Namespace", - "stmts": [ - { + "name": { "attributes": { - "endFilePos": 49, - "endLine": 7, - "endTokenPos": 17, - "startFilePos": 47, - "startLine": 7, - "startTokenPos": 17 + "endFilePos": 44, + "endLine": 6, + "endTokenPos": 14, + "startFilePos": 42, + "startLine": 6, + "startTokenPos": 14 }, - "name": { + "nodeType": "Name", + "parts": [ + "Bar" + ] + }, + "nodeType": "Stmt_Namespace", + "stmts": [ + { "attributes": { "endFilePos": 49, "endLine": 7, @@ -101,14 +93,25 @@ "startLine": 7, "startTokenPos": 17 }, - "nodeType": "Name", - "parts": [ - "bar" - ] - }, - "nodeType": "Expr_ConstFetch" - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 49, + "endLine": 7, + "endTokenPos": 17, + "startFilePos": 47, + "startLine": 7, + "startTokenPos": 17 + }, + "nodeType": "Name", + "parts": [ + "bar" + ] + }, + "nodeType": "Expr_ConstFetch" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/namespace_notBraced.php.uast b/fixtures/namespace_notBraced.php.uast index 391fedf..919ca76 100644 --- a/fixtures/namespace_notBraced.php.uast +++ b/fixtures/namespace_notBraced.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Namespace { . . . Roles: Block @@ -39,7 +39,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ConstFetch { -. . . . . Roles: Expression,Body,Variable,Incomplete +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 26 . . . . . . Line: 4 @@ -109,7 +109,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ConstFetch { -. . . . . Roles: Expression,Body,Variable,Incomplete +. . . . . Roles: Expression,Incomplete,Variable . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 7 diff --git a/fixtures/new.php.native b/fixtures/new.php.native index c133500..a7b3d4a 100644 --- a/fixtures/new.php.native +++ b/fixtures/new.php.native @@ -2,48 +2,37 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [], - "attributes": { - "endFilePos": 11, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "class": { + "ast": { + "children": [ + { + "args": [], "attributes": { "endFilePos": 11, "endLine": 3, "endTokenPos": 4, - "startFilePos": 11, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" - }, - { - "args": [ - { + "class": { "attributes": { - "endFilePos": 21, - "endLine": 4, - "endTokenPos": 11, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 11 + "endFilePos": 11, + "endLine": 3, + "endTokenPos": 4, + "startFilePos": 11, + "startLine": 3, + "startTokenPos": 4 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" + }, + { + "args": [ + { "attributes": { "endFilePos": 21, "endLine": 4, @@ -52,390 +41,404 @@ "startLine": 4, "startTokenPos": 11 }, - "name": "b", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 11, + "startFilePos": 20, + "startLine": 4, + "startTokenPos": 11 + }, + "name": "b", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 12, - "startFilePos": 14, - "startLine": 4, - "startTokenPos": 7 - }, - "class": { + ], "attributes": { - "endFilePos": 18, + "endFilePos": 22, "endLine": 4, - "endTokenPos": 9, - "startFilePos": 18, + "endTokenPos": 12, + "startFilePos": 14, "startLine": 4, - "startTokenPos": 9 + "startTokenPos": 7 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "comments": [ - { - "filePos": 26, - "line": 6, - "nodeType": "Comment", - "text": "// class name variations\n" - } - ], - "endFilePos": 58, - "endLine": 7, - "endTokenPos": 20, - "startFilePos": 51, - "startLine": 7, - "startTokenPos": 16 + "class": { + "attributes": { + "endFilePos": 18, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 18, + "startLine": 4, + "startTokenPos": 9 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 56, + "comments": [ + { + "filePos": 26, + "line": 6, + "nodeType": "Comment", + "text": "// class name variations\n" + } + ], + "endFilePos": 58, "endLine": 7, - "endTokenPos": 18, - "startFilePos": 55, + "endTokenPos": 20, + "startFilePos": 51, "startLine": 7, - "startTokenPos": 18 + "startTokenPos": 16 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 73, - "endLine": 8, - "endTokenPos": 30, - "startFilePos": 61, - "startLine": 8, - "startTokenPos": 23 + "class": { + "attributes": { + "endFilePos": 56, + "endLine": 7, + "endTokenPos": 18, + "startFilePos": 55, + "startLine": 7, + "startTokenPos": 18 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 71, + "endFilePos": 73, "endLine": 8, - "endTokenPos": 28, - "startFilePos": 65, + "endTokenPos": 30, + "startFilePos": 61, "startLine": 8, - "startTokenPos": 25 + "startTokenPos": 23 }, - "dim": { - "attributes": { - "endFilePos": 70, - "endLine": 8, - "endTokenPos": 27, - "kind": 1, - "startFilePos": 68, - "startLine": 8, - "startTokenPos": 27 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 66, + "endFilePos": 71, "endLine": 8, - "endTokenPos": 25, + "endTokenPos": 28, "startFilePos": 65, "startLine": 8, "startTokenPos": 25 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 86, - "endLine": 9, - "endTokenPos": 39, - "startFilePos": 76, - "startLine": 9, - "startTokenPos": 33 + "dim": { + "attributes": { + "endFilePos": 70, + "endLine": 8, + "endTokenPos": 27, + "kind": 1, + "startFilePos": 68, + "startLine": 8, + "startTokenPos": 27 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 66, + "endLine": 8, + "endTokenPos": 25, + "startFilePos": 65, + "startLine": 8, + "startTokenPos": 25 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 84, + "endFilePos": 86, "endLine": 9, - "endTokenPos": 37, - "startFilePos": 80, + "endTokenPos": 39, + "startFilePos": 76, "startLine": 9, - "startTokenPos": 35 + "startTokenPos": 33 }, "class": { "attributes": { - "endFilePos": 80, + "endFilePos": 84, "endLine": 9, - "endTokenPos": 35, + "endTokenPos": 37, "startFilePos": 80, "startLine": 9, "startTokenPos": 35 }, - "nodeType": "Name", - "parts": [ - "A" - ] + "class": { + "attributes": { + "endFilePos": 80, + "endLine": 9, + "endTokenPos": 35, + "startFilePos": 80, + "startLine": 9, + "startTokenPos": 35 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" + "nodeType": "Expr_New" }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "comments": [ - { - "filePos": 89, - "line": 10, - "nodeType": "Comment", - "text": "// DNCR object access\n" - } - ], - "endFilePos": 121, - "endLine": 11, - "endTokenPos": 49, - "startFilePos": 111, - "startLine": 11, - "startTokenPos": 43 - }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 119, + "comments": [ + { + "filePos": 89, + "line": 10, + "nodeType": "Comment", + "text": "// DNCR object access\n" + } + ], + "endFilePos": 121, "endLine": 11, - "endTokenPos": 47, - "startFilePos": 115, + "endTokenPos": 49, + "startFilePos": 111, "startLine": 11, - "startTokenPos": 45 + "startTokenPos": 43 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", - "var": { + "class": { "attributes": { - "endFilePos": 116, + "endFilePos": 119, "endLine": 11, - "endTokenPos": 45, + "endTokenPos": 47, "startFilePos": 115, "startLine": 11, "startTokenPos": 45 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 137, - "endLine": 12, - "endTokenPos": 60, - "startFilePos": 124, - "startLine": 12, - "startTokenPos": 52 + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 116, + "endLine": 11, + "endTokenPos": 45, + "startFilePos": 115, + "startLine": 11, + "startTokenPos": 45 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 135, + "endFilePos": 137, "endLine": 12, - "endTokenPos": 58, - "startFilePos": 128, + "endTokenPos": 60, + "startFilePos": 124, "startLine": 12, - "startTokenPos": 54 + "startTokenPos": 52 }, - "name": "c", - "nodeType": "Expr_PropertyFetch", - "var": { + "class": { "attributes": { - "endFilePos": 132, + "endFilePos": 135, "endLine": 12, - "endTokenPos": 56, + "endTokenPos": 58, "startFilePos": 128, "startLine": 12, "startTokenPos": 54 }, - "name": "b", + "name": "c", "nodeType": "Expr_PropertyFetch", "var": { "attributes": { - "endFilePos": 129, + "endFilePos": 132, "endLine": 12, - "endTokenPos": 54, + "endTokenPos": 56, "startFilePos": 128, "startLine": 12, "startTokenPos": 54 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 129, + "endLine": 12, + "endTokenPos": 54, + "startFilePos": 128, + "startLine": 12, + "startTokenPos": 54 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 155, - "endLine": 13, - "endTokenPos": 72, - "startFilePos": 140, - "startLine": 13, - "startTokenPos": 63 + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 153, + "endFilePos": 155, "endLine": 13, - "endTokenPos": 70, - "startFilePos": 144, + "endTokenPos": 72, + "startFilePos": 140, "startLine": 13, - "startTokenPos": 65 - }, - "dim": { - "attributes": { - "endFilePos": 152, - "endLine": 13, - "endTokenPos": 69, - "kind": 1, - "startFilePos": 150, - "startLine": 13, - "startTokenPos": 69 - }, - "nodeType": "Scalar_String", - "value": "c" + "startTokenPos": 63 }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 148, + "endFilePos": 153, "endLine": 13, - "endTokenPos": 67, + "endTokenPos": 70, "startFilePos": 144, "startLine": 13, "startTokenPos": 65 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", + "dim": { + "attributes": { + "endFilePos": 152, + "endLine": 13, + "endTokenPos": 69, + "kind": 1, + "startFilePos": 150, + "startLine": 13, + "startTokenPos": 69 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 145, + "endFilePos": 148, "endLine": 13, - "endTokenPos": 65, + "endTokenPos": 67, "startFilePos": 144, "startLine": 13, "startTokenPos": 65 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 145, + "endLine": 13, + "endTokenPos": 65, + "startFilePos": 144, + "startLine": 13, + "startTokenPos": 65 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 173, - "endLine": 14, - "endTokenPos": 84, - "startFilePos": 158, - "startLine": 14, - "startTokenPos": 75 + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 171, + "endFilePos": 173, "endLine": 14, - "endTokenPos": 82, - "startFilePos": 162, + "endTokenPos": 84, + "startFilePos": 158, "startLine": 14, - "startTokenPos": 77 + "startTokenPos": 75 }, - "dim": { - "attributes": { - "endFilePos": 170, - "endLine": 14, - "endTokenPos": 81, - "kind": 1, - "startFilePos": 168, - "startLine": 14, - "startTokenPos": 81 - }, - "nodeType": "Scalar_String", - "value": "c" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 166, + "endFilePos": 171, "endLine": 14, - "endTokenPos": 79, + "endTokenPos": 82, "startFilePos": 162, "startLine": 14, "startTokenPos": 77 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", + "dim": { + "attributes": { + "endFilePos": 170, + "endLine": 14, + "endTokenPos": 81, + "kind": 1, + "startFilePos": 168, + "startLine": 14, + "startTokenPos": 81 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 163, + "endFilePos": 166, "endLine": 14, - "endTokenPos": 77, + "endTokenPos": 79, "startFilePos": 162, "startLine": 14, "startTokenPos": 77 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 163, + "endLine": 14, + "endTokenPos": 77, + "startFilePos": 162, + "startLine": 14, + "startTokenPos": 77 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 240, - "endLine": 17, - "endTokenPos": 91, - "startFilePos": 236, - "startLine": 17, - "startTokenPos": 89 + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { "endFilePos": 240, "endLine": 17, "endTokenPos": 91, - "startFilePos": 240, + "startFilePos": 236, "startLine": 17, - "startTokenPos": 91 + "startTokenPos": 89 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" - } - ] + "class": { + "attributes": { + "endFilePos": 240, + "endLine": 17, + "endTokenPos": 91, + "startFilePos": 240, + "startLine": 17, + "startTokenPos": 91 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/new.php.uast b/fixtures/new.php.uast index 70cee55..cfc9d28 100644 --- a/fixtures/new.php.uast +++ b/fixtures/new.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . Roles: Expression,Identifier,Type . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 11 @@ -42,8 +41,7 @@ File { . . . } . . } . . 1: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 14 . . . . Line: 4 @@ -59,7 +57,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . Roles: Expression,Identifier,Type . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 18 @@ -95,7 +93,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "b" . . . . . . . StartPosition: { . . . . . . . . Offset: 20 . . . . . . . . Line: 4 @@ -109,14 +106,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: value . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 2: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 51 . . . . Line: 7 @@ -132,26 +137,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " class name variations " . . . . . StartPosition: { -. . . . . . Offset: 26 -. . . . . . Line: 6 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 51 -. . . . . . Line: 7 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Type -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 55 . . . . . . Line: 7 @@ -165,12 +164,20 @@ File { . . . . . Properties: { . . . . . . internalRole: class . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 61 . . . . Line: 8 @@ -186,7 +193,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Type +. . . . . Roles: Entry,Expression,List,Type,Value . . . . . StartPosition: { . . . . . . Offset: 65 . . . . . . Line: 8 @@ -203,7 +210,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 65 . . . . . . . . Line: 8 @@ -217,6 +223,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -240,8 +255,7 @@ File { . . . } . . } . . 4: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 76 . . . . Line: 9 @@ -257,8 +271,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete,Type -. . . . . TOKEN "b" +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 80 . . . . . . Line: 9 @@ -274,7 +287,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 80 @@ -295,8 +315,7 @@ File { . . . } . . } . . 5: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 111 . . . . Line: 11 @@ -312,26 +331,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " DNCR object access " . . . . . StartPosition: { -. . . . . . Offset: 89 -. . . . . . Line: 10 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 111 -. . . . . . Line: 11 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Type -. . . . . TOKEN "b" +. . . . . Roles: Entry,Expression,Identifier,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 115 . . . . . . Line: 11 @@ -346,9 +359,15 @@ File { . . . . . . internalRole: class . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 115 . . . . . . . . Line: 11 @@ -362,14 +381,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 6: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 124 . . . . Line: 12 @@ -385,8 +412,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Type -. . . . . TOKEN "c" +. . . . . Roles: Entry,Expression,Identifier,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 128 . . . . . . Line: 12 @@ -401,9 +427,15 @@ File { . . . . . . internalRole: class . . . . . } . . . . . Children: { -. . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . . . TOKEN "b" +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_PropertyFetch { +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 128 . . . . . . . . Line: 12 @@ -418,9 +450,15 @@ File { . . . . . . . . internalRole: var . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 128 . . . . . . . . . . Line: 12 @@ -434,6 +472,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -442,8 +489,7 @@ File { . . . } . . } . . 7: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 140 . . . . Line: 13 @@ -459,7 +505,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Type +. . . . . Roles: Entry,Expression,List,Type,Value . . . . . StartPosition: { . . . . . . Offset: 144 . . . . . . Line: 13 @@ -475,8 +521,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . . . TOKEN "b" +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 144 . . . . . . . . Line: 13 @@ -491,9 +536,15 @@ File { . . . . . . . . internalRole: var . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 144 . . . . . . . . . . Line: 13 @@ -507,6 +558,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -532,8 +592,7 @@ File { . . . } . . } . . 8: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 158 . . . . Line: 14 @@ -549,7 +608,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Type +. . . . . Roles: Entry,Expression,List,Type,Value . . . . . StartPosition: { . . . . . . Offset: 162 . . . . . . Line: 14 @@ -565,8 +624,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . . . TOKEN "b" +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 162 . . . . . . . . Line: 14 @@ -581,9 +639,15 @@ File { . . . . . . . . internalRole: var . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_Variable { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 162 . . . . . . . . . . Line: 14 @@ -597,6 +661,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -622,8 +695,7 @@ File { . . . } . . } . . 9: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 236 . . . . Line: 17 @@ -639,7 +711,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . Roles: Expression,Identifier,Type . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 240 diff --git a/fixtures/new2.php.native b/fixtures/new2.php.native index 1c1e694..4e112f0 100644 --- a/fixtures/new2.php.native +++ b/fixtures/new2.php.native @@ -2,308 +2,311 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [], - "attributes": { - "endFilePos": 19, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "class": { + "ast": { + "children": [ + { + "args": [], "attributes": { "endFilePos": 19, "endLine": 2, "endTokenPos": 3, - "startFilePos": 10, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "name": "className", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 44, - "endLine": 3, - "endTokenPos": 11, - "startFilePos": 22, - "startLine": 3, - "startTokenPos": 6 + "class": { + "attributes": { + "endFilePos": 19, + "endLine": 2, + "endTokenPos": 3, + "startFilePos": 10, + "startLine": 2, + "startTokenPos": 3 + }, + "name": "className", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { "endFilePos": 44, "endLine": 3, "endTokenPos": 11, - "startFilePos": 26, + "startFilePos": 22, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 6 }, - "dim": { - "attributes": { - "endFilePos": 43, - "endLine": 3, - "endTokenPos": 10, - "kind": 1, - "startFilePos": 33, - "startLine": 3, - "startTokenPos": 10 - }, - "nodeType": "Scalar_String", - "value": "className" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 31, + "endFilePos": 44, "endLine": 3, - "endTokenPos": 8, + "endTokenPos": 11, "startFilePos": 26, "startLine": 3, "startTokenPos": 8 }, - "name": "array", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 69, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 47, - "startLine": 4, - "startTokenPos": 14 + "dim": { + "attributes": { + "endFilePos": 43, + "endLine": 3, + "endTokenPos": 10, + "kind": 1, + "startFilePos": 33, + "startLine": 3, + "startTokenPos": 10 + }, + "nodeType": "Scalar_String", + "value": "className" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 31, + "endLine": 3, + "endTokenPos": 8, + "startFilePos": 26, + "startLine": 3, + "startTokenPos": 8 + }, + "name": "array", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { "endFilePos": 69, "endLine": 4, "endTokenPos": 19, - "startFilePos": 51, + "startFilePos": 47, "startLine": 4, - "startTokenPos": 16 + "startTokenPos": 14 }, - "dim": { - "attributes": { - "endFilePos": 68, - "endLine": 4, - "endTokenPos": 18, - "kind": 1, - "startFilePos": 58, - "startLine": 4, - "startTokenPos": 18 - }, - "nodeType": "Scalar_String", - "value": "className" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 56, + "endFilePos": 69, "endLine": 4, - "endTokenPos": 16, + "endTokenPos": 19, "startFilePos": 51, "startLine": 4, "startTokenPos": 16 }, - "name": "array", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 90, - "endLine": 5, - "endTokenPos": 26, - "startFilePos": 72, - "startLine": 5, - "startTokenPos": 22 + "dim": { + "attributes": { + "endFilePos": 68, + "endLine": 4, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 58, + "startLine": 4, + "startTokenPos": 18 + }, + "nodeType": "Scalar_String", + "value": "className" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 56, + "endLine": 4, + "endTokenPos": 16, + "startFilePos": 51, + "startLine": 4, + "startTokenPos": 16 + }, + "name": "array", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { "endFilePos": 90, "endLine": 5, "endTokenPos": 26, - "startFilePos": 76, + "startFilePos": 72, "startLine": 5, - "startTokenPos": 24 + "startTokenPos": 22 }, - "name": "className", - "nodeType": "Expr_PropertyFetch", - "var": { + "class": { "attributes": { - "endFilePos": 79, + "endFilePos": 90, "endLine": 5, - "endTokenPos": 24, + "endTokenPos": 26, "startFilePos": 76, "startLine": 5, "startTokenPos": 24 }, - "name": "obj", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 112, - "endLine": 6, - "endTokenPos": 33, - "startFilePos": 93, - "startLine": 6, - "startTokenPos": 29 + "name": "className", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 79, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 76, + "startLine": 5, + "startTokenPos": 24 + }, + "name": "obj", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Expr_New" }, - "class": { + { + "args": [], "attributes": { "endFilePos": 112, "endLine": 6, "endTokenPos": 33, - "startFilePos": 97, + "startFilePos": 93, "startLine": 6, - "startTokenPos": 31 + "startTokenPos": 29 }, "class": { "attributes": { - "endFilePos": 100, + "endFilePos": 112, "endLine": 6, - "endTokenPos": 31, + "endTokenPos": 33, "startFilePos": 97, "startLine": 6, "startTokenPos": 31 }, - "nodeType": "Name", - "parts": [ - "Test" - ] + "class": { + "attributes": { + "endFilePos": 100, + "endLine": 6, + "endTokenPos": 31, + "startFilePos": 97, + "startLine": 6, + "startTokenPos": 31 + }, + "nodeType": "Name", + "parts": [ + "Test" + ] + }, + "name": "className", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": "className", - "nodeType": "Expr_StaticPropertyFetch" + "nodeType": "Expr_New" }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 135, - "endLine": 7, - "endTokenPos": 40, - "startFilePos": 115, - "startLine": 7, - "startTokenPos": 36 - }, - "class": { + { + "args": [], "attributes": { "endFilePos": 135, "endLine": 7, "endTokenPos": 40, - "startFilePos": 119, + "startFilePos": 115, "startLine": 7, - "startTokenPos": 38 + "startTokenPos": 36 }, "class": { "attributes": { - "endFilePos": 123, + "endFilePos": 135, "endLine": 7, - "endTokenPos": 38, + "endTokenPos": 40, "startFilePos": 119, "startLine": 7, "startTokenPos": 38 }, - "name": "test", - "nodeType": "Expr_Variable" + "class": { + "attributes": { + "endFilePos": 123, + "endLine": 7, + "endTokenPos": 38, + "startFilePos": 119, + "startLine": 7, + "startTokenPos": 38 + }, + "name": "test", + "nodeType": "Expr_Variable" + }, + "name": "className", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": "className", - "nodeType": "Expr_StaticPropertyFetch" + "nodeType": "Expr_New" }, - "nodeType": "Expr_New" - }, - { - "args": [], - "attributes": { - "endFilePos": 167, - "endLine": 8, - "endTokenPos": 52, - "startFilePos": 138, - "startLine": 8, - "startTokenPos": 43 - }, - "class": { + { + "args": [], "attributes": { "endFilePos": 167, "endLine": 8, "endTokenPos": 52, - "startFilePos": 142, + "startFilePos": 138, "startLine": 8, - "startTokenPos": 45 + "startTokenPos": 43 }, "class": { "attributes": { - "endFilePos": 155, + "endFilePos": 167, "endLine": 8, - "endTokenPos": 50, + "endTokenPos": 52, "startFilePos": 142, "startLine": 8, "startTokenPos": 45 }, - "name": "foo", - "nodeType": "Expr_PropertyFetch", - "var": { + "class": { "attributes": { - "endFilePos": 150, + "endFilePos": 155, "endLine": 8, - "endTokenPos": 48, + "endTokenPos": 50, "startFilePos": 142, "startLine": 8, "startTokenPos": 45 }, - "dim": { - "attributes": { - "endFilePos": 149, - "endLine": 8, - "endTokenPos": 47, - "kind": 10, - "startFilePos": 149, - "startLine": 8, - "startTokenPos": 47 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_ArrayDimFetch", + "name": "foo", + "nodeType": "Expr_PropertyFetch", "var": { "attributes": { - "endFilePos": 147, + "endFilePos": 150, "endLine": 8, - "endTokenPos": 45, + "endTokenPos": 48, "startFilePos": 142, "startLine": 8, "startTokenPos": 45 }, - "name": "weird", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 149, + "endLine": 8, + "endTokenPos": 47, + "kind": 10, + "startFilePos": 149, + "startLine": 8, + "startTokenPos": 47 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 147, + "endLine": 8, + "endTokenPos": 45, + "startFilePos": 142, + "startLine": 8, + "startTokenPos": 45 + }, + "name": "weird", + "nodeType": "Expr_Variable" + } } - } + }, + "name": "className", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": "className", - "nodeType": "Expr_StaticPropertyFetch" - }, - "nodeType": "Expr_New" - } - ] + "nodeType": "Expr_New" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/new2.php.uast b/fixtures/new2.php.uast index 92fbbf9..18a9ecd 100644 --- a/fixtures/new2.php.uast +++ b/fixtures/new2.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Type -. . . . . TOKEN "className" +. . . . . Roles: Identifier,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 10 . . . . . . Line: 2 @@ -38,12 +36,20 @@ File { . . . . . Properties: { . . . . . . internalRole: class . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "className" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 22 . . . . Line: 3 @@ -59,7 +65,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Type +. . . . . Roles: Entry,Expression,List,Type,Value . . . . . StartPosition: { . . . . . . Offset: 26 . . . . . . Line: 3 @@ -76,7 +82,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "array" . . . . . . . StartPosition: { . . . . . . . . Offset: 26 . . . . . . . . Line: 3 @@ -90,6 +95,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "array" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -113,8 +127,7 @@ File { . . . } . . } . . 2: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 47 . . . . Line: 4 @@ -130,7 +143,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Type +. . . . . Roles: Entry,Expression,List,Type,Value . . . . . StartPosition: { . . . . . . Offset: 51 . . . . . . Line: 4 @@ -147,7 +160,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "array" . . . . . . . StartPosition: { . . . . . . . . Offset: 51 . . . . . . . . Line: 4 @@ -161,6 +173,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "array" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -184,8 +205,7 @@ File { . . . } . . } . . 3: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 72 . . . . Line: 5 @@ -201,8 +221,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Type -. . . . . TOKEN "className" +. . . . . Roles: Entry,Expression,Identifier,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 76 . . . . . . Line: 5 @@ -217,9 +236,15 @@ File { . . . . . . internalRole: class . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "className" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "obj" . . . . . . . StartPosition: { . . . . . . . . Offset: 76 . . . . . . . . Line: 5 @@ -233,14 +258,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "obj" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 4: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 93 . . . . Line: 6 @@ -256,8 +289,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete,Type -. . . . . TOKEN "className" +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 6 @@ -273,7 +305,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "className" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "Test" . . . . . . . StartPosition: { . . . . . . . . Offset: 97 @@ -294,8 +333,7 @@ File { . . . } . . } . . 5: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 115 . . . . Line: 7 @@ -311,8 +349,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete,Type -. . . . . TOKEN "className" +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 119 . . . . . . Line: 7 @@ -327,9 +364,15 @@ File { . . . . . . internalRole: class . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "className" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "test" . . . . . . . StartPosition: { . . . . . . . . Offset: 119 . . . . . . . . Line: 7 @@ -343,14 +386,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: class . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "test" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 6: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 138 . . . . Line: 8 @@ -366,8 +417,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete,Type -. . . . . TOKEN "className" +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Type,Value . . . . . StartPosition: { . . . . . . Offset: 142 . . . . . . Line: 8 @@ -382,9 +432,15 @@ File { . . . . . . internalRole: class . . . . . } . . . . . Children: { -. . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . . . TOKEN "foo" +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "className" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_PropertyFetch { +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 142 . . . . . . . . Line: 8 @@ -399,8 +455,15 @@ File { . . . . . . . . internalRole: class . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "foo" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Expr_ArrayDimFetch { +. . . . . . . . . Roles: Entry,Expression,List,Value . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 142 . . . . . . . . . . Line: 8 @@ -417,7 +480,6 @@ File { . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "weird" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 142 . . . . . . . . . . . . Line: 8 @@ -431,6 +493,15 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "weird" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Scalar_LNumber { . . . . . . . . . . . Roles: Expression,Literal,Number diff --git a/fixtures/new_deref.php.native b/fixtures/new_deref.php.native index 17fd393..314d190 100644 --- a/fixtures/new_deref.php.native +++ b/fixtures/new_deref.php.native @@ -2,207 +2,210 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 16, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": "b", - "nodeType": "Expr_PropertyFetch", - "var": { - "args": [], + "ast": { + "children": [ + { "attributes": { - "endFilePos": 12, + "endFilePos": 16, "endLine": 3, - "endTokenPos": 5, - "startFilePos": 8, + "endTokenPos": 8, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 3 + "startTokenPos": 2 }, - "class": { + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "args": [], "attributes": { "endFilePos": 12, "endLine": 3, "endTokenPos": 5, - "startFilePos": 12, + "startFilePos": 8, "startLine": 3, - "startTokenPos": 5 + "startTokenPos": 3 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" - } - }, - { - "args": [], - "attributes": { - "endFilePos": 30, - "endLine": 4, - "endTokenPos": 19, - "startFilePos": 19, - "startLine": 4, - "startTokenPos": 11 + "class": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 5 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" + } }, - "name": "b", - "nodeType": "Expr_MethodCall", - "var": { + { "args": [], "attributes": { - "endFilePos": 24, + "endFilePos": 30, "endLine": 4, - "endTokenPos": 14, - "startFilePos": 20, + "endTokenPos": 19, + "startFilePos": 19, "startLine": 4, - "startTokenPos": 12 + "startTokenPos": 11 }, - "class": { + "name": "b", + "nodeType": "Expr_MethodCall", + "var": { + "args": [], "attributes": { "endFilePos": 24, "endLine": 4, "endTokenPos": 14, - "startFilePos": 24, + "startFilePos": 20, "startLine": 4, - "startTokenPos": 14 + "startTokenPos": 12 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" - } - }, - { - "attributes": { - "endFilePos": 44, - "endLine": 5, - "endTokenPos": 29, - "startFilePos": 33, - "startLine": 5, - "startTokenPos": 22 + "class": { + "attributes": { + "endFilePos": 24, + "endLine": 4, + "endTokenPos": 14, + "startFilePos": 24, + "startLine": 4, + "startTokenPos": 14 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" + } }, - "dim": { + { "attributes": { - "endFilePos": 43, + "endFilePos": 44, "endLine": 5, - "endTokenPos": 28, - "kind": 1, - "startFilePos": 41, + "endTokenPos": 29, + "startFilePos": 33, "startLine": 5, - "startTokenPos": 28 + "startTokenPos": 22 }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "args": [], - "attributes": { - "endFilePos": 38, - "endLine": 5, - "endTokenPos": 25, - "startFilePos": 34, - "startLine": 5, - "startTokenPos": 23 + "dim": { + "attributes": { + "endFilePos": 43, + "endLine": 5, + "endTokenPos": 28, + "kind": 1, + "startFilePos": 41, + "startLine": 5, + "startTokenPos": 28 + }, + "nodeType": "Scalar_String", + "value": "b" }, - "class": { + "nodeType": "Expr_ArrayDimFetch", + "var": { + "args": [], "attributes": { "endFilePos": 38, "endLine": 5, "endTokenPos": 25, - "startFilePos": 38, + "startFilePos": 34, "startLine": 5, - "startTokenPos": 25 + "startTokenPos": 23 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" - } - }, - { - "attributes": { - "endFilePos": 63, - "endLine": 6, - "endTokenPos": 42, - "startFilePos": 47, - "startLine": 6, - "startTokenPos": 32 - }, - "dim": { - "attributes": { - "endFilePos": 62, - "endLine": 6, - "endTokenPos": 41, - "kind": 1, - "startFilePos": 60, - "startLine": 6, - "startTokenPos": 41 - }, - "nodeType": "Scalar_String", - "value": "c" + "class": { + "attributes": { + "endFilePos": 38, + "endLine": 5, + "endTokenPos": 25, + "startFilePos": 38, + "startLine": 5, + "startTokenPos": 25 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 58, + "endFilePos": 63, "endLine": 6, - "endTokenPos": 39, + "endTokenPos": 42, "startFilePos": 47, "startLine": 6, "startTokenPos": 32 }, "dim": { "attributes": { - "endFilePos": 57, + "endFilePos": 62, "endLine": 6, - "endTokenPos": 38, + "endTokenPos": 41, "kind": 1, - "startFilePos": 55, + "startFilePos": 60, "startLine": 6, - "startTokenPos": 38 + "startTokenPos": 41 }, "nodeType": "Scalar_String", - "value": "b" + "value": "c" }, "nodeType": "Expr_ArrayDimFetch", "var": { - "args": [], "attributes": { - "endFilePos": 52, + "endFilePos": 58, "endLine": 6, - "endTokenPos": 35, - "startFilePos": 48, + "endTokenPos": 39, + "startFilePos": 47, "startLine": 6, - "startTokenPos": 33 + "startTokenPos": 32 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 57, + "endLine": 6, + "endTokenPos": 38, + "kind": 1, + "startFilePos": 55, + "startLine": 6, + "startTokenPos": 38 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "args": [], "attributes": { "endFilePos": 52, "endLine": 6, "endTokenPos": 35, - "startFilePos": 52, + "startFilePos": 48, "startLine": 6, - "startTokenPos": 35 + "startTokenPos": 33 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "nodeType": "Expr_New" + "class": { + "attributes": { + "endFilePos": 52, + "endLine": 6, + "endTokenPos": 35, + "startFilePos": 52, + "startLine": 6, + "startTokenPos": 35 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "nodeType": "Expr_New" + } } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/new_deref.php.uast b/fixtures/new_deref.php.uast index f015a39..ba76ee3 100644 --- a/fixtures/new_deref.php.uast +++ b/fixtures/new_deref.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_PropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Map,Value . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_New { -. . . . . Roles: Expression,Initialization,Call -. . . . . TOKEN "new" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_New { +. . . . . Roles: Call,Expression,Initialization . . . . . StartPosition: { . . . . . . Offset: 8 . . . . . . Line: 3 @@ -40,7 +45,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . . . Roles: Expression,Identifier,Type . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 12 @@ -61,8 +66,7 @@ File { . . . } . . } . . 1: Expr_MethodCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "b" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 19 . . . . Line: 4 @@ -77,9 +81,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_New { -. . . . . Roles: Receiver,Identifier,Expression,Initialization,Call -. . . . . TOKEN "new" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_New { +. . . . . Roles: Call,Expression,Identifier,Initialization,Receiver . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 4 @@ -95,7 +105,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . . . Roles: Expression,Identifier,Type . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 24 @@ -116,7 +126,7 @@ File { . . . } . . } . . 2: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 33 . . . . Line: 5 @@ -132,8 +142,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_New { -. . . . . Roles: Expression,Initialization,Call -. . . . . TOKEN "new" +. . . . . Roles: Call,Expression,Initialization . . . . . StartPosition: { . . . . . . Offset: 34 . . . . . . Line: 5 @@ -149,7 +158,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . . . Roles: Expression,Identifier,Type . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 38 @@ -187,7 +196,7 @@ File { . . . } . . } . . 3: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 47 . . . . Line: 6 @@ -203,7 +212,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 6 @@ -219,8 +228,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_New { -. . . . . . . Roles: Expression,Initialization,Call -. . . . . . . TOKEN "new" +. . . . . . . Roles: Call,Expression,Initialization . . . . . . . StartPosition: { . . . . . . . . Offset: 48 . . . . . . . . Line: 6 @@ -236,7 +244,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Qualified,Type +. . . . . . . . . Roles: Expression,Identifier,Type . . . . . . . . . TOKEN "A" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 52 diff --git a/fixtures/null.php.native b/fixtures/null.php.native index be0ff3e..2a718af 100644 --- a/fixtures/null.php.native +++ b/fixtures/null.php.native @@ -2,17 +2,9 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 10, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 10, "endLine": 3, @@ -21,12 +13,23 @@ "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "NULL" - ] - }, - "nodeType": "Expr_ConstFetch" - } - ] + "name": { + "attributes": { + "endFilePos": 10, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "NULL" + ] + }, + "nodeType": "Expr_ConstFetch" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/null.php.uast b/fixtures/null.php.uast index cc65557..4bd037f 100644 --- a/fixtures/null.php.uast +++ b/fixtures/null.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_ConstFetch { -. . . Roles: Expression,Variable,Incomplete +. . . Roles: Expression,Incomplete,Variable . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 diff --git a/fixtures/object_access.php.native b/fixtures/object_access.php.native index ecc2803..ebbdbd6 100644 --- a/fixtures/object_access.php.native +++ b/fixtures/object_access.php.native @@ -2,344 +2,347 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 11, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": "b", - "nodeType": "Expr_PropertyFetch", - "var": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 11, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 4, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 23, - "endLine": 4, - "endTokenPos": 12, - "startFilePos": 14, - "startLine": 4, - "startTokenPos": 7 - }, - "dim": { - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 11, - "kind": 1, - "startFilePos": 20, - "startLine": 4, - "startTokenPos": 11 - }, - "nodeType": "Scalar_String", - "value": "c" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 18, + "endFilePos": 23, "endLine": 4, - "endTokenPos": 9, + "endTokenPos": 12, "startFilePos": 14, "startLine": 4, "startTokenPos": 7 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", + "dim": { + "attributes": { + "endFilePos": 22, + "endLine": 4, + "endTokenPos": 11, + "kind": 1, + "startFilePos": 20, + "startLine": 4, + "startTokenPos": 11 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 15, + "endFilePos": 18, "endLine": 4, - "endTokenPos": 7, + "endTokenPos": 9, "startFilePos": 14, "startLine": 4, "startTokenPos": 7 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 15, + "endLine": 4, + "endTokenPos": 7, + "startFilePos": 14, + "startLine": 4, + "startTokenPos": 7 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 35, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 26, - "startLine": 5, - "startTokenPos": 15 }, - "dim": { + { "attributes": { - "endFilePos": 34, + "endFilePos": 35, "endLine": 5, - "endTokenPos": 19, - "kind": 1, - "startFilePos": 32, - "startLine": 5, - "startTokenPos": 19 - }, - "nodeType": "Scalar_String", - "value": "c" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "attributes": { - "endFilePos": 30, - "endLine": 5, - "endTokenPos": 17, + "endTokenPos": 20, "startFilePos": 26, "startLine": 5, "startTokenPos": 15 }, - "name": "b", - "nodeType": "Expr_PropertyFetch", + "dim": { + "attributes": { + "endFilePos": 34, + "endLine": 5, + "endTokenPos": 19, + "kind": 1, + "startFilePos": 32, + "startLine": 5, + "startTokenPos": 19 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 27, + "endFilePos": 30, "endLine": 5, - "endTokenPos": 15, + "endTokenPos": 17, "startFilePos": 26, "startLine": 5, "startTokenPos": 15 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 27, + "endLine": 5, + "endTokenPos": 15, + "startFilePos": 26, + "startLine": 5, + "startTokenPos": 15 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - { - "args": [], - "attributes": { - "endFilePos": 45, - "endLine": 7, - "endTokenPos": 27, - "startFilePos": 39, - "startLine": 7, - "startTokenPos": 23 }, - "name": "b", - "nodeType": "Expr_MethodCall", - "var": { + { + "args": [], "attributes": { - "endFilePos": 40, + "endFilePos": 45, "endLine": 7, - "endTokenPos": 23, + "endTokenPos": 27, "startFilePos": 39, "startLine": 7, "startTokenPos": 23 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "args": [], - "attributes": { - "endFilePos": 58, - "endLine": 8, - "endTokenPos": 36, - "startFilePos": 48, - "startLine": 8, - "startTokenPos": 30 - }, - "name": { - "attributes": { - "endFilePos": 55, - "endLine": 8, - "endTokenPos": 33, - "kind": 1, - "startFilePos": 53, - "startLine": 8, - "startTokenPos": 33 - }, - "nodeType": "Scalar_String", - "value": "b" + "name": "b", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 40, + "endLine": 7, + "endTokenPos": 23, + "startFilePos": 39, + "startLine": 7, + "startTokenPos": 23 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_MethodCall", - "var": { + { + "args": [], "attributes": { - "endFilePos": 49, + "endFilePos": 58, "endLine": 8, - "endTokenPos": 30, + "endTokenPos": 36, "startFilePos": 48, "startLine": 8, "startTokenPos": 30 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "args": [], - "attributes": { - "endFilePos": 68, - "endLine": 9, - "endTokenPos": 43, - "startFilePos": 61, - "startLine": 9, - "startTokenPos": 39 - }, - "name": { - "attributes": { - "endFilePos": 66, - "endLine": 9, - "endTokenPos": 41, - "startFilePos": 65, - "startLine": 9, - "startTokenPos": 41 + "name": { + "attributes": { + "endFilePos": 55, + "endLine": 8, + "endTokenPos": 33, + "kind": 1, + "startFilePos": 53, + "startLine": 8, + "startTokenPos": 33 + }, + "nodeType": "Scalar_String", + "value": "b" }, - "name": "b", - "nodeType": "Expr_Variable" + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 49, + "endLine": 8, + "endTokenPos": 30, + "startFilePos": 48, + "startLine": 8, + "startTokenPos": 30 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_MethodCall", - "var": { + { + "args": [], "attributes": { - "endFilePos": 62, + "endFilePos": 68, "endLine": 9, - "endTokenPos": 39, + "endTokenPos": 43, "startFilePos": 61, "startLine": 9, "startTokenPos": 39 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "args": [], - "attributes": { - "endFilePos": 83, - "endLine": 10, - "endTokenPos": 53, - "startFilePos": 71, - "startLine": 10, - "startTokenPos": 46 + "name": { + "attributes": { + "endFilePos": 66, + "endLine": 9, + "endTokenPos": 41, + "startFilePos": 65, + "startLine": 9, + "startTokenPos": 41 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 62, + "endLine": 9, + "endTokenPos": 39, + "startFilePos": 61, + "startLine": 9, + "startTokenPos": 39 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 81, + "endFilePos": 83, "endLine": 10, - "endTokenPos": 51, + "endTokenPos": 53, "startFilePos": 71, "startLine": 10, "startTokenPos": 46 }, - "dim": { + "name": { "attributes": { - "endFilePos": 80, + "endFilePos": 81, "endLine": 10, - "endTokenPos": 50, - "kind": 1, - "startFilePos": 78, - "startLine": 10, - "startTokenPos": 50 - }, - "nodeType": "Scalar_String", - "value": "c" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "attributes": { - "endFilePos": 76, - "endLine": 10, - "endTokenPos": 48, + "endTokenPos": 51, "startFilePos": 71, "startLine": 10, "startTokenPos": 46 }, - "name": { + "dim": { "attributes": { - "endFilePos": 76, + "endFilePos": 80, "endLine": 10, - "endTokenPos": 48, - "startFilePos": 75, + "endTokenPos": 50, + "kind": 1, + "startFilePos": 78, "startLine": 10, - "startTokenPos": 48 + "startTokenPos": 50 }, - "name": "b", - "nodeType": "Expr_Variable" + "nodeType": "Scalar_String", + "value": "c" }, - "nodeType": "Expr_PropertyFetch", + "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 72, + "endFilePos": 76, "endLine": 10, - "endTokenPos": 46, + "endTokenPos": 48, "startFilePos": 71, "startLine": 10, "startTokenPos": 46 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": { + "attributes": { + "endFilePos": 76, + "endLine": 10, + "endTokenPos": 48, + "startFilePos": 75, + "startLine": 10, + "startTokenPos": 48 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 72, + "endLine": 10, + "endTokenPos": 46, + "startFilePos": 71, + "startLine": 10, + "startTokenPos": 46 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - }, - "nodeType": "Expr_FuncCall" - }, - { - "attributes": { - "endFilePos": 98, - "endLine": 12, - "endTokenPos": 63, - "startFilePos": 87, - "startLine": 12, - "startTokenPos": 56 - }, - "dim": { - "attributes": { - "endFilePos": 97, - "endLine": 12, - "endTokenPos": 62, - "kind": 1, - "startFilePos": 95, - "startLine": 12, - "startTokenPos": 62 }, - "nodeType": "Scalar_String", - "value": "c" + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "args": [], + { "attributes": { - "endFilePos": 93, + "endFilePos": 98, "endLine": 12, - "endTokenPos": 60, + "endTokenPos": 63, "startFilePos": 87, "startLine": 12, "startTokenPos": 56 }, - "name": "b", - "nodeType": "Expr_MethodCall", + "dim": { + "attributes": { + "endFilePos": 97, + "endLine": 12, + "endTokenPos": 62, + "kind": 1, + "startFilePos": 95, + "startLine": 12, + "startTokenPos": 62 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", "var": { + "args": [], "attributes": { - "endFilePos": 88, + "endFilePos": 93, "endLine": 12, - "endTokenPos": 56, + "endTokenPos": 60, "startFilePos": 87, "startLine": 12, "startTokenPos": 56 }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "b", + "nodeType": "Expr_MethodCall", + "var": { + "attributes": { + "endFilePos": 88, + "endLine": 12, + "endTokenPos": 56, + "startFilePos": 87, + "startLine": 12, + "startTokenPos": 56 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/object_access.php.uast b/fixtures/object_access.php.uast index 064a9e1..fe3bd6e 100644 --- a/fixtures/object_access.php.uast +++ b/fixtures/object_access.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_PropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Map,Value . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -38,11 +43,20 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 14 . . . . Line: 4 @@ -58,8 +72,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . TOKEN "b" +. . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . StartPosition: { . . . . . . Offset: 14 . . . . . . Line: 4 @@ -74,9 +87,15 @@ File { . . . . . . internalRole: var . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 14 . . . . . . . . Line: 4 @@ -90,6 +109,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -113,7 +141,7 @@ File { . . . } . . } . . 2: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 26 . . . . Line: 5 @@ -129,8 +157,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . TOKEN "b" +. . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . StartPosition: { . . . . . . Offset: 26 . . . . . . Line: 5 @@ -145,9 +172,15 @@ File { . . . . . . internalRole: var . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 26 . . . . . . . . Line: 5 @@ -161,6 +194,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -184,8 +226,7 @@ File { . . . } . . } . . 3: Expr_MethodCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "b" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 39 . . . . Line: 7 @@ -200,9 +241,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Receiver -. . . . . TOKEN "a" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_Variable { +. . . . . Roles: Identifier,Receiver,Variable . . . . . StartPosition: { . . . . . . Offset: 39 . . . . . . Line: 7 @@ -216,11 +263,20 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 4: Expr_MethodCall { -. . . Roles: Expression,Call,Identifier +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 48 . . . . Line: 8 @@ -236,8 +292,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Receiver -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Receiver,Variable . . . . . StartPosition: { . . . . . . Offset: 48 . . . . . . Line: 8 @@ -251,6 +306,15 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Scalar_String { . . . . . Roles: Expression,Literal,String @@ -272,7 +336,7 @@ File { . . . } . . } . . 5: Expr_MethodCall { -. . . Roles: Expression,Call,Identifier +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 61 . . . . Line: 9 @@ -288,8 +352,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Receiver -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Receiver,Variable . . . . . StartPosition: { . . . . . . Offset: 61 . . . . . . Line: 9 @@ -303,10 +366,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 65 . . . . . . Line: 9 @@ -320,11 +391,20 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 71 . . . . Line: 10 @@ -340,7 +420,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 71 . . . . . . Line: 10 @@ -356,7 +436,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_PropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value +. . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 71 . . . . . . . . Line: 10 @@ -373,7 +453,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "a" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 71 . . . . . . . . . . Line: 10 @@ -387,10 +466,18 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "a" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "b" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 75 . . . . . . . . . . Line: 10 @@ -404,6 +491,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: name . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } @@ -429,7 +525,7 @@ File { . . . } . . } . . 7: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 87 . . . . Line: 12 @@ -445,8 +541,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_MethodCall { -. . . . . Roles: Expression,Call,Identifier -. . . . . TOKEN "b" +. . . . . Roles: Call,Expression,Identifier . . . . . StartPosition: { . . . . . . Offset: 87 . . . . . . Line: 12 @@ -461,9 +556,15 @@ File { . . . . . . internalRole: var . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Receiver -. . . . . . . TOKEN "a" +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { +. . . . . . . Roles: Identifier,Receiver,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 87 . . . . . . . . Line: 12 @@ -477,6 +578,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/postarit.php.native b/fixtures/postarit.php.native index 77f762f..d88916f 100644 --- a/fixtures/postarit.php.native +++ b/fixtures/postarit.php.native @@ -2,98 +2,101 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 10, - "endLine": 3, - "endTokenPos": 3, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "nodeType": "Expr_PostInc", - "var": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 10, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 3, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 16, - "endLine": 4, - "endTokenPos": 7, - "startFilePos": 13, - "startLine": 4, - "startTokenPos": 6 + "nodeType": "Expr_PostInc", + "var": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_PostDec", - "var": { + { "attributes": { - "endFilePos": 14, + "endFilePos": 16, "endLine": 4, - "endTokenPos": 6, + "endTokenPos": 7, "startFilePos": 13, "startLine": 4, "startTokenPos": 6 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 22, - "endLine": 5, - "endTokenPos": 11, - "startFilePos": 19, - "startLine": 5, - "startTokenPos": 10 + "nodeType": "Expr_PostDec", + "var": { + "attributes": { + "endFilePos": 14, + "endLine": 4, + "endTokenPos": 6, + "startFilePos": 13, + "startLine": 4, + "startTokenPos": 6 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_PreInc", - "var": { + { "attributes": { "endFilePos": 22, "endLine": 5, "endTokenPos": 11, - "startFilePos": 21, + "startFilePos": 19, "startLine": 5, - "startTokenPos": 11 + "startTokenPos": 10 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 6, - "endTokenPos": 15, - "startFilePos": 25, - "startLine": 6, - "startTokenPos": 14 + "nodeType": "Expr_PreInc", + "var": { + "attributes": { + "endFilePos": 22, + "endLine": 5, + "endTokenPos": 11, + "startFilePos": 21, + "startLine": 5, + "startTokenPos": 11 + }, + "name": "a", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_PreDec", - "var": { + { "attributes": { "endFilePos": 28, "endLine": 6, "endTokenPos": 15, - "startFilePos": 27, + "startFilePos": 25, "startLine": 6, - "startTokenPos": 15 + "startTokenPos": 14 }, - "name": "a", - "nodeType": "Expr_Variable" + "nodeType": "Expr_PreDec", + "var": { + "attributes": { + "endFilePos": 28, + "endLine": 6, + "endTokenPos": 15, + "startFilePos": 27, + "startLine": 6, + "startTokenPos": 15 + }, + "name": "a", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/postarit.php.uast b/fixtures/postarit.php.uast index a01f6a7..8e9e340 100644 --- a/fixtures/postarit.php.uast +++ b/fixtures/postarit.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_PostInc { -. . . Roles: Expression,Unary,Increment,Postfix +. . . Roles: Expression,Increment,Postfix,Unary . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,11 +36,20 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Expr_PostDec { -. . . Roles: Expression,Unary,Decrement,Postfix +. . . Roles: Decrement,Expression,Postfix,Unary . . . StartPosition: { . . . . Offset: 13 . . . . Line: 4 @@ -58,7 +66,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 4 @@ -72,11 +79,20 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_PreInc { -. . . Roles: Expression,Unary,Increment +. . . Roles: Expression,Increment,Unary . . . StartPosition: { . . . . Offset: 19 . . . . Line: 5 @@ -93,7 +109,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 5 @@ -107,11 +122,20 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_PreDec { -. . . Roles: Expression,Unary,Decrement +. . . Roles: Decrement,Expression,Unary . . . StartPosition: { . . . . Offset: 25 . . . . Line: 6 @@ -128,7 +152,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 6 @@ -142,6 +165,15 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/print.php.native b/fixtures/print.php.native index 6c2d641..8f3b7fb 100644 --- a/fixtures/print.php.native +++ b/fixtures/print.php.native @@ -2,29 +2,32 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 13, "endLine": 2, "endTokenPos": 3, - "startFilePos": 12, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Print" - } - ] + "expr": { + "attributes": { + "endFilePos": 13, + "endLine": 2, + "endTokenPos": 3, + "startFilePos": 12, + "startLine": 2, + "startTokenPos": 3 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Print" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/print.php.uast b/fixtures/print.php.uast index 62b9513..7e7157e 100644 --- a/fixtures/print.php.uast +++ b/fixtures/print.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Print { -. . . Roles: Statement,Call +. . . Roles: Call,Statement . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 2 @@ -37,6 +36,15 @@ File { . . . . . Properties: { . . . . . . internalRole: expr . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/return.php.native b/fixtures/return.php.native index 66ab762..1d4afba 100644 --- a/fixtures/return.php.native +++ b/fixtures/return.php.native @@ -2,63 +2,52 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 155, - "endLine": 8, - "endTokenPos": 48, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "byRef": false, - "name": "arraysSum", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 41, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 26, - "startLine": 3, - "startTokenPos": 6 - }, - "byRef": false, - "default": null, - "name": "arrays", - "nodeType": "Param", - "type": "array", - "variadic": true - } - ], - "returnType": "array", - "stmts": [ - { - "attributes": { - "endFilePos": 153, - "endLine": 7, - "endTokenPos": 46, - "startFilePos": 57, - "startLine": 5, - "startTokenPos": 17 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 142, - "endLine": 7, - "endTokenPos": 41, - "startFilePos": 74, - "startLine": 5, - "startTokenPos": 21 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 155, + "endLine": 8, + "endTokenPos": 48, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "byRef": false, + "name": "arraysSum", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 41, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 26, + "startLine": 3, + "startTokenPos": 6 + }, + "byRef": false, + "default": null, + "name": "arrays", + "nodeType": "Param", + "type": "array", + "variadic": true + } + ], + "returnType": "array", + "stmts": [ + { + "attributes": { + "endFilePos": 153, + "endLine": 7, + "endTokenPos": 46, + "startFilePos": 57, + "startLine": 5, + "startTokenPos": 17 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 142, "endLine": 7, @@ -68,52 +57,52 @@ "startTokenPos": 21 }, "byRef": false, - "nodeType": "Expr_Closure", - "params": [ - { - "attributes": { - "endFilePos": 94, - "endLine": 5, - "endTokenPos": 25, - "startFilePos": 83, - "startLine": 5, - "startTokenPos": 23 - }, - "byRef": false, - "default": null, - "name": "array", - "nodeType": "Param", - "type": "array", - "variadic": false - } - ], - "returnType": "int", - "static": false, - "stmts": [ - { - "attributes": { - "endFilePos": 136, - "endLine": 6, - "endTokenPos": 39, - "startFilePos": 112, - "startLine": 6, - "startTokenPos": 33 - }, - "expr": { - "args": [ - { - "attributes": { - "endFilePos": 134, - "endLine": 6, - "endTokenPos": 37, - "startFilePos": 129, - "startLine": 6, - "startTokenPos": 37 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 142, + "endLine": 7, + "endTokenPos": 41, + "startFilePos": 74, + "startLine": 5, + "startTokenPos": 21 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [ + { + "attributes": { + "endFilePos": 94, + "endLine": 5, + "endTokenPos": 25, + "startFilePos": 83, + "startLine": 5, + "startTokenPos": 23 + }, + "byRef": false, + "default": null, + "name": "array", + "nodeType": "Param", + "type": "array", + "variadic": false + } + ], + "returnType": "int", + "static": false, + "stmts": [ + { + "attributes": { + "endFilePos": 136, + "endLine": 6, + "endTokenPos": 39, + "startFilePos": 112, + "startLine": 6, + "startTokenPos": 33 + }, + "expr": { + "args": [ + { "attributes": { "endFilePos": 134, "endLine": 6, @@ -122,54 +111,54 @@ "startLine": 6, "startTokenPos": 37 }, - "name": "array", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 134, + "endLine": 6, + "endTokenPos": 37, + "startFilePos": 129, + "startLine": 6, + "startTokenPos": 37 + }, + "name": "array", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 135, - "endLine": 6, - "endTokenPos": 38, - "startFilePos": 119, - "startLine": 6, - "startTokenPos": 35 - }, - "name": { + ], "attributes": { - "endFilePos": 127, + "endFilePos": 135, "endLine": 6, - "endTokenPos": 35, + "endTokenPos": 38, "startFilePos": 119, "startLine": 6, "startTokenPos": 35 }, - "nodeType": "Name", - "parts": [ - "array_sum" - ] + "name": { + "attributes": { + "endFilePos": 127, + "endLine": 6, + "endTokenPos": 35, + "startFilePos": 119, + "startLine": 6, + "startTokenPos": 35 + }, + "nodeType": "Name", + "parts": [ + "array_sum" + ] + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Stmt_Return" - } - ], - "uses": [] - } - }, - { - "attributes": { - "endFilePos": 151, - "endLine": 7, - "endTokenPos": 44, - "startFilePos": 145, - "startLine": 7, - "startTokenPos": 44 + "nodeType": "Stmt_Return" + } + ], + "uses": [] + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 151, "endLine": 7, @@ -178,420 +167,434 @@ "startLine": 7, "startTokenPos": 44 }, - "name": "arrays", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 151, + "endLine": 7, + "endTokenPos": 44, + "startFilePos": 145, + "startLine": 7, + "startTokenPos": 44 + }, + "name": "arrays", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 152, - "endLine": 7, - "endTokenPos": 45, - "startFilePos": 64, - "startLine": 5, - "startTokenPos": 19 - }, - "name": { + ], "attributes": { - "endFilePos": 72, - "endLine": 5, - "endTokenPos": 19, + "endFilePos": 152, + "endLine": 7, + "endTokenPos": 45, "startFilePos": 64, "startLine": 5, "startTokenPos": 19 }, - "nodeType": "Name", - "parts": [ - "array_map" - ] - }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Stmt_Return" - } - ] - }, - { - "args": [ - { - "attributes": { - "endFilePos": 201, - "endLine": 10, - "endTokenPos": 79, - "startFilePos": 166, - "startLine": 10, - "startTokenPos": 52 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { - "args": [ - { + "name": { "attributes": { - "endFilePos": 182, - "endLine": 10, - "endTokenPos": 60, - "startFilePos": 176, - "startLine": 10, - "startTokenPos": 54 + "endFilePos": 72, + "endLine": 5, + "endTokenPos": 19, + "startFilePos": 64, + "startLine": 5, + "startTokenPos": 19 }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "nodeType": "Name", + "parts": [ + "array_map" + ] + }, + "nodeType": "Expr_FuncCall" + }, + "nodeType": "Stmt_Return" + } + ] + }, + { + "args": [ + { + "attributes": { + "endFilePos": 201, + "endLine": 10, + "endTokenPos": 79, + "startFilePos": 166, + "startLine": 10, + "startTokenPos": 52 + }, + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "args": [ + { "attributes": { "endFilePos": 182, "endLine": 10, "endTokenPos": 60, - "kind": 2, "startFilePos": 176, "startLine": 10, "startTokenPos": 54 }, - "items": [ - { - "attributes": { - "endFilePos": 177, - "endLine": 10, - "endTokenPos": 55, - "startFilePos": 177, - "startLine": 10, - "startTokenPos": 55 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 182, + "endLine": 10, + "endTokenPos": 60, + "kind": 2, + "startFilePos": 176, + "startLine": 10, + "startTokenPos": 54 + }, + "items": [ + { "attributes": { "endFilePos": 177, "endLine": 10, "endTokenPos": 55, - "kind": 10, "startFilePos": 177, "startLine": 10, "startTokenPos": 55 }, - "nodeType": "Scalar_LNumber", - "value": 1 - } - }, - { - "attributes": { - "endFilePos": 179, - "endLine": 10, - "endTokenPos": 57, - "startFilePos": 179, - "startLine": 10, - "startTokenPos": 57 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 177, + "endLine": 10, + "endTokenPos": 55, + "kind": 10, + "startFilePos": 177, + "startLine": 10, + "startTokenPos": 55 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 179, "endLine": 10, "endTokenPos": 57, - "kind": 10, "startFilePos": 179, "startLine": 10, "startTokenPos": 57 }, - "nodeType": "Scalar_LNumber", - "value": 2 - } - }, - { - "attributes": { - "endFilePos": 181, - "endLine": 10, - "endTokenPos": 59, - "startFilePos": 181, - "startLine": 10, - "startTokenPos": 59 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 179, + "endLine": 10, + "endTokenPos": 57, + "kind": 10, + "startFilePos": 179, + "startLine": 10, + "startTokenPos": 57 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 181, "endLine": 10, "endTokenPos": 59, - "kind": 10, "startFilePos": 181, "startLine": 10, "startTokenPos": 59 }, - "nodeType": "Scalar_LNumber", - "value": 3 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 181, + "endLine": 10, + "endTokenPos": 59, + "kind": 10, + "startFilePos": 181, + "startLine": 10, + "startTokenPos": 59 + }, + "nodeType": "Scalar_LNumber", + "value": 3 + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 191, - "endLine": 10, - "endTokenPos": 69, - "startFilePos": 185, - "startLine": 10, - "startTokenPos": 63 + ], + "nodeType": "Expr_Array" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 191, "endLine": 10, "endTokenPos": 69, - "kind": 2, "startFilePos": 185, "startLine": 10, "startTokenPos": 63 }, - "items": [ - { - "attributes": { - "endFilePos": 186, - "endLine": 10, - "endTokenPos": 64, - "startFilePos": 186, - "startLine": 10, - "startTokenPos": 64 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 191, + "endLine": 10, + "endTokenPos": 69, + "kind": 2, + "startFilePos": 185, + "startLine": 10, + "startTokenPos": 63 + }, + "items": [ + { "attributes": { "endFilePos": 186, "endLine": 10, "endTokenPos": 64, - "kind": 10, "startFilePos": 186, "startLine": 10, "startTokenPos": 64 }, - "nodeType": "Scalar_LNumber", - "value": 4 - } - }, - { - "attributes": { - "endFilePos": 188, - "endLine": 10, - "endTokenPos": 66, - "startFilePos": 188, - "startLine": 10, - "startTokenPos": 66 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 186, + "endLine": 10, + "endTokenPos": 64, + "kind": 10, + "startFilePos": 186, + "startLine": 10, + "startTokenPos": 64 + }, + "nodeType": "Scalar_LNumber", + "value": 4 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 188, "endLine": 10, "endTokenPos": 66, - "kind": 10, "startFilePos": 188, "startLine": 10, "startTokenPos": 66 }, - "nodeType": "Scalar_LNumber", - "value": 5 - } - }, - { - "attributes": { - "endFilePos": 190, - "endLine": 10, - "endTokenPos": 68, - "startFilePos": 190, - "startLine": 10, - "startTokenPos": 68 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 188, + "endLine": 10, + "endTokenPos": 66, + "kind": 10, + "startFilePos": 188, + "startLine": 10, + "startTokenPos": 66 + }, + "nodeType": "Scalar_LNumber", + "value": 5 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 190, "endLine": 10, "endTokenPos": 68, - "kind": 10, "startFilePos": 190, "startLine": 10, "startTokenPos": 68 }, - "nodeType": "Scalar_LNumber", - "value": 6 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 190, + "endLine": 10, + "endTokenPos": 68, + "kind": 10, + "startFilePos": 190, + "startLine": 10, + "startTokenPos": 68 + }, + "nodeType": "Scalar_LNumber", + "value": 6 + } } - } - ], - "nodeType": "Expr_Array" - } - }, - { - "attributes": { - "endFilePos": 200, - "endLine": 10, - "endTokenPos": 78, - "startFilePos": 194, - "startLine": 10, - "startTokenPos": 72 + ], + "nodeType": "Expr_Array" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 200, "endLine": 10, "endTokenPos": 78, - "kind": 2, "startFilePos": 194, "startLine": 10, "startTokenPos": 72 }, - "items": [ - { - "attributes": { - "endFilePos": 195, - "endLine": 10, - "endTokenPos": 73, - "startFilePos": 195, - "startLine": 10, - "startTokenPos": 73 - }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 200, + "endLine": 10, + "endTokenPos": 78, + "kind": 2, + "startFilePos": 194, + "startLine": 10, + "startTokenPos": 72 + }, + "items": [ + { "attributes": { "endFilePos": 195, "endLine": 10, "endTokenPos": 73, - "kind": 10, "startFilePos": 195, "startLine": 10, "startTokenPos": 73 }, - "nodeType": "Scalar_LNumber", - "value": 7 - } - }, - { - "attributes": { - "endFilePos": 197, - "endLine": 10, - "endTokenPos": 75, - "startFilePos": 197, - "startLine": 10, - "startTokenPos": 75 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 195, + "endLine": 10, + "endTokenPos": 73, + "kind": 10, + "startFilePos": 195, + "startLine": 10, + "startTokenPos": 73 + }, + "nodeType": "Scalar_LNumber", + "value": 7 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 197, "endLine": 10, "endTokenPos": 75, - "kind": 10, "startFilePos": 197, "startLine": 10, "startTokenPos": 75 }, - "nodeType": "Scalar_LNumber", - "value": 8 - } - }, - { - "attributes": { - "endFilePos": 199, - "endLine": 10, - "endTokenPos": 77, - "startFilePos": 199, - "startLine": 10, - "startTokenPos": 77 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 197, + "endLine": 10, + "endTokenPos": 75, + "kind": 10, + "startFilePos": 197, + "startLine": 10, + "startTokenPos": 75 + }, + "nodeType": "Scalar_LNumber", + "value": 8 + } }, - "byRef": false, - "key": null, - "nodeType": "Expr_ArrayItem", - "value": { + { "attributes": { "endFilePos": 199, "endLine": 10, "endTokenPos": 77, - "kind": 10, "startFilePos": 199, "startLine": 10, "startTokenPos": 77 }, - "nodeType": "Scalar_LNumber", - "value": 9 + "byRef": false, + "key": null, + "nodeType": "Expr_ArrayItem", + "value": { + "attributes": { + "endFilePos": 199, + "endLine": 10, + "endTokenPos": 77, + "kind": 10, + "startFilePos": 199, + "startLine": 10, + "startTokenPos": 77 + }, + "nodeType": "Scalar_LNumber", + "value": 9 + } } - } - ], - "nodeType": "Expr_Array" + ], + "nodeType": "Expr_Array" + } } - } - ], - "attributes": { - "endFilePos": 201, - "endLine": 10, - "endTokenPos": 79, - "startFilePos": 166, - "startLine": 10, - "startTokenPos": 52 - }, - "name": { + ], "attributes": { - "endFilePos": 174, + "endFilePos": 201, "endLine": 10, - "endTokenPos": 52, + "endTokenPos": 79, "startFilePos": 166, "startLine": 10, "startTokenPos": 52 }, - "nodeType": "Name", - "parts": [ - "arraysSum" - ] - }, - "nodeType": "Expr_FuncCall" + "name": { + "attributes": { + "endFilePos": 174, + "endLine": 10, + "endTokenPos": 52, + "startFilePos": 166, + "startLine": 10, + "startTokenPos": 52 + }, + "nodeType": "Name", + "parts": [ + "arraysSum" + ] + }, + "nodeType": "Expr_FuncCall" + } } - } - ], - "attributes": { - "endFilePos": 202, - "endLine": 10, - "endTokenPos": 80, - "startFilePos": 158, - "startLine": 10, - "startTokenPos": 50 - }, - "name": { + ], "attributes": { - "endFilePos": 164, + "endFilePos": 202, "endLine": 10, - "endTokenPos": 50, + "endTokenPos": 80, "startFilePos": 158, "startLine": 10, "startTokenPos": 50 }, - "nodeType": "Name", - "parts": [ - "print_r" - ] - }, - "nodeType": "Expr_FuncCall" - } - ] + "name": { + "attributes": { + "endFilePos": 164, + "endLine": 10, + "endTokenPos": 50, + "startFilePos": 158, + "startLine": 10, + "startTokenPos": 50 + }, + "nodeType": "Name", + "parts": [ + "print_r" + ] + }, + "nodeType": "Expr_FuncCall" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/return.php.uast b/fixtures/return.php.uast index 2078705..e05f2de 100644 --- a/fixtures/return.php.uast +++ b/fixtures/return.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "arraysSum" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -19,14 +18,19 @@ File { . . . . Col: 1 . . . } . . . Properties: { -. . . . Stmt_Function.returnType: array . . . . byRef: false . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { -. . . . . Roles: Argument,ArgsList -. . . . . TOKEN "arrays" +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . TOKEN "array" +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Param { +. . . . . Roles: ArgsList,Argument . . . . . StartPosition: { . . . . . . Offset: 26 . . . . . . Line: 3 @@ -43,83 +47,73 @@ File { . . . . . . type: array . . . . . . variadic: true . . . . . } -. . . . } -. . . . 1: Stmt_Function.returnType { -. . . . . Roles: Return,Type -. . . . . TOKEN "array" -. . . . . Properties: { -. . . . . . promotedPropertyString: true +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "arrays" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } . . . . . } . . . . } -. . . . 2: Stmt_Return { -. . . . . Roles: Expression,Body,Statement,Return -. . . . . StartPosition: { -. . . . . . Offset: 57 -. . . . . . Line: 5 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 153 -. . . . . . Line: 7 -. . . . . . Col: 16 -. . . . . } +. . . . 2: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Expression,Call +. . . . . . 0: Stmt_Return { +. . . . . . . Roles: Return,Statement . . . . . . . StartPosition: { -. . . . . . . . Offset: 64 +. . . . . . . . Offset: 57 . . . . . . . . Line: 5 -. . . . . . . . Col: 12 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 152 +. . . . . . . . Offset: 153 . . . . . . . . Line: 7 -. . . . . . . . Col: 15 +. . . . . . . . Col: 16 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Function,Name -. . . . . . . . . TOKEN "array_map" +. . . . . . . . 0: Expr_FuncCall { +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 64 . . . . . . . . . . Line: 5 . . . . . . . . . . Col: 12 . . . . . . . . . } . . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 72 -. . . . . . . . . . Line: 5 -. . . . . . . . . . Col: 20 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: name -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 1: Arg { -. . . . . . . . . Roles: Argument -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 74 -. . . . . . . . . . Line: 5 -. . . . . . . . . . Col: 22 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 142 +. . . . . . . . . . Offset: 152 . . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 5 +. . . . . . . . . . Col: 15 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . byRef: false -. . . . . . . . . . internalRole: args -. . . . . . . . . . unpack: false +. . . . . . . . . . internalRole: expr . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Closure { -. . . . . . . . . . . Roles: Function,Declaration,Expression,Anonymous +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "array_map" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 64 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 12 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 72 +. . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . Col: 20 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Arg { +. . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 74 . . . . . . . . . . . . Line: 5 @@ -132,101 +126,108 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Properties: { . . . . . . . . . . . . byRef: false -. . . . . . . . . . . . internalRole: value -. . . . . . . . . . . . returnType: int -. . . . . . . . . . . . static: false +. . . . . . . . . . . . internalRole: args +. . . . . . . . . . . . unpack: false . . . . . . . . . . . } . . . . . . . . . . . Children: { -. . . . . . . . . . . . 0: Param { -. . . . . . . . . . . . . Roles: Argument -. . . . . . . . . . . . . TOKEN "array" +. . . . . . . . . . . . 0: Expr_Closure { +. . . . . . . . . . . . . Roles: Anonymous,Declaration,Expression,Function . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . Offset: 83 +. . . . . . . . . . . . . . Offset: 74 . . . . . . . . . . . . . . Line: 5 -. . . . . . . . . . . . . . Col: 31 +. . . . . . . . . . . . . . Col: 22 . . . . . . . . . . . . . } . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . Offset: 94 -. . . . . . . . . . . . . . Line: 5 -. . . . . . . . . . . . . . Col: 42 +. . . . . . . . . . . . . . Offset: 142 +. . . . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . . . Col: 5 . . . . . . . . . . . . . } . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . byRef: false -. . . . . . . . . . . . . . internalRole: params -. . . . . . . . . . . . . . type: array -. . . . . . . . . . . . . . variadic: false -. . . . . . . . . . . . . } -. . . . . . . . . . . . } -. . . . . . . . . . . . 1: Stmt_Return { -. . . . . . . . . . . . . Roles: Expression,Body,Statement,Return -. . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . Offset: 112 -. . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . Col: 9 -. . . . . . . . . . . . . } -. . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . Offset: 136 -. . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . Col: 33 -. . . . . . . . . . . . . } -. . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . internalRole: stmts +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . returnType: int +. . . . . . . . . . . . . . static: false . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . . . . . . . Roles: Expression,Call +. . . . . . . . . . . . . . 0: Param { +. . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . Offset: 119 -. . . . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . . . Col: 16 +. . . . . . . . . . . . . . . . Offset: 83 +. . . . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . . . Col: 31 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . Offset: 135 -. . . . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . . . Col: 32 +. . . . . . . . . . . . . . . . Offset: 94 +. . . . . . . . . . . . . . . . Line: 5 +. . . . . . . . . . . . . . . . Col: 42 . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . internalRole: expr +. . . . . . . . . . . . . . . . byRef: false +. . . . . . . . . . . . . . . . internalRole: params +. . . . . . . . . . . . . . . . type: array +. . . . . . . . . . . . . . . . variadic: false . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . . . Roles: Expression,Identifier,Function,Name -. . . . . . . . . . . . . . . . . TOKEN "array_sum" -. . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 119 -. . . . . . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . . . . . Col: 16 -. . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . . . Offset: 127 -. . . . . . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . . . . . Col: 24 -. . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . TOKEN "array" . . . . . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . . . . . internalRole: name . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . } -. . . . . . . . . . . . . . . . 1: Arg { -. . . . . . . . . . . . . . . . . Roles: Argument +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Stmt_Return { +. . . . . . . . . . . . . . . Roles: Return,Statement +. . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . Offset: 112 +. . . . . . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . . . . . Col: 9 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . Offset: 136 +. . . . . . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . . . . . Col: 33 +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: stmts +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . 0: Expr_FuncCall { +. . . . . . . . . . . . . . . . . Roles: Call,Expression . . . . . . . . . . . . . . . . . StartPosition: { -. . . . . . . . . . . . . . . . . . Offset: 129 +. . . . . . . . . . . . . . . . . . Offset: 119 . . . . . . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . . . . . Col: 26 +. . . . . . . . . . . . . . . . . . Col: 16 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . EndPosition: { -. . . . . . . . . . . . . . . . . . Offset: 134 +. . . . . . . . . . . . . . . . . . Offset: 135 . . . . . . . . . . . . . . . . . . Line: 6 -. . . . . . . . . . . . . . . . . . Col: 31 +. . . . . . . . . . . . . . . . . . Col: 32 . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . . . byRef: false -. . . . . . . . . . . . . . . . . . internalRole: args -. . . . . . . . . . . . . . . . . . unpack: false +. . . . . . . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . Children: { -. . . . . . . . . . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . . . . . . . TOKEN "array" +. . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . TOKEN "array_sum" +. . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 119 +. . . . . . . . . . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . . . . . . . . . Col: 16 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . Offset: 127 +. . . . . . . . . . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . . . . . . . . . Col: 24 +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . 1: Arg { +. . . . . . . . . . . . . . . . . . . Roles: Argument . . . . . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . . . . . Offset: 129 . . . . . . . . . . . . . . . . . . . . Line: 6 @@ -238,7 +239,36 @@ File { . . . . . . . . . . . . . . . . . . . . Col: 31 . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . Properties: { -. . . . . . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . . . . . . byRef: false +. . . . . . . . . . . . . . . . . . . . internalRole: args +. . . . . . . . . . . . . . . . . . . . unpack: false +. . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . . . . . . . . . Offset: 129 +. . . . . . . . . . . . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . . . . . . . . . . . Col: 26 +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . . . . . . . . . Offset: 134 +. . . . . . . . . . . . . . . . . . . . . . Line: 6 +. . . . . . . . . . . . . . . . . . . . . . Col: 31 +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . . . . . . . . . TOKEN "array" +. . . . . . . . . . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . . } . . . . . . . . . . . . . . . . . } @@ -249,29 +279,8 @@ File { . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . } -. . . . . . . . } -. . . . . . . . 2: Arg { -. . . . . . . . . Roles: Argument -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 145 -. . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 8 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 151 -. . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 14 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . byRef: false -. . . . . . . . . . internalRole: args -. . . . . . . . . . unpack: false -. . . . . . . . . } -. . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "arrays" +. . . . . . . . . . 2: Arg { +. . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 145 . . . . . . . . . . . . Line: 7 @@ -283,7 +292,36 @@ File { . . . . . . . . . . . . Col: 14 . . . . . . . . . . . } . . . . . . . . . . . Properties: { -. . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . byRef: false +. . . . . . . . . . . . internalRole: args +. . . . . . . . . . . . unpack: false +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . . . . Roles: Identifier,Variable +. . . . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . . . Offset: 145 +. . . . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . . . Col: 8 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . . . Offset: 151 +. . . . . . . . . . . . . . Line: 7 +. . . . . . . . . . . . . . Col: 14 +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: value +. . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "arrays" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } +. . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } @@ -295,7 +333,7 @@ File { . . . } . . } . . 1: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 158 . . . . Line: 10 @@ -311,7 +349,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "print_r" . . . . . StartPosition: { . . . . . . Offset: 158 @@ -346,7 +384,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Expression,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 166 . . . . . . . . Line: 10 @@ -362,7 +400,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "arraysSum" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 166 @@ -397,7 +435,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 176 . . . . . . . . . . . . Line: 10 @@ -413,7 +451,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 177 . . . . . . . . . . . . . . Line: 10 @@ -449,7 +487,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 179 . . . . . . . . . . . . . . Line: 10 @@ -485,7 +523,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 2: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 181 . . . . . . . . . . . . . . Line: 10 @@ -543,7 +581,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 185 . . . . . . . . . . . . Line: 10 @@ -559,7 +597,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 186 . . . . . . . . . . . . . . Line: 10 @@ -595,7 +633,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 188 . . . . . . . . . . . . . . Line: 10 @@ -631,7 +669,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 2: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 190 . . . . . . . . . . . . . . Line: 10 @@ -689,7 +727,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_Array { -. . . . . . . . . . . Roles: Expression,Literal,List +. . . . . . . . . . . Roles: Expression,List,Literal . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 194 . . . . . . . . . . . . Line: 10 @@ -705,7 +743,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 195 . . . . . . . . . . . . . . Line: 10 @@ -741,7 +779,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 197 . . . . . . . . . . . . . . Line: 10 @@ -777,7 +815,7 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 2: Expr_ArrayItem { -. . . . . . . . . . . . . Roles: Expression,List,Entry +. . . . . . . . . . . . . Roles: Entry,Expression,List . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 199 . . . . . . . . . . . . . . Line: 10 diff --git a/fixtures/scalar_const_string.php.native b/fixtures/scalar_const_string.php.native index bd10ce8..b71f7a0 100644 --- a/fixtures/scalar_const_string.php.native +++ b/fixtures/scalar_const_string.php.native @@ -2,175 +2,178 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 8, - "endLine": 3, - "endTokenPos": 2, - "kind": 1, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "kind": 1, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_String", + "value": "" }, - "nodeType": "Scalar_String", - "value": "" - }, - { - "attributes": { - "endFilePos": 12, - "endLine": 4, - "endTokenPos": 5, - "kind": 2, - "startFilePos": 11, - "startLine": 4, - "startTokenPos": 5 + { + "attributes": { + "endFilePos": 12, + "endLine": 4, + "endTokenPos": 5, + "kind": 2, + "startFilePos": 11, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Scalar_String", + "value": "" }, - "nodeType": "Scalar_String", - "value": "" - }, - { - "attributes": { - "endFilePos": 17, - "endLine": 5, - "endTokenPos": 8, - "kind": 1, - "startFilePos": 15, - "startLine": 5, - "startTokenPos": 8 + { + "attributes": { + "endFilePos": 17, + "endLine": 5, + "endTokenPos": 8, + "kind": 1, + "startFilePos": 15, + "startLine": 5, + "startTokenPos": 8 + }, + "nodeType": "Scalar_String", + "value": "" }, - "nodeType": "Scalar_String", - "value": "" - }, - { - "attributes": { - "endFilePos": 22, - "endLine": 6, - "endTokenPos": 11, - "kind": 2, - "startFilePos": 20, - "startLine": 6, - "startTokenPos": 11 + { + "attributes": { + "endFilePos": 22, + "endLine": 6, + "endTokenPos": 11, + "kind": 2, + "startFilePos": 20, + "startLine": 6, + "startTokenPos": 11 + }, + "nodeType": "Scalar_String", + "value": "" }, - "nodeType": "Scalar_String", - "value": "" - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 7, - "endTokenPos": 14, - "kind": 1, - "startFilePos": 25, - "startLine": 7, - "startTokenPos": 14 + { + "attributes": { + "endFilePos": 28, + "endLine": 7, + "endTokenPos": 14, + "kind": 1, + "startFilePos": 25, + "startLine": 7, + "startTokenPos": 14 + }, + "nodeType": "Scalar_String", + "value": "Hi" }, - "nodeType": "Scalar_String", - "value": "Hi" - }, - { - "attributes": { - "endFilePos": 35, - "endLine": 8, - "endTokenPos": 17, - "kind": 1, - "startFilePos": 31, - "startLine": 8, - "startTokenPos": 17 + { + "attributes": { + "endFilePos": 35, + "endLine": 8, + "endTokenPos": 17, + "kind": 1, + "startFilePos": 31, + "startLine": 8, + "startTokenPos": 17 + }, + "nodeType": "Scalar_String", + "value": "Hi" }, - "nodeType": "Scalar_String", - "value": "Hi" - }, - { - "attributes": { - "endFilePos": 42, - "endLine": 9, - "endTokenPos": 20, - "kind": 1, - "startFilePos": 38, - "startLine": 9, - "startTokenPos": 20 + { + "attributes": { + "endFilePos": 42, + "endLine": 9, + "endTokenPos": 20, + "kind": 1, + "startFilePos": 38, + "startLine": 9, + "startTokenPos": 20 + }, + "nodeType": "Scalar_String", + "value": "Hi" }, - "nodeType": "Scalar_String", - "value": "Hi" - }, - { - "attributes": { - "endFilePos": 48, - "endLine": 10, - "endTokenPos": 23, - "kind": 2, - "startFilePos": 45, - "startLine": 10, - "startTokenPos": 23 + { + "attributes": { + "endFilePos": 48, + "endLine": 10, + "endTokenPos": 23, + "kind": 2, + "startFilePos": 45, + "startLine": 10, + "startTokenPos": 23 + }, + "nodeType": "Scalar_String", + "value": "Hi" }, - "nodeType": "Scalar_String", - "value": "Hi" - }, - { - "attributes": { - "endFilePos": 55, - "endLine": 11, - "endTokenPos": 26, - "kind": 2, - "startFilePos": 51, - "startLine": 11, - "startTokenPos": 26 + { + "attributes": { + "endFilePos": 55, + "endLine": 11, + "endTokenPos": 26, + "kind": 2, + "startFilePos": 51, + "startLine": 11, + "startTokenPos": 26 + }, + "nodeType": "Scalar_String", + "value": "Hi" }, - "nodeType": "Scalar_String", - "value": "Hi" - }, - { - "attributes": { - "endFilePos": 62, - "endLine": 12, - "endTokenPos": 29, - "kind": 2, - "startFilePos": 58, - "startLine": 12, - "startTokenPos": 29 + { + "attributes": { + "endFilePos": 62, + "endLine": 12, + "endTokenPos": 29, + "kind": 2, + "startFilePos": 58, + "startLine": 12, + "startTokenPos": 29 + }, + "nodeType": "Scalar_String", + "value": "Hi" }, - "nodeType": "Scalar_String", - "value": "Hi" - }, - { - "attributes": { - "endFilePos": 76, - "endLine": 13, - "endTokenPos": 32, - "kind": 1, - "startFilePos": 65, - "startLine": 13, - "startTokenPos": 32 + { + "attributes": { + "endFilePos": 76, + "endLine": 13, + "endTokenPos": 32, + "kind": 1, + "startFilePos": 65, + "startLine": 13, + "startTokenPos": 32 + }, + "nodeType": "Scalar_String", + "value": "!'!\\!\\a!" }, - "nodeType": "Scalar_String", - "value": "!'!\\!\\a!" - }, - { - "attributes": { - "endFilePos": 110, - "endLine": 14, - "endTokenPos": 35, - "kind": 2, - "startFilePos": 79, - "startLine": 14, - "startTokenPos": 35 + { + "attributes": { + "endFilePos": 110, + "endLine": 14, + "endTokenPos": 35, + "kind": 2, + "startFilePos": 79, + "startLine": 14, + "startTokenPos": 35 + }, + "nodeType": "Scalar_String", + "value": "!\"!\\!$!\n!\r!\t!\u000c!\u000b!\u001b!\\a" }, - "nodeType": "Scalar_String", - "value": "!\"!\\!$!\n!\r!\t!\u000c!\u000b!\u001b!\\a" - }, - { - "attributes": { - "endFilePos": 133, - "endLine": 15, - "endTokenPos": 38, - "kind": 2, - "startFilePos": 113, - "startLine": 15, - "startTokenPos": 38 - }, - "nodeType": "Scalar_String", - "value": "!ÿ!ÿ!\u0000!\u0000!" - } - ] + { + "attributes": { + "endFilePos": 133, + "endLine": 15, + "endTokenPos": 38, + "kind": 2, + "startFilePos": 113, + "startLine": 15, + "startTokenPos": 38 + }, + "nodeType": "Scalar_String", + "value": "!ÿ!ÿ!\u0000!\u0000!" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/scalar_const_string.php.uast b/fixtures/scalar_const_string.php.uast index 7eea807..aeef81b 100644 Binary files a/fixtures/scalar_const_string.php.uast and b/fixtures/scalar_const_string.php.uast differ diff --git a/fixtures/scalar_encapsed_string.php.native b/fixtures/scalar_encapsed_string.php.native index 22f8d06..de7db60 100644 --- a/fixtures/scalar_encapsed_string.php.native +++ b/fixtures/scalar_encapsed_string.php.native @@ -2,601 +2,579 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 10, - "endLine": 3, - "endTokenPos": 4, - "kind": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 9, - "endLine": 3, - "endTokenPos": 3, - "startFilePos": 8, - "startLine": 3, - "startTokenPos": 3 - }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 19, - "endLine": 4, - "endTokenPos": 11, - "kind": 2, - "startFilePos": 13, - "startLine": 4, - "startTokenPos": 7 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 10, + "endLine": 3, + "endTokenPos": 4, + "kind": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 9, + "endLine": 3, + "endTokenPos": 3, + "startFilePos": 8, + "startLine": 3, + "startTokenPos": 3 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 18, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 14, - "startLine": 4, - "startTokenPos": 8 - }, - "name": "B", - "nodeType": "Expr_PropertyFetch", - "var": { + { + "attributes": { + "endFilePos": 19, + "endLine": 4, + "endTokenPos": 11, + "kind": 2, + "startFilePos": 13, + "startLine": 4, + "startTokenPos": 7 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 15, + "endFilePos": 18, "endLine": 4, - "endTokenPos": 8, + "endTokenPos": 10, "startFilePos": 14, "startLine": 4, "startTokenPos": 8 }, - "name": "A", - "nodeType": "Expr_Variable" + "name": "B", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 15, + "endLine": 4, + "endTokenPos": 8, + "startFilePos": 14, + "startLine": 4, + "startTokenPos": 8 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 5, - "endTokenPos": 19, - "kind": 2, - "startFilePos": 22, - "startLine": 5, - "startTokenPos": 14 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 27, - "endLine": 5, - "endTokenPos": 18, - "startFilePos": 23, - "startLine": 5, - "startTokenPos": 15 - }, - "dim": { - "attributes": { - "endFilePos": 26, - "endLine": 5, - "endTokenPos": 17, - "startFilePos": 26, - "startLine": 5, - "startTokenPos": 17 - }, - "nodeType": "Scalar_String", - "value": "B" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 28, + "endLine": 5, + "endTokenPos": 19, + "kind": 2, + "startFilePos": 22, + "startLine": 5, + "startTokenPos": 14 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 24, + "endFilePos": 27, "endLine": 5, - "endTokenPos": 15, + "endTokenPos": 18, "startFilePos": 23, "startLine": 5, "startTokenPos": 15 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 26, + "endLine": 5, + "endTokenPos": 17, + "startFilePos": 26, + "startLine": 5, + "startTokenPos": 17 + }, + "nodeType": "Scalar_String", + "value": "B" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 24, + "endLine": 5, + "endTokenPos": 15, + "startFilePos": 23, + "startLine": 5, + "startTokenPos": 15 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 37, - "endLine": 6, - "endTokenPos": 27, - "kind": 2, - "startFilePos": 31, - "startLine": 6, - "startTokenPos": 22 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 6, - "endTokenPos": 26, - "startFilePos": 32, - "startLine": 6, - "startTokenPos": 23 - }, - "dim": { - "attributes": { - "endFilePos": 35, - "endLine": 6, - "endTokenPos": 25, - "startFilePos": 35, - "startLine": 6, - "startTokenPos": 25 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 37, + "endLine": 6, + "endTokenPos": 27, + "kind": 2, + "startFilePos": 31, + "startLine": 6, + "startTokenPos": 22 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 33, + "endFilePos": 36, "endLine": 6, - "endTokenPos": 23, + "endTokenPos": 26, "startFilePos": 32, "startLine": 6, "startTokenPos": 23 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 35, + "endLine": 6, + "endTokenPos": 25, + "startFilePos": 35, + "startLine": 6, + "startTokenPos": 25 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 33, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 32, + "startLine": 6, + "startTokenPos": 23 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 49, - "endLine": 7, - "endTokenPos": 35, - "kind": 2, - "startFilePos": 40, - "startLine": 7, - "startTokenPos": 30 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 48, - "endLine": 7, - "endTokenPos": 34, - "startFilePos": 41, - "startLine": 7, - "startTokenPos": 31 - }, - "dim": { - "attributes": { - "endFilePos": 47, - "endLine": 7, - "endTokenPos": 33, - "startFilePos": 44, - "startLine": 7, - "startTokenPos": 33 - }, - "nodeType": "Scalar_LNumber", - "value": 1234 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 49, + "endLine": 7, + "endTokenPos": 35, + "kind": 2, + "startFilePos": 40, + "startLine": 7, + "startTokenPos": 30 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 42, + "endFilePos": 48, "endLine": 7, - "endTokenPos": 31, + "endTokenPos": 34, "startFilePos": 41, "startLine": 7, "startTokenPos": 31 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 47, + "endLine": 7, + "endTokenPos": 33, + "startFilePos": 44, + "startLine": 7, + "startTokenPos": 33 + }, + "nodeType": "Scalar_LNumber", + "value": 1234 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 42, + "endLine": 7, + "endTokenPos": 31, + "startFilePos": 41, + "startLine": 7, + "startTokenPos": 31 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 76, - "endLine": 8, - "endTokenPos": 43, - "kind": 2, - "startFilePos": 52, - "startLine": 8, - "startTokenPos": 38 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 75, - "endLine": 8, - "endTokenPos": 42, - "startFilePos": 53, - "startLine": 8, - "startTokenPos": 39 - }, - "dim": { - "attributes": { - "endFilePos": 74, - "endLine": 8, - "endTokenPos": 41, - "startFilePos": 56, - "startLine": 8, - "startTokenPos": 41 - }, - "nodeType": "Scalar_String", - "value": "9223372036854775808" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 76, + "endLine": 8, + "endTokenPos": 43, + "kind": 2, + "startFilePos": 52, + "startLine": 8, + "startTokenPos": 38 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 54, + "endFilePos": 75, "endLine": 8, - "endTokenPos": 39, + "endTokenPos": 42, "startFilePos": 53, "startLine": 8, "startTokenPos": 39 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 74, + "endLine": 8, + "endTokenPos": 41, + "startFilePos": 56, + "startLine": 8, + "startTokenPos": 41 + }, + "nodeType": "Scalar_String", + "value": "9223372036854775808" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 54, + "endLine": 8, + "endTokenPos": 39, + "startFilePos": 53, + "startLine": 8, + "startTokenPos": 39 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 87, - "endLine": 9, - "endTokenPos": 51, - "kind": 2, - "startFilePos": 79, - "startLine": 9, - "startTokenPos": 46 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 86, - "endLine": 9, - "endTokenPos": 50, - "startFilePos": 80, - "startLine": 9, - "startTokenPos": 47 - }, - "dim": { - "attributes": { - "endFilePos": 85, - "endLine": 9, - "endTokenPos": 49, - "startFilePos": 83, - "startLine": 9, - "startTokenPos": 49 - }, - "nodeType": "Scalar_String", - "value": "000" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 87, + "endLine": 9, + "endTokenPos": 51, + "kind": 2, + "startFilePos": 79, + "startLine": 9, + "startTokenPos": 46 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 81, + "endFilePos": 86, "endLine": 9, - "endTokenPos": 47, + "endTokenPos": 50, "startFilePos": 80, "startLine": 9, "startTokenPos": 47 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 85, + "endLine": 9, + "endTokenPos": 49, + "startFilePos": 83, + "startLine": 9, + "startTokenPos": 49 + }, + "nodeType": "Scalar_String", + "value": "000" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 81, + "endLine": 9, + "endTokenPos": 47, + "startFilePos": 80, + "startLine": 9, + "startTokenPos": 47 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 98, - "endLine": 10, - "endTokenPos": 59, - "kind": 2, - "startFilePos": 90, - "startLine": 10, - "startTokenPos": 54 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 97, - "endLine": 10, - "endTokenPos": 58, - "startFilePos": 91, - "startLine": 10, - "startTokenPos": 55 - }, - "dim": { - "attributes": { - "endFilePos": 96, - "endLine": 10, - "endTokenPos": 57, - "startFilePos": 94, - "startLine": 10, - "startTokenPos": 57 - }, - "nodeType": "Scalar_String", - "value": "0x0" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 98, + "endLine": 10, + "endTokenPos": 59, + "kind": 2, + "startFilePos": 90, + "startLine": 10, + "startTokenPos": 54 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 92, + "endFilePos": 97, "endLine": 10, - "endTokenPos": 55, + "endTokenPos": 58, "startFilePos": 91, "startLine": 10, "startTokenPos": 55 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 96, + "endLine": 10, + "endTokenPos": 57, + "startFilePos": 94, + "startLine": 10, + "startTokenPos": 57 + }, + "nodeType": "Scalar_String", + "value": "0x0" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 92, + "endLine": 10, + "endTokenPos": 55, + "startFilePos": 91, + "startLine": 10, + "startTokenPos": 55 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 109, - "endLine": 11, - "endTokenPos": 67, - "kind": 2, - "startFilePos": 101, - "startLine": 11, - "startTokenPos": 62 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 108, - "endLine": 11, - "endTokenPos": 66, - "startFilePos": 102, - "startLine": 11, - "startTokenPos": 63 - }, - "dim": { - "attributes": { - "endFilePos": 107, - "endLine": 11, - "endTokenPos": 65, - "startFilePos": 105, - "startLine": 11, - "startTokenPos": 65 - }, - "nodeType": "Scalar_String", - "value": "0b0" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 109, + "endLine": 11, + "endTokenPos": 67, + "kind": 2, + "startFilePos": 101, + "startLine": 11, + "startTokenPos": 62 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 103, + "endFilePos": 108, "endLine": 11, - "endTokenPos": 63, + "endTokenPos": 66, "startFilePos": 102, "startLine": 11, "startTokenPos": 63 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 107, + "endLine": 11, + "endTokenPos": 65, + "startFilePos": 105, + "startLine": 11, + "startTokenPos": 65 + }, + "nodeType": "Scalar_String", + "value": "0b0" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 103, + "endLine": 11, + "endTokenPos": 63, + "startFilePos": 102, + "startLine": 11, + "startTokenPos": 63 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 119, - "endLine": 12, - "endTokenPos": 75, - "kind": 2, - "startFilePos": 112, - "startLine": 12, - "startTokenPos": 70 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 118, - "endLine": 12, - "endTokenPos": 74, - "startFilePos": 113, - "startLine": 12, - "startTokenPos": 71 - }, - "dim": { - "attributes": { - "endFilePos": 117, - "endLine": 12, - "endTokenPos": 73, - "startFilePos": 116, - "startLine": 12, - "startTokenPos": 73 - }, - "name": "B", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { + "attributes": { + "endFilePos": 119, + "endLine": 12, + "endTokenPos": 75, + "kind": 2, + "startFilePos": 112, + "startLine": 12, + "startTokenPos": 70 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 114, + "endFilePos": 118, "endLine": 12, - "endTokenPos": 71, + "endTokenPos": 74, "startFilePos": 113, "startLine": 12, "startTokenPos": 71 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 117, + "endLine": 12, + "endTokenPos": 73, + "startFilePos": 116, + "startLine": 12, + "startTokenPos": 73 + }, + "name": "B", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 114, + "endLine": 12, + "endTokenPos": 71, + "startFilePos": 113, + "startLine": 12, + "startTokenPos": 71 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 127, - "endLine": 13, - "endTokenPos": 82, - "kind": 2, - "startFilePos": 122, - "startLine": 13, - "startTokenPos": 78 - }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 125, - "endLine": 13, - "endTokenPos": 80, - "startFilePos": 124, - "startLine": 13, - "startTokenPos": 80 - }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 140, - "endLine": 14, - "endTokenPos": 92, - "kind": 2, - "startFilePos": 130, - "startLine": 14, - "startTokenPos": 85 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 138, - "endLine": 14, - "endTokenPos": 90, - "startFilePos": 132, - "startLine": 14, - "startTokenPos": 87 - }, - "dim": { + { + "attributes": { + "endFilePos": 127, + "endLine": 13, + "endTokenPos": 82, + "kind": 2, + "startFilePos": 122, + "startLine": 13, + "startTokenPos": 78 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 137, - "endLine": 14, - "endTokenPos": 89, - "kind": 1, - "startFilePos": 135, - "startLine": 14, - "startTokenPos": 89 + "endFilePos": 125, + "endLine": 13, + "endTokenPos": 80, + "startFilePos": 124, + "startLine": 13, + "startTokenPos": 80 }, - "nodeType": "Scalar_String", - "value": "B" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": "A", + "nodeType": "Expr_Variable" + } + ] + }, + { + "attributes": { + "endFilePos": 140, + "endLine": 14, + "endTokenPos": 92, + "kind": 2, + "startFilePos": 130, + "startLine": 14, + "startTokenPos": 85 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 133, + "endFilePos": 138, "endLine": 14, - "endTokenPos": 87, + "endTokenPos": 90, "startFilePos": 132, "startLine": 14, "startTokenPos": 87 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 137, + "endLine": 14, + "endTokenPos": 89, + "kind": 1, + "startFilePos": 135, + "startLine": 14, + "startTokenPos": 89 + }, + "nodeType": "Scalar_String", + "value": "B" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 133, + "endLine": 14, + "endTokenPos": 87, + "startFilePos": 132, + "startLine": 14, + "startTokenPos": 87 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 148, - "endLine": 15, - "endTokenPos": 99, - "kind": 2, - "startFilePos": 143, - "startLine": 15, - "startTokenPos": 95 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 147, - "endLine": 15, - "endTokenPos": 98, - "startFilePos": 144, - "startLine": 15, - "startTokenPos": 96 - }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 161, - "endLine": 16, - "endTokenPos": 109, - "kind": 2, - "startFilePos": 151, - "startLine": 16, - "startTokenPos": 102 - }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 160, - "endLine": 16, - "endTokenPos": 108, - "startFilePos": 152, - "startLine": 16, - "startTokenPos": 103 - }, - "dim": { + { + "attributes": { + "endFilePos": 148, + "endLine": 15, + "endTokenPos": 99, + "kind": 2, + "startFilePos": 143, + "startLine": 15, + "startTokenPos": 95 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 158, - "endLine": 16, - "endTokenPos": 106, - "kind": 1, - "startFilePos": 156, - "startLine": 16, - "startTokenPos": 106 + "endFilePos": 147, + "endLine": 15, + "endTokenPos": 98, + "startFilePos": 144, + "startLine": 15, + "startTokenPos": 96 }, - "nodeType": "Scalar_String", - "value": "B" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": "A", + "nodeType": "Expr_Variable" + } + ] + }, + { + "attributes": { + "endFilePos": 161, + "endLine": 16, + "endTokenPos": 109, + "kind": 2, + "startFilePos": 151, + "startLine": 16, + "startTokenPos": 102 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { "endFilePos": 160, "endLine": 16, @@ -605,259 +583,273 @@ "startLine": 16, "startTokenPos": 103 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 158, + "endLine": 16, + "endTokenPos": 106, + "kind": 1, + "startFilePos": 156, + "startLine": 16, + "startTokenPos": 106 + }, + "nodeType": "Scalar_String", + "value": "B" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 160, + "endLine": 16, + "endTokenPos": 108, + "startFilePos": 152, + "startLine": 16, + "startTokenPos": 103 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 170, - "endLine": 17, - "endTokenPos": 116, - "kind": 2, - "startFilePos": 164, - "startLine": 17, - "startTokenPos": 112 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 169, - "endLine": 17, - "endTokenPos": 115, - "startFilePos": 165, - "startLine": 17, - "startTokenPos": 113 - }, - "name": { + { + "attributes": { + "endFilePos": 170, + "endLine": 17, + "endTokenPos": 116, + "kind": 2, + "startFilePos": 164, + "startLine": 17, + "startTokenPos": 112 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 168, + "endFilePos": 169, "endLine": 17, - "endTokenPos": 114, - "startFilePos": 167, + "endTokenPos": 115, + "startFilePos": 165, "startLine": 17, - "startTokenPos": 114 + "startTokenPos": 113 + }, + "name": { + "attributes": { + "endFilePos": 168, + "endLine": 17, + "endTokenPos": 114, + "startFilePos": 167, + "startLine": 17, + "startTokenPos": 114 + }, + "name": "A", + "nodeType": "Expr_Variable" }, - "name": "A", "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 179, - "endLine": 18, - "endTokenPos": 123, - "kind": 2, - "startFilePos": 173, - "startLine": 18, - "startTokenPos": 119 + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 175, - "endLine": 18, - "endTokenPos": 120, - "startFilePos": 174, - "startLine": 18, - "startTokenPos": 120 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "\\{" + { + "attributes": { + "endFilePos": 179, + "endLine": 18, + "endTokenPos": 123, + "kind": 2, + "startFilePos": 173, + "startLine": 18, + "startTokenPos": 119 }, - { - "attributes": { - "endFilePos": 177, - "endLine": 18, - "endTokenPos": 121, - "startFilePos": 176, - "startLine": 18, - "startTokenPos": 121 + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 175, + "endLine": 18, + "endTokenPos": 120, + "startFilePos": 174, + "startLine": 18, + "startTokenPos": 120 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "\\{" }, - "name": "A", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 178, - "endLine": 18, - "endTokenPos": 122, - "startFilePos": 178, - "startLine": 18, - "startTokenPos": 122 + { + "attributes": { + "endFilePos": 177, + "endLine": 18, + "endTokenPos": 121, + "startFilePos": 176, + "startLine": 18, + "startTokenPos": 121 + }, + "name": "A", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "}" - } - ] - }, - { - "attributes": { - "endFilePos": 190, - "endLine": 19, - "endTokenPos": 130, - "kind": 2, - "startFilePos": 182, - "startLine": 19, - "startTokenPos": 126 + { + "attributes": { + "endFilePos": 178, + "endLine": 18, + "endTokenPos": 122, + "startFilePos": 178, + "startLine": 18, + "startTokenPos": 122 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "}" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 185, - "endLine": 19, - "endTokenPos": 127, - "startFilePos": 183, - "startLine": 19, - "startTokenPos": 127 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "\\{ " + { + "attributes": { + "endFilePos": 190, + "endLine": 19, + "endTokenPos": 130, + "kind": 2, + "startFilePos": 182, + "startLine": 19, + "startTokenPos": 126 }, - { - "attributes": { - "endFilePos": 187, - "endLine": 19, - "endTokenPos": 128, - "startFilePos": 186, - "startLine": 19, - "startTokenPos": 128 + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 185, + "endLine": 19, + "endTokenPos": 127, + "startFilePos": 183, + "startLine": 19, + "startTokenPos": 127 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "\\{ " }, - "name": "A", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 189, - "endLine": 19, - "endTokenPos": 129, - "startFilePos": 188, - "startLine": 19, - "startTokenPos": 129 + { + "attributes": { + "endFilePos": 187, + "endLine": 19, + "endTokenPos": 128, + "startFilePos": 186, + "startLine": 19, + "startTokenPos": 128 + }, + "name": "A", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_EncapsedStringPart", - "value": " }" - } - ] - }, - { - "attributes": { - "endFilePos": 200, - "endLine": 20, - "endTokenPos": 138, - "kind": 2, - "startFilePos": 193, - "startLine": 20, - "startTokenPos": 133 + { + "attributes": { + "endFilePos": 189, + "endLine": 19, + "endTokenPos": 129, + "startFilePos": 188, + "startLine": 19, + "startTokenPos": 129 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": " }" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 195, - "endLine": 20, - "endTokenPos": 134, - "startFilePos": 194, - "startLine": 20, - "startTokenPos": 134 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "\\" + { + "attributes": { + "endFilePos": 200, + "endLine": 20, + "endTokenPos": 138, + "kind": 2, + "startFilePos": 193, + "startLine": 20, + "startTokenPos": 133 }, - { - "attributes": { - "endFilePos": 198, - "endLine": 20, - "endTokenPos": 136, - "startFilePos": 197, - "startLine": 20, - "startTokenPos": 136 + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 195, + "endLine": 20, + "endTokenPos": 134, + "startFilePos": 194, + "startLine": 20, + "startTokenPos": 134 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "\\" }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 212, - "endLine": 21, - "endTokenPos": 145, - "kind": 2, - "startFilePos": 203, - "startLine": 21, - "startTokenPos": 141 + { + "attributes": { + "endFilePos": 198, + "endLine": 20, + "endTokenPos": 136, + "startFilePos": 197, + "startLine": 20, + "startTokenPos": 136 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 207, - "endLine": 21, - "endTokenPos": 142, - "startFilePos": 204, - "startLine": 21, - "startTokenPos": 142 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "\\{ " + { + "attributes": { + "endFilePos": 212, + "endLine": 21, + "endTokenPos": 145, + "kind": 2, + "startFilePos": 203, + "startLine": 21, + "startTokenPos": 141 }, - { - "attributes": { - "endFilePos": 209, - "endLine": 21, - "endTokenPos": 143, - "startFilePos": 208, - "startLine": 21, - "startTokenPos": 143 + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 207, + "endLine": 21, + "endTokenPos": 142, + "startFilePos": 204, + "startLine": 21, + "startTokenPos": 142 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "\\{ " }, - "name": "A", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 211, - "endLine": 21, - "endTokenPos": 144, - "startFilePos": 210, - "startLine": 21, - "startTokenPos": 144 + { + "attributes": { + "endFilePos": 209, + "endLine": 21, + "endTokenPos": 143, + "startFilePos": 208, + "startLine": 21, + "startTokenPos": 143 + }, + "name": "A", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_EncapsedStringPart", - "value": " }" - } - ] - }, - { - "attributes": { - "endFilePos": 224, - "endLine": 22, - "endTokenPos": 154, - "kind": 2, - "startFilePos": 215, - "startLine": 22, - "startTokenPos": 148 + { + "attributes": { + "endFilePos": 211, + "endLine": 21, + "endTokenPos": 144, + "startFilePos": 210, + "startLine": 21, + "startTokenPos": 144 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": " }" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 219, - "endLine": 22, - "endTokenPos": 151, - "startFilePos": 217, - "startLine": 22, - "startTokenPos": 150 - }, - "name": { + { + "attributes": { + "endFilePos": 224, + "endLine": 22, + "endTokenPos": 154, + "kind": 2, + "startFilePos": 215, + "startLine": 22, + "startTokenPos": 148 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { "endFilePos": 219, "endLine": 22, @@ -866,187 +858,198 @@ "startLine": 22, "startTokenPos": 150 }, - "name": "A", + "name": { + "attributes": { + "endFilePos": 219, + "endLine": 22, + "endTokenPos": 151, + "startFilePos": 217, + "startLine": 22, + "startTokenPos": 150 + }, + "name": "A", + "nodeType": "Expr_Variable" + }, "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 223, - "endLine": 22, - "endTokenPos": 153, - "startFilePos": 221, - "startLine": 22, - "startTokenPos": 153 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "[B]" - } - ] - }, - { - "attributes": { - "endFilePos": 234, - "endLine": 23, - "endTokenPos": 163, - "kind": 2, - "startFilePos": 227, - "startLine": 23, - "startTokenPos": 157 + { + "attributes": { + "endFilePos": 223, + "endLine": 22, + "endTokenPos": 153, + "startFilePos": 221, + "startLine": 22, + "startTokenPos": 153 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "[B]" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 228, - "endLine": 23, - "endTokenPos": 158, - "startFilePos": 228, - "startLine": 23, - "startTokenPos": 158 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "$" + { + "attributes": { + "endFilePos": 234, + "endLine": 23, + "endTokenPos": 163, + "kind": 2, + "startFilePos": 227, + "startLine": 23, + "startTokenPos": 157 }, - { - "attributes": { - "endFilePos": 233, - "endLine": 23, - "endTokenPos": 162, - "startFilePos": 229, - "startLine": 23, - "startTokenPos": 159 - }, - "dim": { + "nodeType": "Scalar_Encapsed", + "parts": [ + { "attributes": { - "endFilePos": 232, + "endFilePos": 228, "endLine": 23, - "endTokenPos": 161, - "startFilePos": 232, + "endTokenPos": 158, + "startFilePos": 228, "startLine": 23, - "startTokenPos": 161 + "startTokenPos": 158 }, - "nodeType": "Scalar_String", - "value": "B" + "nodeType": "Scalar_EncapsedStringPart", + "value": "$" }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 230, + "endFilePos": 233, "endLine": 23, - "endTokenPos": 159, + "endTokenPos": 162, "startFilePos": 229, "startLine": 23, "startTokenPos": 159 }, - "name": "A", - "nodeType": "Expr_Variable" + "dim": { + "attributes": { + "endFilePos": 232, + "endLine": 23, + "endTokenPos": 161, + "startFilePos": 232, + "startLine": 23, + "startTokenPos": 161 + }, + "nodeType": "Scalar_String", + "value": "B" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 230, + "endLine": 23, + "endTokenPos": 159, + "startFilePos": 229, + "startLine": 23, + "startTokenPos": 159 + }, + "name": "A", + "nodeType": "Expr_Variable" + } } - } - ] - }, - { - "attributes": { - "endFilePos": 244, - "endLine": 24, - "endTokenPos": 170, - "kind": 2, - "startFilePos": 237, - "startLine": 24, - "startTokenPos": 166 + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 239, - "endLine": 24, - "endTokenPos": 167, - "startFilePos": 238, - "startLine": 24, - "startTokenPos": 167 - }, - "nodeType": "Scalar_EncapsedStringPart", - "value": "A " + { + "attributes": { + "endFilePos": 244, + "endLine": 24, + "endTokenPos": 170, + "kind": 2, + "startFilePos": 237, + "startLine": 24, + "startTokenPos": 166 }, - { - "attributes": { - "endFilePos": 241, - "endLine": 24, - "endTokenPos": 168, - "startFilePos": 240, - "startLine": 24, - "startTokenPos": 168 + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 239, + "endLine": 24, + "endTokenPos": 167, + "startFilePos": 238, + "startLine": 24, + "startTokenPos": 167 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": "A " }, - "name": "B", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 243, - "endLine": 24, - "endTokenPos": 169, - "startFilePos": 242, - "startLine": 24, - "startTokenPos": 169 + { + "attributes": { + "endFilePos": 241, + "endLine": 24, + "endTokenPos": 168, + "startFilePos": 240, + "startLine": 24, + "startTokenPos": 168 + }, + "name": "B", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_EncapsedStringPart", - "value": " C" - } - ] - }, - { - "attributes": { - "endFilePos": 251, - "endLine": 25, - "endTokenPos": 175, - "kind": 2, - "startFilePos": 247, - "startLine": 25, - "startTokenPos": 173 + { + "attributes": { + "endFilePos": 243, + "endLine": 24, + "endTokenPos": 169, + "startFilePos": 242, + "startLine": 24, + "startTokenPos": 169 + }, + "nodeType": "Scalar_EncapsedStringPart", + "value": " C" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 250, - "endLine": 25, - "endTokenPos": 174, - "startFilePos": 249, - "startLine": 25, - "startTokenPos": 174 - }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 258, - "endLine": 26, - "endTokenPos": 180, - "kind": 2, - "startFilePos": 254, - "startLine": 26, - "startTokenPos": 178 + { + "attributes": { + "endFilePos": 251, + "endLine": 25, + "endTokenPos": 175, + "kind": 2, + "startFilePos": 247, + "startLine": 25, + "startTokenPos": 173 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 250, + "endLine": 25, + "endTokenPos": 174, + "startFilePos": 249, + "startLine": 25, + "startTokenPos": 174 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] }, - "nodeType": "Scalar_Encapsed", - "parts": [ - { - "attributes": { - "endFilePos": 257, - "endLine": 26, - "endTokenPos": 179, - "startFilePos": 256, - "startLine": 26, - "startTokenPos": 179 - }, - "name": "A", - "nodeType": "Expr_Variable" - } - ] - } - ] + { + "attributes": { + "endFilePos": 258, + "endLine": 26, + "endTokenPos": 180, + "kind": 2, + "startFilePos": 254, + "startLine": 26, + "startTokenPos": 178 + }, + "nodeType": "Scalar_Encapsed", + "parts": [ + { + "attributes": { + "endFilePos": 257, + "endLine": 26, + "endTokenPos": 179, + "startFilePos": 256, + "startLine": 26, + "startTokenPos": 179 + }, + "name": "A", + "nodeType": "Expr_Variable" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/scalar_encapsed_string.php.uast b/fixtures/scalar_encapsed_string.php.uast index 652b491..290f7b3 100644 --- a/fixtures/scalar_encapsed_string.php.uast +++ b/fixtures/scalar_encapsed_string.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 8 . . . . . . Line: 3 @@ -37,11 +36,20 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 13 . . . . Line: 4 @@ -57,8 +65,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_PropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value -. . . . . TOKEN "B" +. . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . StartPosition: { . . . . . . Offset: 14 . . . . . . Line: 4 @@ -73,9 +80,15 @@ File { . . . . . . internalRole: parts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "B" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 14 . . . . . . . . Line: 4 @@ -89,13 +102,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 2: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 22 . . . . Line: 5 @@ -111,7 +133,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 23 . . . . . . Line: 5 @@ -128,7 +150,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 23 . . . . . . . . Line: 5 @@ -142,6 +163,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -165,7 +195,7 @@ File { . . . } . . } . . 3: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 31 . . . . Line: 6 @@ -181,7 +211,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 32 . . . . . . Line: 6 @@ -198,7 +228,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 32 . . . . . . . . Line: 6 @@ -212,6 +241,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_LNumber { . . . . . . . Roles: Expression,Literal,Number @@ -235,7 +273,7 @@ File { . . . } . . } . . 4: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 40 . . . . Line: 7 @@ -251,7 +289,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 41 . . . . . . Line: 7 @@ -268,7 +306,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 41 . . . . . . . . Line: 7 @@ -282,6 +319,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_LNumber { . . . . . . . Roles: Expression,Literal,Number @@ -305,7 +351,7 @@ File { . . . } . . } . . 5: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 52 . . . . Line: 8 @@ -321,7 +367,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 53 . . . . . . Line: 8 @@ -338,7 +384,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 53 . . . . . . . . Line: 8 @@ -352,6 +397,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -375,7 +429,7 @@ File { . . . } . . } . . 6: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 79 . . . . Line: 9 @@ -391,7 +445,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 80 . . . . . . Line: 9 @@ -408,7 +462,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 80 . . . . . . . . Line: 9 @@ -422,6 +475,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -445,7 +507,7 @@ File { . . . } . . } . . 7: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 90 . . . . Line: 10 @@ -461,7 +523,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 91 . . . . . . Line: 10 @@ -478,7 +540,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 91 . . . . . . . . Line: 10 @@ -492,6 +553,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -515,7 +585,7 @@ File { . . . } . . } . . 8: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 101 . . . . Line: 11 @@ -531,7 +601,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 102 . . . . . . Line: 11 @@ -548,7 +618,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 102 . . . . . . . . Line: 11 @@ -562,6 +631,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -585,7 +663,7 @@ File { . . . } . . } . . 9: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 112 . . . . Line: 12 @@ -601,7 +679,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 113 . . . . . . Line: 12 @@ -618,7 +696,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 113 . . . . . . . . Line: 12 @@ -632,10 +709,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "B" . . . . . . . StartPosition: { . . . . . . . . Offset: 116 . . . . . . . . Line: 12 @@ -649,13 +734,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: dim . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "B" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 10: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 122 . . . . Line: 13 @@ -672,7 +766,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 124 . . . . . . Line: 13 @@ -686,11 +779,20 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 11: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 130 . . . . Line: 14 @@ -706,7 +808,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 132 . . . . . . Line: 14 @@ -723,7 +825,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 132 . . . . . . . . Line: 14 @@ -737,6 +838,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -760,7 +870,7 @@ File { . . . } . . } . . 12: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 143 . . . . Line: 15 @@ -777,7 +887,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 144 . . . . . . Line: 15 @@ -791,11 +900,20 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 13: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 151 . . . . Line: 16 @@ -811,7 +929,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 152 . . . . . . Line: 16 @@ -828,7 +946,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 152 . . . . . . . . Line: 16 @@ -842,6 +959,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -865,7 +991,7 @@ File { . . . } . . } . . 14: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 164 . . . . Line: 17 @@ -898,7 +1024,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 167 . . . . . . . . Line: 17 @@ -912,14 +1037,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 15: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 173 . . . . Line: 18 @@ -953,7 +1086,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 176 . . . . . . Line: 18 @@ -967,6 +1099,15 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Scalar_EncapsedStringPart { . . . . . Roles: Expression,Identifier,Value @@ -988,8 +1129,7 @@ File { . . . } . . } . . 16: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 182 . . . . Line: 19 @@ -1023,7 +1163,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 186 . . . . . . Line: 19 @@ -1037,6 +1176,15 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Scalar_EncapsedStringPart { . . . . . Roles: Expression,Identifier,Value @@ -1058,8 +1206,7 @@ File { . . . } . . } . . 17: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 193 . . . . Line: 20 @@ -1093,7 +1240,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 197 . . . . . . Line: 20 @@ -1107,12 +1253,20 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 18: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 203 . . . . Line: 21 @@ -1146,7 +1300,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 208 . . . . . . Line: 21 @@ -1160,6 +1313,15 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Scalar_EncapsedStringPart { . . . . . Roles: Expression,Identifier,Value @@ -1181,8 +1343,7 @@ File { . . . } . . } . . 19: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 215 . . . . Line: 22 @@ -1215,7 +1376,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 217 . . . . . . . . Line: 22 @@ -1229,6 +1389,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -1252,8 +1421,7 @@ File { . . . } . . } . . 20: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 227 . . . . Line: 23 @@ -1286,7 +1454,7 @@ File { . . . . . } . . . . } . . . . 1: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 229 . . . . . . Line: 23 @@ -1303,7 +1471,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 229 . . . . . . . . Line: 23 @@ -1317,6 +1484,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "A" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String @@ -1340,8 +1516,7 @@ File { . . . } . . } . . 21: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete -. . . TOKEN "\\" +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 237 . . . . Line: 24 @@ -1375,7 +1550,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "B" . . . . . StartPosition: { . . . . . . Offset: 240 . . . . . . Line: 24 @@ -1389,6 +1563,15 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "B" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Scalar_EncapsedStringPart { . . . . . Roles: Expression,Identifier,Value @@ -1410,7 +1593,7 @@ File { . . . } . . } . . 22: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 247 . . . . Line: 25 @@ -1427,7 +1610,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 249 . . . . . . Line: 25 @@ -1441,11 +1623,20 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 23: Scalar_Encapsed { -. . . Roles: Expression,Literal,String,Incomplete +. . . Roles: Expression,Incomplete,Literal,String . . . StartPosition: { . . . . Offset: 254 . . . . Line: 26 @@ -1462,7 +1653,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 256 . . . . . . Line: 26 @@ -1476,6 +1666,15 @@ File { . . . . . Properties: { . . . . . . internalRole: parts . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/scalar_float.php.native b/fixtures/scalar_float.php.native index 86b40d9..781df2b 100644 --- a/fixtures/scalar_float.php.native +++ b/fixtures/scalar_float.php.native @@ -2,90 +2,93 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 9, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 9, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_DNumber", + "value": 0 }, - "nodeType": "Scalar_DNumber", - "value": 0 - }, - { - "attributes": { - "endFilePos": 14, - "endLine": 4, - "endTokenPos": 5, - "startFilePos": 12, - "startLine": 4, - "startTokenPos": 5 + { + "attributes": { + "endFilePos": 14, + "endLine": 4, + "endTokenPos": 5, + "startFilePos": 12, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Scalar_DNumber", + "value": 0 }, - "nodeType": "Scalar_DNumber", - "value": 0 - }, - { - "attributes": { - "endFilePos": 19, - "endLine": 5, - "endTokenPos": 8, - "startFilePos": 17, - "startLine": 5, - "startTokenPos": 8 + { + "attributes": { + "endFilePos": 19, + "endLine": 5, + "endTokenPos": 8, + "startFilePos": 17, + "startLine": 5, + "startTokenPos": 8 + }, + "nodeType": "Scalar_DNumber", + "value": 0 }, - "nodeType": "Scalar_DNumber", - "value": 0 - }, - { - "attributes": { - "endFilePos": 25, - "endLine": 6, - "endTokenPos": 11, - "startFilePos": 22, - "startLine": 6, - "startTokenPos": 11 + { + "attributes": { + "endFilePos": 25, + "endLine": 6, + "endTokenPos": 11, + "startFilePos": 22, + "startLine": 6, + "startTokenPos": 11 + }, + "nodeType": "Scalar_DNumber", + "value": 0 }, - "nodeType": "Scalar_DNumber", - "value": 0 - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 7, - "endTokenPos": 14, - "startFilePos": 28, - "startLine": 7, - "startTokenPos": 14 + { + "attributes": { + "endFilePos": 31, + "endLine": 7, + "endTokenPos": 14, + "startFilePos": 28, + "startLine": 7, + "startTokenPos": 14 + }, + "nodeType": "Scalar_DNumber", + "value": 0 }, - "nodeType": "Scalar_DNumber", - "value": 0 - }, - { - "attributes": { - "endFilePos": 41, - "endLine": 8, - "endTokenPos": 17, - "startFilePos": 34, - "startLine": 8, - "startTokenPos": 17 + { + "attributes": { + "endFilePos": 41, + "endLine": 8, + "endTokenPos": 17, + "startFilePos": 34, + "startLine": 8, + "startTokenPos": 17 + }, + "nodeType": "Scalar_DNumber", + "value": 302000000000 }, - "nodeType": "Scalar_DNumber", - "value": 302000000000 - }, - { - "attributes": { - "endFilePos": 54, - "endLine": 9, - "endTokenPos": 20, - "startFilePos": 44, - "startLine": 9, - "startTokenPos": 20 - }, - "nodeType": "Scalar_DNumber", - "value": 3.002e+102 - } - ] + { + "attributes": { + "endFilePos": 54, + "endLine": 9, + "endTokenPos": 20, + "startFilePos": 44, + "startLine": 9, + "startTokenPos": 20 + }, + "nodeType": "Scalar_DNumber", + "value": 3.002e+102 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/scalar_float.php.uast b/fixtures/scalar_float.php.uast index 4c5d146..666573e 100644 --- a/fixtures/scalar_float.php.uast +++ b/fixtures/scalar_float.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Scalar_DNumber { . . . Roles: Expression,Literal,Number @@ -92,7 +92,7 @@ File { . . } . . 5: Scalar_DNumber { . . . Roles: Expression,Literal,Number -. . . TOKEN "3.02e+11" +. . . TOKEN "302000000000" . . . StartPosition: { . . . . Offset: 34 . . . . Line: 8 diff --git a/fixtures/scalar_int.php.native b/fixtures/scalar_int.php.native index 4f28e31..04b3695 100644 --- a/fixtures/scalar_int.php.native +++ b/fixtures/scalar_int.php.native @@ -2,97 +2,100 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 7, - "endLine": 3, - "endTokenPos": 2, - "kind": 10, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "kind": 10, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_LNumber", + "value": 0 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - { - "attributes": { - "endFilePos": 10, - "endLine": 4, - "endTokenPos": 5, - "kind": 10, - "startFilePos": 10, - "startLine": 4, - "startTokenPos": 5 + { + "attributes": { + "endFilePos": 10, + "endLine": 4, + "endTokenPos": 5, + "kind": 10, + "startFilePos": 10, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - { - "attributes": { - "endFilePos": 17, - "endLine": 5, - "endTokenPos": 8, - "kind": 16, - "startFilePos": 13, - "startLine": 5, - "startTokenPos": 8 + { + "attributes": { + "endFilePos": 17, + "endLine": 5, + "endTokenPos": 8, + "kind": 16, + "startFilePos": 13, + "startLine": 5, + "startTokenPos": 8 + }, + "nodeType": "Scalar_LNumber", + "value": 4095 }, - "nodeType": "Scalar_LNumber", - "value": 4095 - }, - { - "attributes": { - "endFilePos": 24, - "endLine": 6, - "endTokenPos": 11, - "kind": 16, - "startFilePos": 20, - "startLine": 6, - "startTokenPos": 11 + { + "attributes": { + "endFilePos": 24, + "endLine": 6, + "endTokenPos": 11, + "kind": 16, + "startFilePos": 20, + "startLine": 6, + "startTokenPos": 11 + }, + "nodeType": "Scalar_LNumber", + "value": 4095 }, - "nodeType": "Scalar_LNumber", - "value": 4095 - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 7, - "endTokenPos": 14, - "kind": 16, - "startFilePos": 27, - "startLine": 7, - "startTokenPos": 14 + { + "attributes": { + "endFilePos": 31, + "endLine": 7, + "endTokenPos": 14, + "kind": 16, + "startFilePos": 27, + "startLine": 7, + "startTokenPos": 14 + }, + "nodeType": "Scalar_LNumber", + "value": 4095 }, - "nodeType": "Scalar_LNumber", - "value": 4095 - }, - { - "attributes": { - "endFilePos": 37, - "endLine": 8, - "endTokenPos": 17, - "kind": 8, - "startFilePos": 34, - "startLine": 8, - "startTokenPos": 17 + { + "attributes": { + "endFilePos": 37, + "endLine": 8, + "endTokenPos": 17, + "kind": 8, + "startFilePos": 34, + "startLine": 8, + "startTokenPos": 17 + }, + "nodeType": "Scalar_LNumber", + "value": 511 }, - "nodeType": "Scalar_LNumber", - "value": 511 - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 9, - "endTokenPos": 20, - "kind": 2, - "startFilePos": 40, - "startLine": 9, - "startTokenPos": 20 - }, - "nodeType": "Scalar_LNumber", - "value": 3640 - } - ] + { + "attributes": { + "endFilePos": 53, + "endLine": 9, + "endTokenPos": 20, + "kind": 2, + "startFilePos": 40, + "startLine": 9, + "startTokenPos": 20 + }, + "nodeType": "Scalar_LNumber", + "value": 3640 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/scalar_int.php.uast b/fixtures/scalar_int.php.uast index 305470e..9bff47f 100644 --- a/fixtures/scalar_int.php.uast +++ b/fixtures/scalar_int.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Scalar_LNumber { . . . Roles: Expression,Literal,Number diff --git a/fixtures/scalar_magicconst.php.native b/fixtures/scalar_magicconst.php.native index 233f591..ec81970 100644 --- a/fixtures/scalar_magicconst.php.native +++ b/fixtures/scalar_magicconst.php.native @@ -2,94 +2,97 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 15, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 15, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_MagicConst_Class" }, - "nodeType": "Scalar_MagicConst_Class" - }, - { - "attributes": { - "endFilePos": 24, - "endLine": 4, - "endTokenPos": 5, - "startFilePos": 18, - "startLine": 4, - "startTokenPos": 5 + { + "attributes": { + "endFilePos": 24, + "endLine": 4, + "endTokenPos": 5, + "startFilePos": 18, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Scalar_MagicConst_Dir" }, - "nodeType": "Scalar_MagicConst_Dir" - }, - { - "attributes": { - "endFilePos": 34, - "endLine": 5, - "endTokenPos": 8, - "startFilePos": 27, - "startLine": 5, - "startTokenPos": 8 + { + "attributes": { + "endFilePos": 34, + "endLine": 5, + "endTokenPos": 8, + "startFilePos": 27, + "startLine": 5, + "startTokenPos": 8 + }, + "nodeType": "Scalar_MagicConst_File" }, - "nodeType": "Scalar_MagicConst_File" - }, - { - "attributes": { - "endFilePos": 48, - "endLine": 6, - "endTokenPos": 11, - "startFilePos": 37, - "startLine": 6, - "startTokenPos": 11 + { + "attributes": { + "endFilePos": 48, + "endLine": 6, + "endTokenPos": 11, + "startFilePos": 37, + "startLine": 6, + "startTokenPos": 11 + }, + "nodeType": "Scalar_MagicConst_Function" }, - "nodeType": "Scalar_MagicConst_Function" - }, - { - "attributes": { - "endFilePos": 58, - "endLine": 7, - "endTokenPos": 14, - "startFilePos": 51, - "startLine": 7, - "startTokenPos": 14 + { + "attributes": { + "endFilePos": 58, + "endLine": 7, + "endTokenPos": 14, + "startFilePos": 51, + "startLine": 7, + "startTokenPos": 14 + }, + "nodeType": "Scalar_MagicConst_Line" }, - "nodeType": "Scalar_MagicConst_Line" - }, - { - "attributes": { - "endFilePos": 70, - "endLine": 8, - "endTokenPos": 17, - "startFilePos": 61, - "startLine": 8, - "startTokenPos": 17 + { + "attributes": { + "endFilePos": 70, + "endLine": 8, + "endTokenPos": 17, + "startFilePos": 61, + "startLine": 8, + "startTokenPos": 17 + }, + "nodeType": "Scalar_MagicConst_Method" }, - "nodeType": "Scalar_MagicConst_Method" - }, - { - "attributes": { - "endFilePos": 85, - "endLine": 9, - "endTokenPos": 20, - "startFilePos": 73, - "startLine": 9, - "startTokenPos": 20 + { + "attributes": { + "endFilePos": 85, + "endLine": 9, + "endTokenPos": 20, + "startFilePos": 73, + "startLine": 9, + "startTokenPos": 20 + }, + "nodeType": "Scalar_MagicConst_Namespace" }, - "nodeType": "Scalar_MagicConst_Namespace" - }, - { - "attributes": { - "endFilePos": 96, - "endLine": 10, - "endTokenPos": 23, - "startFilePos": 88, - "startLine": 10, - "startTokenPos": 23 - }, - "nodeType": "Scalar_MagicConst_Trait" - } - ] + { + "attributes": { + "endFilePos": 96, + "endLine": 10, + "endTokenPos": 23, + "startFilePos": 88, + "startLine": 10, + "startTokenPos": 23 + }, + "nodeType": "Scalar_MagicConst_Trait" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/scalar_magicconst.php.uast b/fixtures/scalar_magicconst.php.uast index 286ee2f..91a31a8 100644 --- a/fixtures/scalar_magicconst.php.uast +++ b/fixtures/scalar_magicconst.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Scalar_MagicConst_Class { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,7 +22,7 @@ File { . . . } . . } . . 1: Scalar_MagicConst_Dir { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 18 . . . . Line: 4 @@ -38,7 +38,7 @@ File { . . . } . . } . . 2: Scalar_MagicConst_File { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 27 . . . . Line: 5 @@ -54,7 +54,7 @@ File { . . . } . . } . . 3: Scalar_MagicConst_Function { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 37 . . . . Line: 6 @@ -70,7 +70,7 @@ File { . . . } . . } . . 4: Scalar_MagicConst_Line { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 51 . . . . Line: 7 @@ -86,7 +86,7 @@ File { . . . } . . } . . 5: Scalar_MagicConst_Method { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 61 . . . . Line: 8 @@ -102,7 +102,7 @@ File { . . . } . . } . . 6: Scalar_MagicConst_Namespace { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 73 . . . . Line: 9 @@ -118,7 +118,7 @@ File { . . . } . . } . . 7: Scalar_MagicConst_Trait { -. . . Roles: Expression,Literal,Incomplete +. . . Roles: Expression,Incomplete,Literal . . . StartPosition: { . . . . Offset: 88 . . . . Line: 10 diff --git a/fixtures/scalar_unicodescape.php.native b/fixtures/scalar_unicodescape.php.native index 7bba07f..bed1012 100644 --- a/fixtures/scalar_unicodescape.php.native +++ b/fixtures/scalar_unicodescape.php.native @@ -2,45 +2,48 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 2, - "kind": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 2, + "kind": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Scalar_String", + "value": "\u0000" }, - "nodeType": "Scalar_String", - "value": "\u0000" - }, - { - "attributes": { - "endFilePos": 24, - "endLine": 4, - "endTokenPos": 5, - "kind": 2, - "startFilePos": 16, - "startLine": 4, - "startTokenPos": 5 + { + "attributes": { + "endFilePos": 24, + "endLine": 4, + "endTokenPos": 5, + "kind": 2, + "startFilePos": 16, + "startLine": 4, + "startTokenPos": 5 + }, + "nodeType": "Scalar_String", + "value": "Ĕ" }, - "nodeType": "Scalar_String", - "value": "Ĕ" - }, - { - "attributes": { - "endFilePos": 37, - "endLine": 5, - "endTokenPos": 8, - "kind": 2, - "startFilePos": 27, - "startLine": 5, - "startTokenPos": 8 - }, - "nodeType": "Scalar_String", - "value": "😂" - } - ] + { + "attributes": { + "endFilePos": 37, + "endLine": 5, + "endTokenPos": 8, + "kind": 2, + "startFilePos": 27, + "startLine": 5, + "startTokenPos": 8 + }, + "nodeType": "Scalar_String", + "value": "😂" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/scalar_unicodescape.php.uast b/fixtures/scalar_unicodescape.php.uast index 4465b67..b183460 100644 Binary files a/fixtures/scalar_unicodescape.php.uast and b/fixtures/scalar_unicodescape.php.uast differ diff --git a/fixtures/simple.php.native b/fixtures/simple.php.native index 9c0078c..8e6966f 100644 --- a/fixtures/simple.php.native +++ b/fixtures/simple.php.native @@ -2,126 +2,115 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 39, - "endLine": 3, - "endTokenPos": 7, - "kind": 1, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 38, + "endFilePos": 39, "endLine": 3, - "endTokenPos": 6, - "startFilePos": 17, + "endTokenPos": 7, + "kind": 1, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 4 + "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "AstExtractor", - "Exception" - ] - }, - "nodeType": "Stmt_Namespace", - "stmts": [ - { + "name": { "attributes": { - "endFilePos": 212, - "endLine": 11, - "endTokenPos": 55, - "startFilePos": 42, - "startLine": 5, - "startTokenPos": 9 + "endFilePos": 38, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 4 }, - "extends": { + "nodeType": "Name", + "parts": [ + "AstExtractor", + "Exception" + ] + }, + "nodeType": "Stmt_Namespace", + "stmts": [ + { "attributes": { - "endFilePos": 72, - "endLine": 5, - "endTokenPos": 15, - "startFilePos": 62, + "endFilePos": 212, + "endLine": 11, + "endTokenPos": 55, + "startFilePos": 42, "startLine": 5, - "startTokenPos": 15 + "startTokenPos": 9 }, - "nodeType": "Name", - "parts": [ - "BaseFailure" - ] - }, - "flags": 0, - "implements": [], - "name": "Error", - "nodeType": "Stmt_Class", - "stmts": [ - { + "extends": { "attributes": { - "endFilePos": 210, - "endLine": 10, - "endTokenPos": 53, - "startFilePos": 80, - "startLine": 7, - "startTokenPos": 19 + "endFilePos": 72, + "endLine": 5, + "endTokenPos": 15, + "startFilePos": 62, + "startLine": 5, + "startTokenPos": 15 }, - "byRef": false, - "flags": 1, - "name": "__construct", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 118, - "endLine": 7, - "endTokenPos": 27, - "startFilePos": 108, - "startLine": 7, - "startTokenPos": 25 - }, - "byRef": false, - "default": null, - "name": "msg", - "nodeType": "Param", - "type": "string", - "variadic": false + "nodeType": "Name", + "parts": [ + "BaseFailure" + ] + }, + "flags": 0, + "implements": [], + "name": "Error", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 210, + "endLine": 10, + "endTokenPos": 53, + "startFilePos": 80, + "startLine": 7, + "startTokenPos": 19 }, - { - "attributes": { - "endFilePos": 130, - "endLine": 7, - "endTokenPos": 31, - "startFilePos": 121, - "startLine": 7, - "startTokenPos": 30 + "byRef": false, + "flags": 1, + "name": "__construct", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 118, + "endLine": 7, + "endTokenPos": 27, + "startFilePos": 108, + "startLine": 7, + "startTokenPos": 25 + }, + "byRef": false, + "default": null, + "name": "msg", + "nodeType": "Param", + "type": "string", + "variadic": false }, - "byRef": false, - "default": null, - "name": "values", - "nodeType": "Param", - "type": null, - "variadic": true - } - ], - "returnType": null, - "stmts": [ - { - "args": [ - { - "attributes": { - "endFilePos": 184, - "endLine": 9, - "endTokenPos": 42, - "startFilePos": 167, - "startLine": 9, - "startTokenPos": 40 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "attributes": { + "endFilePos": 130, + "endLine": 7, + "endTokenPos": 31, + "startFilePos": 121, + "startLine": 7, + "startTokenPos": 30 + }, + "byRef": false, + "default": null, + "name": "values", + "nodeType": "Param", + "type": null, + "variadic": true + } + ], + "returnType": null, + "stmts": [ + { + "args": [ + { "attributes": { "endFilePos": 184, "endLine": 9, @@ -130,37 +119,37 @@ "startLine": 9, "startTokenPos": 40 }, - "class": { + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { "attributes": { - "endFilePos": 177, + "endFilePos": 184, "endLine": 9, - "endTokenPos": 40, + "endTokenPos": 42, "startFilePos": 167, "startLine": 9, "startTokenPos": 40 }, - "nodeType": "Name", - "parts": [ - "BaseFailure" - ] - }, - "name": "ERROR", - "nodeType": "Expr_ClassConstFetch" - } - }, - { - "attributes": { - "endFilePos": 190, - "endLine": 9, - "endTokenPos": 45, - "startFilePos": 187, - "startLine": 9, - "startTokenPos": 45 + "class": { + "attributes": { + "endFilePos": 177, + "endLine": 9, + "endTokenPos": 40, + "startFilePos": 167, + "startLine": 9, + "startTokenPos": 40 + }, + "nodeType": "Name", + "parts": [ + "BaseFailure" + ] + }, + "name": "ERROR", + "nodeType": "Expr_ClassConstFetch" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 190, "endLine": 9, @@ -169,68 +158,82 @@ "startLine": 9, "startTokenPos": 45 }, - "name": "msg", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 202, - "endLine": 9, - "endTokenPos": 49, - "startFilePos": 193, - "startLine": 9, - "startTokenPos": 48 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 190, + "endLine": 9, + "endTokenPos": 45, + "startFilePos": 187, + "startLine": 9, + "startTokenPos": 45 + }, + "name": "msg", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": true, - "value": { + { "attributes": { "endFilePos": 202, "endLine": 9, "endTokenPos": 49, - "startFilePos": 196, + "startFilePos": 193, "startLine": 9, - "startTokenPos": 49 + "startTokenPos": 48 }, - "name": "values", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": true, + "value": { + "attributes": { + "endFilePos": 202, + "endLine": 9, + "endTokenPos": 49, + "startFilePos": 196, + "startLine": 9, + "startTokenPos": 49 + }, + "name": "values", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 203, - "endLine": 9, - "endTokenPos": 50, - "startFilePos": 147, - "startLine": 9, - "startTokenPos": 36 - }, - "class": { + ], "attributes": { - "endFilePos": 152, + "endFilePos": 203, "endLine": 9, - "endTokenPos": 36, + "endTokenPos": 50, "startFilePos": 147, "startLine": 9, "startTokenPos": 36 }, - "nodeType": "Name", - "parts": [ - "parent" - ] - }, - "name": "__construct", - "nodeType": "Expr_StaticCall" - } - ], - "type": 1 - } - ], - "type": 0 - } - ] - } - ] + "class": { + "attributes": { + "endFilePos": 152, + "endLine": 9, + "endTokenPos": 36, + "startFilePos": 147, + "startLine": 9, + "startTokenPos": 36 + }, + "nodeType": "Name", + "parts": [ + "parent" + ] + }, + "name": "__construct", + "nodeType": "Expr_StaticCall" + } + ], + "type": 1 + } + ], + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/simple.php.uast b/fixtures/simple.php.uast index 9343b48..1ff993c 100644 --- a/fixtures/simple.php.uast +++ b/fixtures/simple.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Namespace { . . . Roles: Block @@ -39,8 +39,7 @@ File { . . . . . } . . . . } . . . . 1: Stmt_Class { -. . . . . Roles: Expression,Body,Statement,Declaration,Type -. . . . . TOKEN "Error" +. . . . . Roles: Declaration,Statement,Type . . . . . StartPosition: { . . . . . . Offset: 42 . . . . . . Line: 5 @@ -58,7 +57,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Base +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "Error" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Base,Expression,Identifier . . . . . . . TOKEN "BaseFailure" . . . . . . . StartPosition: { . . . . . . . . Offset: 62 @@ -74,9 +80,8 @@ File { . . . . . . . . internalRole: extends . . . . . . . } . . . . . . } -. . . . . . 1: Stmt_ClassMethod { -. . . . . . . Roles: Expression,Body,Type,Function -. . . . . . . TOKEN "__construct" +. . . . . . 2: Stmt_ClassMethod { +. . . . . . . Roles: Body,Function,Type . . . . . . . StartPosition: { . . . . . . . . Offset: 80 . . . . . . . . Line: 7 @@ -94,9 +99,15 @@ File { . . . . . . . . type: 1 . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Param { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "__construct" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Param { . . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "msg" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 108 . . . . . . . . . . Line: 7 @@ -113,10 +124,18 @@ File { . . . . . . . . . . type: string . . . . . . . . . . variadic: false . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "msg" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 1: Param { -. . . . . . . . . Roles: Argument -. . . . . . . . . TOKEN "values" +. . . . . . . . 2: Param { +. . . . . . . . . Roles: ArgsList,Argument . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 121 . . . . . . . . . . Line: 7 @@ -132,10 +151,18 @@ File { . . . . . . . . . . internalRole: params . . . . . . . . . . variadic: true . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "values" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } -. . . . . . . . 2: Expr_StaticCall { -. . . . . . . . . Roles: Expression,Body,Call,Identifier -. . . . . . . . . TOKEN "__construct" +. . . . . . . . 3: Expr_StaticCall { +. . . . . . . . . Roles: Call,Expression,Identifier . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 147 . . . . . . . . . . Line: 9 @@ -151,7 +178,14 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "__construct" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier,Receiver,Type . . . . . . . . . . . TOKEN "parent" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 147 @@ -167,7 +201,7 @@ File { . . . . . . . . . . . . internalRole: class . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 1: Arg { +. . . . . . . . . . 2: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 167 @@ -186,8 +220,7 @@ File { . . . . . . . . . . . } . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_ClassConstFetch { -. . . . . . . . . . . . . Roles: Expression,Type,Incomplete -. . . . . . . . . . . . . TOKEN "ERROR" +. . . . . . . . . . . . . Roles: Expression,Incomplete,Type . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 167 . . . . . . . . . . . . . . Line: 9 @@ -203,7 +236,14 @@ File { . . . . . . . . . . . . . } . . . . . . . . . . . . . Children: { . . . . . . . . . . . . . . 0: Name { -. . . . . . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "ERROR" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . . 1: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . . . . . TOKEN "BaseFailure" . . . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . . . Offset: 167 @@ -223,7 +263,7 @@ File { . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 2: Arg { +. . . . . . . . . . 3: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 187 @@ -243,7 +283,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "msg" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 187 . . . . . . . . . . . . . . Line: 9 @@ -257,10 +296,19 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "msg" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } -. . . . . . . . . . 3: Arg { +. . . . . . . . . . 4: Arg { . . . . . . . . . . . Roles: Argument . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 193 @@ -280,7 +328,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "values" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 196 . . . . . . . . . . . . . . Line: 9 @@ -294,6 +341,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "values" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } diff --git a/fixtures/static_call.php.native b/fixtures/static_call.php.native index 1a246d9..219bfa2 100644 --- a/fixtures/static_call.php.native +++ b/fixtures/static_call.php.native @@ -2,447 +2,450 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [], - "attributes": { - "endFilePos": 12, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "class": { + "ast": { + "children": [ + { + "args": [], "attributes": { - "endFilePos": 7, + "endFilePos": 12, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 6, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 24, - "endLine": 4, - "endTokenPos": 15, - "startFilePos": 15, - "startLine": 4, - "startTokenPos": 9 + "class": { + "attributes": { + "endFilePos": 7, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticCall" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 15, + "endFilePos": 24, "endLine": 4, - "endTokenPos": 9, + "endTokenPos": 15, "startFilePos": 15, "startLine": 4, "startTokenPos": 9 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": { - "attributes": { - "endFilePos": 21, - "endLine": 4, - "endTokenPos": 12, - "kind": 1, - "startFilePos": 19, - "startLine": 4, - "startTokenPos": 12 + "class": { + "attributes": { + "endFilePos": 15, + "endLine": 4, + "endTokenPos": 9, + "startFilePos": 15, + "startLine": 4, + "startTokenPos": 9 + }, + "nodeType": "Name", + "parts": [ + "A" + ] }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_StaticCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 33, - "endLine": 5, - "endTokenPos": 22, - "startFilePos": 27, - "startLine": 5, - "startTokenPos": 18 + "name": { + "attributes": { + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 12, + "kind": 1, + "startFilePos": 19, + "startLine": 4, + "startTokenPos": 12 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_StaticCall" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 27, + "endFilePos": 33, "endLine": 5, - "endTokenPos": 18, + "endTokenPos": 22, "startFilePos": 27, "startLine": 5, "startTokenPos": 18 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": { - "attributes": { - "endFilePos": 31, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 30, - "startLine": 5, - "startTokenPos": 20 + "class": { + "attributes": { + "endFilePos": 27, + "endLine": 5, + "endTokenPos": 18, + "startFilePos": 27, + "startLine": 5, + "startTokenPos": 18 + }, + "nodeType": "Name", + "parts": [ + "A" + ] }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_StaticCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 47, - "endLine": 6, - "endTokenPos": 32, - "startFilePos": 36, - "startLine": 6, - "startTokenPos": 25 + "name": { + "attributes": { + "endFilePos": 31, + "endLine": 5, + "endTokenPos": 20, + "startFilePos": 30, + "startLine": 5, + "startTokenPos": 20 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_StaticCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 45, + "endFilePos": 47, "endLine": 6, - "endTokenPos": 30, + "endTokenPos": 32, "startFilePos": 36, "startLine": 6, "startTokenPos": 25 }, - "dim": { - "attributes": { - "endFilePos": 44, - "endLine": 6, - "endTokenPos": 29, - "kind": 1, - "startFilePos": 42, - "startLine": 6, - "startTokenPos": 29 - }, - "nodeType": "Scalar_String", - "value": "c" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": { "attributes": { - "endFilePos": 40, + "endFilePos": 45, "endLine": 6, - "endTokenPos": 27, + "endTokenPos": 30, "startFilePos": 36, "startLine": 6, "startTokenPos": 25 }, - "class": { + "dim": { "attributes": { - "endFilePos": 36, + "endFilePos": 44, "endLine": 6, - "endTokenPos": 25, + "endTokenPos": 29, + "kind": 1, + "startFilePos": 42, + "startLine": 6, + "startTokenPos": 29 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 40, + "endLine": 6, + "endTokenPos": 27, "startFilePos": 36, "startLine": 6, "startTokenPos": 25 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - } - }, - "nodeType": "Expr_FuncCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 66, - "endLine": 7, - "endTokenPos": 45, - "startFilePos": 50, - "startLine": 7, - "startTokenPos": 35 + "class": { + "attributes": { + "endFilePos": 36, + "endLine": 6, + "endTokenPos": 25, + "startFilePos": 36, + "startLine": 6, + "startTokenPos": 25 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" + } + }, + "nodeType": "Expr_FuncCall" }, - "name": { + { + "args": [], "attributes": { - "endFilePos": 64, + "endFilePos": 66, "endLine": 7, - "endTokenPos": 43, + "endTokenPos": 45, "startFilePos": 50, "startLine": 7, "startTokenPos": 35 }, - "dim": { - "attributes": { - "endFilePos": 63, - "endLine": 7, - "endTokenPos": 42, - "kind": 1, - "startFilePos": 61, - "startLine": 7, - "startTokenPos": 42 - }, - "nodeType": "Scalar_String", - "value": "d" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "name": { "attributes": { - "endFilePos": 59, + "endFilePos": 64, "endLine": 7, - "endTokenPos": 40, + "endTokenPos": 43, "startFilePos": 50, "startLine": 7, "startTokenPos": 35 }, "dim": { "attributes": { - "endFilePos": 58, + "endFilePos": 63, "endLine": 7, - "endTokenPos": 39, + "endTokenPos": 42, "kind": 1, - "startFilePos": 56, + "startFilePos": 61, "startLine": 7, - "startTokenPos": 39 + "startTokenPos": 42 }, "nodeType": "Scalar_String", - "value": "c" + "value": "d" }, "nodeType": "Expr_ArrayDimFetch", "var": { "attributes": { - "endFilePos": 54, + "endFilePos": 59, "endLine": 7, - "endTokenPos": 37, + "endTokenPos": 40, "startFilePos": 50, "startLine": 7, "startTokenPos": 35 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 58, + "endLine": 7, + "endTokenPos": 39, + "kind": 1, + "startFilePos": 56, + "startLine": 7, + "startTokenPos": 39 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 50, + "endFilePos": 54, "endLine": 7, - "endTokenPos": 35, + "endTokenPos": 37, "startFilePos": 50, "startLine": 7, "startTokenPos": 35 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" + "class": { + "attributes": { + "endFilePos": 50, + "endLine": 7, + "endTokenPos": 35, + "startFilePos": 50, + "startLine": 7, + "startTokenPos": 35 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" + } } - } - }, - "nodeType": "Expr_FuncCall" - }, - { - "attributes": { - "endFilePos": 80, - "endLine": 9, - "endTokenPos": 55, - "startFilePos": 70, - "startLine": 9, - "startTokenPos": 48 - }, - "dim": { - "attributes": { - "endFilePos": 79, - "endLine": 9, - "endTokenPos": 54, - "kind": 1, - "startFilePos": 77, - "startLine": 9, - "startTokenPos": 54 }, - "nodeType": "Scalar_String", - "value": "c" + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_ArrayDimFetch", - "var": { - "args": [], + { "attributes": { - "endFilePos": 75, + "endFilePos": 80, "endLine": 9, - "endTokenPos": 52, + "endTokenPos": 55, "startFilePos": 70, "startLine": 9, "startTokenPos": 48 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 79, + "endLine": 9, + "endTokenPos": 54, + "kind": 1, + "startFilePos": 77, + "startLine": 9, + "startTokenPos": 54 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "args": [], "attributes": { - "endFilePos": 70, + "endFilePos": 75, "endLine": 9, - "endTokenPos": 48, + "endTokenPos": 52, "startFilePos": 70, "startLine": 9, "startTokenPos": 48 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticCall" - } - }, - { - "args": [], - "attributes": { - "endFilePos": 94, - "endLine": 11, - "endTokenPos": 62, - "startFilePos": 84, - "startLine": 11, - "startTokenPos": 58 + "class": { + "attributes": { + "endFilePos": 70, + "endLine": 9, + "endTokenPos": 48, + "startFilePos": 70, + "startLine": 9, + "startTokenPos": 48 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticCall" + } }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 89, + "endFilePos": 94, "endLine": 11, - "endTokenPos": 58, + "endTokenPos": 62, "startFilePos": 84, "startLine": 11, "startTokenPos": 58 }, - "nodeType": "Name", - "parts": [ - "static" - ] - }, - "name": "b", - "nodeType": "Expr_StaticCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 103, - "endLine": 12, - "endTokenPos": 69, - "startFilePos": 97, - "startLine": 12, - "startTokenPos": 65 + "class": { + "attributes": { + "endFilePos": 89, + "endLine": 11, + "endTokenPos": 58, + "startFilePos": 84, + "startLine": 11, + "startTokenPos": 58 + }, + "nodeType": "Name", + "parts": [ + "static" + ] + }, + "name": "b", + "nodeType": "Expr_StaticCall" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 98, + "endFilePos": 103, "endLine": 12, - "endTokenPos": 65, + "endTokenPos": 69, "startFilePos": 97, "startLine": 12, "startTokenPos": 65 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "name": "b", - "nodeType": "Expr_StaticCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 116, - "endLine": 13, - "endTokenPos": 79, - "startFilePos": 106, - "startLine": 13, - "startTokenPos": 72 + "class": { + "attributes": { + "endFilePos": 98, + "endLine": 12, + "endTokenPos": 65, + "startFilePos": 97, + "startLine": 12, + "startTokenPos": 65 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "name": "b", + "nodeType": "Expr_StaticCall" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 111, + "endFilePos": 116, "endLine": 13, - "endTokenPos": 75, + "endTokenPos": 79, "startFilePos": 106, "startLine": 13, "startTokenPos": 72 }, - "name": { + "class": { "attributes": { - "endFilePos": 110, + "endFilePos": 111, "endLine": 13, - "endTokenPos": 74, - "kind": 1, - "startFilePos": 108, + "endTokenPos": 75, + "startFilePos": 106, "startLine": 13, - "startTokenPos": 74 + "startTokenPos": 72 }, - "nodeType": "Scalar_String", - "value": "a" + "name": { + "attributes": { + "endFilePos": 110, + "endLine": 13, + "endTokenPos": 74, + "kind": 1, + "startFilePos": 108, + "startLine": 13, + "startTokenPos": 74 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - "name": "b", - "nodeType": "Expr_StaticCall" - }, - { - "args": [], - "attributes": { - "endFilePos": 130, - "endLine": 14, - "endTokenPos": 89, - "startFilePos": 119, - "startLine": 14, - "startTokenPos": 82 + "name": "b", + "nodeType": "Expr_StaticCall" }, - "class": { + { + "args": [], "attributes": { - "endFilePos": 125, + "endFilePos": 130, "endLine": 14, - "endTokenPos": 85, + "endTokenPos": 89, "startFilePos": 119, "startLine": 14, "startTokenPos": 82 }, - "dim": { - "attributes": { - "endFilePos": 124, - "endLine": 14, - "endTokenPos": 84, - "kind": 1, - "startFilePos": 122, - "startLine": 14, - "startTokenPos": 84 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 120, + "endFilePos": 125, "endLine": 14, - "endTokenPos": 82, + "endTokenPos": 85, "startFilePos": 119, "startLine": 14, "startTokenPos": 82 }, - "name": "a", - "nodeType": "Expr_Variable" - } - }, - "name": "c", - "nodeType": "Expr_StaticCall" - } - ] + "dim": { + "attributes": { + "endFilePos": 124, + "endLine": 14, + "endTokenPos": 84, + "kind": 1, + "startFilePos": 122, + "startLine": 14, + "startTokenPos": 84 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 120, + "endLine": 14, + "endTokenPos": 82, + "startFilePos": 119, + "startLine": 14, + "startTokenPos": 82 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + }, + "name": "c", + "nodeType": "Expr_StaticCall" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/static_call.php.uast b/fixtures/static_call.php.uast index 300d03d..e766c8b 100644 --- a/fixtures/static_call.php.uast +++ b/fixtures/static_call.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "b" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -23,7 +22,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier,Receiver,Type . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 7 @@ -42,7 +48,7 @@ File { . . . } . . } . . 1: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 15 . . . . Line: 4 @@ -58,7 +64,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . Roles: Expression,Identifier,Receiver,Type . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 15 @@ -94,7 +100,7 @@ File { . . . } . . } . . 2: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 27 . . . . Line: 5 @@ -110,7 +116,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . Roles: Expression,Identifier,Receiver,Type . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 27 @@ -128,7 +134,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 30 . . . . . . Line: 5 @@ -142,11 +147,20 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 36 . . . . Line: 6 @@ -162,7 +176,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 36 . . . . . . Line: 6 @@ -178,8 +192,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . TOKEN "b" +. . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 36 . . . . . . . . Line: 6 @@ -195,7 +208,14 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Name { +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "A" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 36 @@ -235,7 +255,7 @@ File { . . . } . . } . . 4: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 50 . . . . Line: 7 @@ -251,7 +271,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Function,Name +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 50 . . . . . . Line: 7 @@ -267,7 +287,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_ArrayDimFetch { -. . . . . . . Roles: Expression,List,Value,Entry +. . . . . . . Roles: Entry,Expression,List,Value . . . . . . . StartPosition: { . . . . . . . . Offset: 50 . . . . . . . . Line: 7 @@ -283,8 +303,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_StaticPropertyFetch { -. . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . . . . . TOKEN "b" +. . . . . . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 50 . . . . . . . . . . Line: 7 @@ -300,7 +319,14 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "b" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Name { +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "A" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 50 @@ -359,7 +385,7 @@ File { . . . } . . } . . 5: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 70 . . . . Line: 9 @@ -375,8 +401,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticCall { -. . . . . Roles: Expression,Call,Identifier -. . . . . TOKEN "b" +. . . . . Roles: Call,Expression,Identifier . . . . . StartPosition: { . . . . . . Offset: 70 . . . . . . Line: 9 @@ -392,7 +417,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier,Receiver,Type . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 70 @@ -430,8 +462,7 @@ File { . . . } . . } . . 6: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "b" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 84 . . . . Line: 11 @@ -447,7 +478,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified,Type,Receiver +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier,Receiver,Type . . . . . TOKEN "static" . . . . . StartPosition: { . . . . . . Offset: 84 @@ -466,8 +504,7 @@ File { . . . } . . } . . 7: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "b" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 97 . . . . Line: 12 @@ -482,9 +519,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Type,Receiver -. . . . . TOKEN "a" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_Variable { +. . . . . Roles: Identifier,Receiver,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 97 . . . . . . Line: 12 @@ -498,12 +541,20 @@ File { . . . . . Properties: { . . . . . . internalRole: class . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 8: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "b" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 106 . . . . Line: 13 @@ -518,8 +569,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Type,Receiver +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_Variable { +. . . . . Roles: Identifier,Receiver,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 106 . . . . . . Line: 13 @@ -556,8 +614,7 @@ File { . . . } . . } . . 9: Expr_StaticCall { -. . . Roles: Expression,Call,Identifier -. . . TOKEN "c" +. . . Roles: Call,Expression,Identifier . . . StartPosition: { . . . . Offset: 119 . . . . Line: 14 @@ -572,8 +629,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry,Type,Receiver +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "c" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_ArrayDimFetch { +. . . . . Roles: Entry,Expression,List,Receiver,Type,Value . . . . . StartPosition: { . . . . . . Offset: 119 . . . . . . Line: 14 @@ -590,7 +654,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 119 . . . . . . . . Line: 14 @@ -604,6 +667,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: var . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { . . . . . . . Roles: Expression,Literal,String diff --git a/fixtures/static_property.php.native b/fixtures/static_property.php.native index 6788b6a..d2b2b61 100644 --- a/fixtures/static_property.php.native +++ b/fixtures/static_property.php.native @@ -2,315 +2,318 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 10, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "class": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 6, + "endFilePos": 10, "endLine": 2, - "endTokenPos": 1, + "endTokenPos": 3, "startFilePos": 6, "startLine": 2, "startTokenPos": 1 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 18, - "endLine": 3, - "endTokenPos": 8, - "startFilePos": 13, - "startLine": 3, - "startTokenPos": 6 + "class": { + "attributes": { + "endFilePos": 6, + "endLine": 2, + "endTokenPos": 1, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" }, - "class": { + { "attributes": { - "endFilePos": 14, + "endFilePos": 18, "endLine": 3, - "endTokenPos": 6, + "endTokenPos": 8, "startFilePos": 13, "startLine": 3, "startTokenPos": 6 }, - "name": "A", - "nodeType": "Expr_Variable" - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 27, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 11 + "class": { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 13, + "startLine": 3, + "startTokenPos": 6 + }, + "name": "A", + "nodeType": "Expr_Variable" + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" }, - "class": { + { "attributes": { - "endFilePos": 23, + "endFilePos": 27, "endLine": 4, - "endTokenPos": 11, - "kind": 1, + "endTokenPos": 13, "startFilePos": 21, "startLine": 4, "startTokenPos": 11 }, - "nodeType": "Scalar_String", - "value": "A" - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 43, - "endLine": 5, - "endTokenPos": 24, - "startFilePos": 30, - "startLine": 5, - "startTokenPos": 16 - }, - "class": { - "attributes": { - "endFilePos": 38, - "endLine": 5, - "endTokenPos": 21, - "startFilePos": 31, - "startLine": 5, - "startTokenPos": 17 - }, - "left": { + "class": { "attributes": { - "endFilePos": 33, - "endLine": 5, - "endTokenPos": 17, + "endFilePos": 23, + "endLine": 4, + "endTokenPos": 11, "kind": 1, - "startFilePos": 31, - "startLine": 5, - "startTokenPos": 17 + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 11 }, "nodeType": "Scalar_String", "value": "A" }, - "nodeType": "Expr_BinaryOp_Concat", - "right": { + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" + }, + { + "attributes": { + "endFilePos": 43, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 30, + "startLine": 5, + "startTokenPos": 16 + }, + "class": { "attributes": { "endFilePos": 38, "endLine": 5, "endTokenPos": 21, - "kind": 1, - "startFilePos": 37, + "startFilePos": 31, "startLine": 5, - "startTokenPos": 21 + "startTokenPos": 17 }, - "nodeType": "Scalar_String", - "value": "" - } - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 55, - "endLine": 6, - "endTokenPos": 32, - "startFilePos": 46, - "startLine": 6, - "startTokenPos": 27 + "left": { + "attributes": { + "endFilePos": 33, + "endLine": 5, + "endTokenPos": 17, + "kind": 1, + "startFilePos": 31, + "startLine": 5, + "startTokenPos": 17 + }, + "nodeType": "Scalar_String", + "value": "A" + }, + "nodeType": "Expr_BinaryOp_Concat", + "right": { + "attributes": { + "endFilePos": 38, + "endLine": 5, + "endTokenPos": 21, + "kind": 1, + "startFilePos": 37, + "startLine": 5, + "startTokenPos": 21 + }, + "nodeType": "Scalar_String", + "value": "" + } + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" }, - "class": { + { "attributes": { - "endFilePos": 51, + "endFilePos": 55, "endLine": 6, - "endTokenPos": 30, + "endTokenPos": 32, "startFilePos": 46, "startLine": 6, "startTokenPos": 27 }, - "dim": { - "attributes": { - "endFilePos": 50, - "endLine": 6, - "endTokenPos": 29, - "kind": 10, - "startFilePos": 50, - "startLine": 6, - "startTokenPos": 29 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + "class": { "attributes": { - "endFilePos": 48, + "endFilePos": 51, "endLine": 6, - "endTokenPos": 27, - "kind": 1, + "endTokenPos": 30, "startFilePos": 46, "startLine": 6, "startTokenPos": 27 }, - "nodeType": "Scalar_String", - "value": "A" - } - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 63, - "endLine": 7, - "endTokenPos": 38, - "startFilePos": 58, - "startLine": 7, - "startTokenPos": 35 - }, - "class": { - "attributes": { - "endFilePos": 58, - "endLine": 7, - "endTokenPos": 35, - "startFilePos": 58, - "startLine": 7, - "startTokenPos": 35 + "dim": { + "attributes": { + "endFilePos": 50, + "endLine": 6, + "endTokenPos": 29, + "kind": 10, + "startFilePos": 50, + "startLine": 6, + "startTokenPos": 29 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { + "attributes": { + "endFilePos": 48, + "endLine": 6, + "endTokenPos": 27, + "kind": 1, + "startFilePos": 46, + "startLine": 6, + "startTokenPos": 27 + }, + "nodeType": "Scalar_String", + "value": "A" + } }, - "nodeType": "Name", - "parts": [ - "A" - ] + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": { + { "attributes": { "endFilePos": 63, "endLine": 7, "endTokenPos": 38, - "startFilePos": 61, + "startFilePos": 58, "startLine": 7, - "startTokenPos": 37 + "startTokenPos": 35 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 74, - "endLine": 8, - "endTokenPos": 47, - "startFilePos": 66, - "startLine": 8, - "startTokenPos": 41 - }, - "dim": { - "attributes": { - "endFilePos": 73, - "endLine": 8, - "endTokenPos": 46, - "kind": 10, - "startFilePos": 73, - "startLine": 8, - "startTokenPos": 46 + "class": { + "attributes": { + "endFilePos": 58, + "endLine": 7, + "endTokenPos": 35, + "startFilePos": 58, + "startLine": 7, + "startTokenPos": 35 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": { + "attributes": { + "endFilePos": 63, + "endLine": 7, + "endTokenPos": 38, + "startFilePos": 61, + "startLine": 7, + "startTokenPos": 37 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "nodeType": "Scalar_LNumber", - "value": 1 + "nodeType": "Expr_StaticPropertyFetch" }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 71, + "endFilePos": 74, "endLine": 8, - "endTokenPos": 44, + "endTokenPos": 47, "startFilePos": 66, "startLine": 8, "startTokenPos": 41 }, - "class": { + "dim": { "attributes": { - "endFilePos": 66, + "endFilePos": 73, "endLine": 8, - "endTokenPos": 41, - "startFilePos": 66, + "endTokenPos": 46, + "kind": 10, + "startFilePos": 73, "startLine": 8, - "startTokenPos": 41 + "startTokenPos": 46 }, - "nodeType": "Name", - "parts": [ - "A" - ] + "nodeType": "Scalar_LNumber", + "value": 1 }, - "name": { + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { "endFilePos": 71, "endLine": 8, "endTokenPos": 44, - "startFilePos": 69, + "startFilePos": 66, "startLine": 8, - "startTokenPos": 43 + "startTokenPos": 41 }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_StaticPropertyFetch" - } - }, - { - "attributes": { - "endFilePos": 85, - "endLine": 9, - "endTokenPos": 54, - "startFilePos": 77, - "startLine": 9, - "startTokenPos": 50 + "class": { + "attributes": { + "endFilePos": 66, + "endLine": 8, + "endTokenPos": 41, + "startFilePos": 66, + "startLine": 8, + "startTokenPos": 41 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": { + "attributes": { + "endFilePos": 71, + "endLine": 8, + "endTokenPos": 44, + "startFilePos": 69, + "startLine": 8, + "startTokenPos": 43 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_StaticPropertyFetch" + } }, - "class": { + { "attributes": { - "endFilePos": 81, + "endFilePos": 85, "endLine": 9, - "endTokenPos": 52, + "endTokenPos": 54, "startFilePos": 77, "startLine": 9, "startTokenPos": 50 }, "class": { "attributes": { - "endFilePos": 77, + "endFilePos": 81, "endLine": 9, - "endTokenPos": 50, + "endTokenPos": 52, "startFilePos": 77, "startLine": 9, "startTokenPos": 50 }, - "nodeType": "Name", - "parts": [ - "A" - ] + "class": { + "attributes": { + "endFilePos": 77, + "endLine": 9, + "endTokenPos": 50, + "startFilePos": 77, + "startLine": 9, + "startTokenPos": 50 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "A", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": "A", + "name": "b", "nodeType": "Expr_StaticPropertyFetch" - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - } - ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/static_property.php.uast b/fixtures/static_property.php.uast index 805c304..b4d442e 100644 --- a/fixtures/static_property.php.uast +++ b/fixtures/static_property.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,7 +22,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 6 @@ -42,8 +48,7 @@ File { . . . } . . } . . 1: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 13 . . . . Line: 3 @@ -58,9 +63,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_Variable { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 3 @@ -74,12 +85,20 @@ File { . . . . . Properties: { . . . . . . internalRole: class . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 21 . . . . Line: 4 @@ -94,7 +113,14 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Scalar_String { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Scalar_String { . . . . . Roles: Expression,Literal,String . . . . . TOKEN "A" . . . . . StartPosition: { @@ -114,8 +140,7 @@ File { . . . } . . } . . 3: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 30 . . . . Line: 5 @@ -130,8 +155,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_BinaryOp_Concat { -. . . . . Roles: Expression,Binary,Operator,Add,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_BinaryOp_Concat { +. . . . . Roles: Add,Binary,Expression,Incomplete,Operator . . . . . StartPosition: { . . . . . . Offset: 31 . . . . . . Line: 5 @@ -147,7 +179,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_String { -. . . . . . . Roles: Left,Expression,Literal,String +. . . . . . . Roles: Expression,Left,Literal,String . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 31 @@ -164,7 +196,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Scalar_String { -. . . . . . . Roles: Right,Expression,Literal,String +. . . . . . . Roles: Expression,Literal,Right,String . . . . . . . StartPosition: { . . . . . . . . Offset: 37 . . . . . . . . Line: 5 @@ -184,8 +216,7 @@ File { . . . } . . } . . 4: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 46 . . . . Line: 6 @@ -200,8 +231,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_ArrayDimFetch { -. . . . . Roles: Expression,List,Value,Entry +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_ArrayDimFetch { +. . . . . Roles: Entry,Expression,List,Value . . . . . StartPosition: { . . . . . . Offset: 46 . . . . . . Line: 6 @@ -255,7 +293,7 @@ File { . . . } . . } . . 5: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 58 . . . . Line: 7 @@ -271,7 +309,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 58 @@ -289,7 +327,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 61 . . . . . . Line: 7 @@ -303,11 +340,20 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 6: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 66 . . . . Line: 8 @@ -323,7 +369,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . StartPosition: { . . . . . . Offset: 66 . . . . . . Line: 8 @@ -339,7 +385,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 66 @@ -357,7 +403,6 @@ File { . . . . . . } . . . . . . 1: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "c" . . . . . . . StartPosition: { . . . . . . . . Offset: 69 . . . . . . . . Line: 8 @@ -371,6 +416,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -394,8 +448,7 @@ File { . . . } . . } . . 7: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 77 . . . . Line: 9 @@ -410,9 +463,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . TOKEN "A" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Expr_StaticPropertyFetch { +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . StartPosition: { . . . . . . Offset: 77 . . . . . . Line: 9 @@ -428,7 +487,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "A" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 77 diff --git a/fixtures/static_property_fetch.php.native b/fixtures/static_property_fetch.php.native index 227896c..e95a9f1 100644 --- a/fixtures/static_property_fetch.php.native +++ b/fixtures/static_property_fetch.php.native @@ -2,25 +2,9 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "comments": [ - { - "filePos": 7, - "line": 3, - "nodeType": "Comment", - "text": "// property name variations\n" - } - ], - "endFilePos": 39, - "endLine": 4, - "endTokenPos": 5, - "startFilePos": 35, - "startLine": 4, - "startTokenPos": 3 - }, - "class": { + "ast": { + "children": [ + { "attributes": { "comments": [ { @@ -30,128 +14,114 @@ "text": "// property name variations\n" } ], - "endFilePos": 35, + "endFilePos": 39, "endLine": 4, - "endTokenPos": 3, + "endTokenPos": 5, "startFilePos": 35, "startLine": 4, "startTokenPos": 3 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 47, - "endLine": 5, - "endTokenPos": 11, - "startFilePos": 42, - "startLine": 5, - "startTokenPos": 8 - }, - "class": { - "attributes": { - "endFilePos": 42, - "endLine": 5, - "endTokenPos": 8, - "startFilePos": 42, - "startLine": 5, - "startTokenPos": 8 + "class": { + "attributes": { + "comments": [ + { + "filePos": 7, + "line": 3, + "nodeType": "Comment", + "text": "// property name variations\n" + } + ], + "endFilePos": 35, + "endLine": 4, + "endTokenPos": 3, + "startFilePos": 35, + "startLine": 4, + "startTokenPos": 3 + }, + "nodeType": "Name", + "parts": [ + "A" + ] }, - "nodeType": "Name", - "parts": [ - "A" - ] + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" }, - "name": { + { "attributes": { "endFilePos": 47, "endLine": 5, "endTokenPos": 11, - "startFilePos": 45, + "startFilePos": 42, "startLine": 5, - "startTokenPos": 10 + "startTokenPos": 8 }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "endFilePos": 58, - "endLine": 6, - "endTokenPos": 19, - "startFilePos": 50, - "startLine": 6, - "startTokenPos": 14 + "class": { + "attributes": { + "endFilePos": 42, + "endLine": 5, + "endTokenPos": 8, + "startFilePos": 42, + "startLine": 5, + "startTokenPos": 8 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": { + "attributes": { + "endFilePos": 47, + "endLine": 5, + "endTokenPos": 11, + "startFilePos": 45, + "startLine": 5, + "startTokenPos": 10 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_StaticPropertyFetch" }, - "class": { + { "attributes": { - "endFilePos": 50, + "endFilePos": 58, "endLine": 6, - "endTokenPos": 14, + "endTokenPos": 19, "startFilePos": 50, "startLine": 6, "startTokenPos": 14 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": { - "attributes": { - "endFilePos": 57, - "endLine": 6, - "endTokenPos": 18, - "kind": 1, - "startFilePos": 55, - "startLine": 6, - "startTokenPos": 18 + "class": { + "attributes": { + "endFilePos": 50, + "endLine": 6, + "endTokenPos": 14, + "startFilePos": 50, + "startLine": 6, + "startTokenPos": 14 + }, + "nodeType": "Name", + "parts": [ + "A" + ] }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_StaticPropertyFetch" - }, - { - "attributes": { - "comments": [ - { - "filePos": 62, - "line": 8, - "nodeType": "Comment", - "text": "// array access\n" - } - ], - "endFilePos": 87, - "endLine": 9, - "endTokenPos": 28, - "startFilePos": 78, - "startLine": 9, - "startTokenPos": 23 - }, - "dim": { - "attributes": { - "endFilePos": 86, - "endLine": 9, - "endTokenPos": 27, - "kind": 1, - "startFilePos": 84, - "startLine": 9, - "startTokenPos": 27 + "name": { + "attributes": { + "endFilePos": 57, + "endLine": 6, + "endTokenPos": 18, + "kind": 1, + "startFilePos": 55, + "startLine": 6, + "startTokenPos": 18 + }, + "nodeType": "Scalar_String", + "value": "b" }, - "nodeType": "Scalar_String", - "value": "c" + "nodeType": "Expr_StaticPropertyFetch" }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { "comments": [ { @@ -161,14 +131,28 @@ "text": "// array access\n" } ], - "endFilePos": 82, + "endFilePos": 87, "endLine": 9, - "endTokenPos": 25, + "endTokenPos": 28, "startFilePos": 78, "startLine": 9, "startTokenPos": 23 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 86, + "endLine": 9, + "endTokenPos": 27, + "kind": 1, + "startFilePos": 84, + "startLine": 9, + "startTokenPos": 27 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { "comments": [ { @@ -178,71 +162,90 @@ "text": "// array access\n" } ], - "endFilePos": 78, + "endFilePos": 82, "endLine": 9, - "endTokenPos": 23, + "endTokenPos": 25, "startFilePos": 78, "startLine": 9, "startTokenPos": 23 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" - } - }, - { - "attributes": { - "endFilePos": 99, - "endLine": 10, - "endTokenPos": 36, - "startFilePos": 90, - "startLine": 10, - "startTokenPos": 31 - }, - "dim": { - "attributes": { - "endFilePos": 98, - "endLine": 10, - "endTokenPos": 35, - "kind": 1, - "startFilePos": 96, - "startLine": 10, - "startTokenPos": 35 - }, - "nodeType": "Scalar_String", - "value": "c" + "class": { + "attributes": { + "comments": [ + { + "filePos": 62, + "line": 8, + "nodeType": "Comment", + "text": "// array access\n" + } + ], + "endFilePos": 78, + "endLine": 9, + "endTokenPos": 23, + "startFilePos": 78, + "startLine": 9, + "startTokenPos": 23 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" + } }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 94, + "endFilePos": 99, "endLine": 10, - "endTokenPos": 33, + "endTokenPos": 36, "startFilePos": 90, "startLine": 10, "startTokenPos": 31 }, - "class": { + "dim": { + "attributes": { + "endFilePos": 98, + "endLine": 10, + "endTokenPos": 35, + "kind": 1, + "startFilePos": 96, + "startLine": 10, + "startTokenPos": 35 + }, + "nodeType": "Scalar_String", + "value": "c" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { - "endFilePos": 90, + "endFilePos": 94, "endLine": 10, - "endTokenPos": 31, + "endTokenPos": 33, "startFilePos": 90, "startLine": 10, "startTokenPos": 31 }, - "nodeType": "Name", - "parts": [ - "A" - ] - }, - "name": "b", - "nodeType": "Expr_StaticPropertyFetch" + "class": { + "attributes": { + "endFilePos": 90, + "endLine": 10, + "endTokenPos": 31, + "startFilePos": 90, + "startLine": 10, + "startTokenPos": 31 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + }, + "name": "b", + "nodeType": "Expr_StaticPropertyFetch" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/static_property_fetch.php.uast b/fixtures/static_property_fetch.php.uast index 2cd100b..43b3c31 100644 --- a/fixtures/static_property_fetch.php.uast +++ b/fixtures/static_property_fetch.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . TOKEN "b" +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 35 . . . . Line: 4 @@ -22,26 +21,28 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "b" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Comment { +. . . . . Roles: Comment,Noop . . . . . TOKEN " property name variations " . . . . . StartPosition: { -. . . . . . Offset: 7 -. . . . . . Line: 3 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 35 -. . . . . . Line: 4 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } -. . . . 1: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . 2: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 35 @@ -58,21 +59,16 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " property name variations " . . . . . . . StartPosition: { -. . . . . . . . Offset: 7 -. . . . . . . . Line: 3 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 35 -. . . . . . . . Line: 4 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . } @@ -80,7 +76,7 @@ File { . . . } . . } . . 1: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 42 . . . . Line: 5 @@ -96,7 +92,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 42 @@ -114,7 +110,6 @@ File { . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 45 . . . . . . Line: 5 @@ -128,11 +123,20 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Expr_StaticPropertyFetch { -. . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete +. . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . StartPosition: { . . . . Offset: 50 . . . . Line: 6 @@ -148,7 +152,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Qualified +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 50 @@ -184,7 +188,7 @@ File { . . . } . . } . . 3: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 78 . . . . Line: 9 @@ -200,26 +204,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " array access " . . . . . StartPosition: { -. . . . . . Offset: 62 -. . . . . . Line: 8 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 78 -. . . . . . Line: 9 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . TOKEN "b" +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . StartPosition: { . . . . . . Offset: 78 . . . . . . Line: 9 @@ -234,26 +232,28 @@ File { . . . . . . internalRole: var . . . . . } . . . . . Children: { -. . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Comment { +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " array access " . . . . . . . StartPosition: { -. . . . . . . . Offset: 62 -. . . . . . . . Line: 8 -. . . . . . . . Col: 1 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 78 -. . . . . . . . Line: 9 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } -. . . . . . 1: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . 2: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 78 @@ -270,21 +270,16 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Comment { -. . . . . . . . . Roles: Noop,Comment +. . . . . . . . . Roles: Comment,Noop . . . . . . . . . TOKEN " array access " . . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 62 -. . . . . . . . . . Line: 8 -. . . . . . . . . . Col: 1 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 78 -. . . . . . . . . . Line: 9 +. . . . . . . . . . Offset: 0 +. . . . . . . . . . Line: 1 . . . . . . . . . . Col: 1 . . . . . . . . . } . . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes +. . . . . . . . . . internalRole: comments . . . . . . . . . } . . . . . . . . } . . . . . . . } @@ -311,7 +306,7 @@ File { . . . } . . } . . 4: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 90 . . . . Line: 10 @@ -327,8 +322,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_StaticPropertyFetch { -. . . . . Roles: Expression,Map,Identifier,Entry,Value,Incomplete -. . . . . TOKEN "b" +. . . . . Roles: Entry,Expression,Identifier,Incomplete,Map,Value . . . . . StartPosition: { . . . . . . Offset: 90 . . . . . . Line: 10 @@ -344,7 +338,14 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Qualified +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 90 diff --git a/fixtures/switch.php.native b/fixtures/switch.php.native index 352a498..212b26b 100644 --- a/fixtures/switch.php.native +++ b/fixtures/switch.php.native @@ -2,289 +2,292 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 120, - "endLine": 11, - "endTokenPos": 42, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cases": [ - { - "attributes": { - "endFilePos": 62, - "endLine": 6, - "endTokenPos": 23, - "startFilePos": 25, - "startLine": 4, - "startTokenPos": 10 - }, - "cond": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 120, + "endLine": 11, + "endTokenPos": 42, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "cases": [ + { "attributes": { - "endFilePos": 30, - "endLine": 4, - "endTokenPos": 12, - "kind": 10, - "startFilePos": 30, + "endFilePos": 62, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 25, "startLine": 4, - "startTokenPos": 12 + "startTokenPos": 10 }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Stmt_Case", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 46, - "endLine": 5, - "endTokenPos": 19, - "startFilePos": 41, - "startLine": 5, - "startTokenPos": 15 + "endFilePos": 30, + "endLine": 4, + "endTokenPos": 12, + "kind": 10, + "startFilePos": 30, + "startLine": 4, + "startTokenPos": 12 }, - "expr": { + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Stmt_Case", + "stmts": [ + { "attributes": { "endFilePos": 46, "endLine": 5, "endTokenPos": 19, - "kind": 10, - "startFilePos": 46, - "startLine": 5, - "startTokenPos": 19 - }, - "nodeType": "Scalar_LNumber", - "value": 0 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 42, - "endLine": 5, - "endTokenPos": 15, "startFilePos": 41, "startLine": 5, "startTokenPos": 15 }, - "name": "x", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 62, - "endLine": 6, - "endTokenPos": 23, - "startFilePos": 57, - "startLine": 6, - "startTokenPos": 22 + "expr": { + "attributes": { + "endFilePos": 46, + "endLine": 5, + "endTokenPos": 19, + "kind": 10, + "startFilePos": 46, + "startLine": 5, + "startTokenPos": 19 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 42, + "endLine": 5, + "endTokenPos": 15, + "startFilePos": 41, + "startLine": 5, + "startTokenPos": 15 + }, + "name": "x", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Stmt_Break", - "num": null - }, - { - "attributes": { - "comments": [ - { - "filePos": 68, - "line": 7, - "nodeType": "Comment", - "text": "// Comment\n" - } - ] + { + "attributes": { + "endFilePos": 62, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 57, + "startLine": 6, + "startTokenPos": 22 + }, + "nodeType": "Stmt_Break", + "num": null }, - "nodeType": "Stmt_Nop" - } - ] - }, - { - "attributes": { - "comments": [ { - "filePos": 68, - "line": 7, - "nodeType": "Comment", - "text": "// Comment\n" + "attributes": { + "comments": [ + { + "filePos": 68, + "line": 7, + "nodeType": "Comment", + "text": "// Comment\n" + } + ] + }, + "nodeType": "Stmt_Nop" } - ], - "endFilePos": 89, - "endLine": 8, - "endTokenPos": 30, - "startFilePos": 83, - "startLine": 8, - "startTokenPos": 27 + ] }, - "cond": { + { "attributes": { - "endFilePos": 88, + "comments": [ + { + "filePos": 68, + "line": 7, + "nodeType": "Comment", + "text": "// Comment\n" + } + ], + "endFilePos": 89, "endLine": 8, - "endTokenPos": 29, - "kind": 10, - "startFilePos": 88, + "endTokenPos": 30, + "startFilePos": 83, "startLine": 8, - "startTokenPos": 29 + "startTokenPos": 27 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Stmt_Case", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 118, - "endLine": 10, - "endTokenPos": 40, - "startFilePos": 95, - "startLine": 9, - "startTokenPos": 32 - }, - "cond": null, - "nodeType": "Stmt_Case", - "stmts": [ - { + "cond": { "attributes": { - "endFilePos": 117, - "endLine": 10, - "endTokenPos": 39, - "startFilePos": 112, - "startLine": 10, - "startTokenPos": 35 + "endFilePos": 88, + "endLine": 8, + "endTokenPos": 29, + "kind": 10, + "startFilePos": 88, + "startLine": 8, + "startTokenPos": 29 }, - "expr": { + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Stmt_Case", + "stmts": [] + }, + { + "attributes": { + "endFilePos": 118, + "endLine": 10, + "endTokenPos": 40, + "startFilePos": 95, + "startLine": 9, + "startTokenPos": 32 + }, + "cond": null, + "nodeType": "Stmt_Case", + "stmts": [ + { "attributes": { "endFilePos": 117, "endLine": 10, "endTokenPos": 39, - "kind": 10, - "startFilePos": 117, - "startLine": 10, - "startTokenPos": 39 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 113, - "endLine": 10, - "endTokenPos": 35, "startFilePos": 112, "startLine": 10, "startTokenPos": 35 }, - "name": "y", - "nodeType": "Expr_Variable" + "expr": { + "attributes": { + "endFilePos": 117, + "endLine": 10, + "endTokenPos": 39, + "kind": 10, + "startFilePos": 117, + "startLine": 10, + "startTokenPos": 39 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 113, + "endLine": 10, + "endTokenPos": 35, + "startFilePos": 112, + "startLine": 10, + "startTokenPos": 35 + }, + "name": "y", + "nodeType": "Expr_Variable" + } } - } - ] - } - ], - "cond": { - "attributes": { - "endFilePos": 16, - "endLine": 3, - "endTokenPos": 5, - "startFilePos": 15, - "startLine": 3, - "startTokenPos": 5 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Switch" - }, - { - "attributes": { - "comments": [ - { - "filePos": 123, - "line": 13, - "nodeType": "Comment", - "text": "// alternative syntax\n" + ] } ], - "endFilePos": 167, - "endLine": 15, - "endTokenPos": 53, - "startFilePos": 145, - "startLine": 14, - "startTokenPos": 45 + "cond": { + "attributes": { + "endFilePos": 16, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 15, + "startLine": 3, + "startTokenPos": 5 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Switch" }, - "cases": [], - "cond": { + { "attributes": { - "endFilePos": 154, - "endLine": 14, - "endTokenPos": 48, - "startFilePos": 153, + "comments": [ + { + "filePos": 123, + "line": 13, + "nodeType": "Comment", + "text": "// alternative syntax\n" + } + ], + "endFilePos": 167, + "endLine": 15, + "endTokenPos": 53, + "startFilePos": 145, "startLine": 14, - "startTokenPos": 48 + "startTokenPos": 45 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Switch" - }, - { - "attributes": { - "comments": [ - { - "filePos": 170, - "line": 17, - "nodeType": "Comment", - "text": "// leading semicolon\n" - } - ], - "endFilePos": 207, - "endLine": 18, - "endTokenPos": 66, - "startFilePos": 191, - "startLine": 18, - "startTokenPos": 56 + "cases": [], + "cond": { + "attributes": { + "endFilePos": 154, + "endLine": 14, + "endTokenPos": 48, + "startFilePos": 153, + "startLine": 14, + "startTokenPos": 48 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Switch" }, - "cases": [], - "cond": { + { "attributes": { - "endFilePos": 200, + "comments": [ + { + "filePos": 170, + "line": 17, + "nodeType": "Comment", + "text": "// leading semicolon\n" + } + ], + "endFilePos": 207, "endLine": 18, - "endTokenPos": 59, - "startFilePos": 199, + "endTokenPos": 66, + "startFilePos": 191, "startLine": 18, - "startTokenPos": 59 + "startTokenPos": 56 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Switch" - }, - { - "attributes": { - "endFilePos": 233, - "endLine": 19, - "endTokenPos": 78, - "startFilePos": 209, - "startLine": 19, - "startTokenPos": 68 + "cases": [], + "cond": { + "attributes": { + "endFilePos": 200, + "endLine": 18, + "endTokenPos": 59, + "startFilePos": 199, + "startLine": 18, + "startTokenPos": 59 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Switch" }, - "cases": [], - "cond": { + { "attributes": { - "endFilePos": 218, + "endFilePos": 233, "endLine": 19, - "endTokenPos": 71, - "startFilePos": 217, + "endTokenPos": 78, + "startFilePos": 209, "startLine": 19, - "startTokenPos": 71 + "startTokenPos": 68 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Switch" - } - ] + "cases": [], + "cond": { + "attributes": { + "endFilePos": 218, + "endLine": 19, + "endTokenPos": 71, + "startFilePos": 217, + "startLine": 19, + "startTokenPos": 71 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Switch" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/switch.php.uast b/fixtures/switch.php.uast index 67b15ea..63c419c 100644 --- a/fixtures/switch.php.uast +++ b/fixtures/switch.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Switch { -. . . Roles: Statement,Switch +. . . Roles: Switch . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition,Switch -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 15 . . . . . . Line: 3 @@ -37,9 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Stmt_Case { -. . . . . Roles: Statement,Case +. . . . . Roles: Case . . . . . StartPosition: { . . . . . . Offset: 25 . . . . . . Line: 4 @@ -54,8 +62,36 @@ File { . . . . . . internalRole: cases . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_LNumber { -. . . . . . . Roles: Condition,Expression,Literal,Number,Case +. . . . . . 0: Stmt_Nop { +. . . . . . . Roles: Body,Case,Noop +. . . . . . . Properties: { +. . . . . . . . internalRole: stmts +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: { +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: attributes +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Comment { +. . . . . . . . . . . Roles: Comment,Noop +. . . . . . . . . . . TOKEN " Comment +" +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 0 +. . . . . . . . . . . . Line: 1 +. . . . . . . . . . . . Col: 1 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: comments +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_LNumber { +. . . . . . . Roles: Case,Condition,Expression,Literal,Number . . . . . . . TOKEN "0" . . . . . . . StartPosition: { . . . . . . . . Offset: 30 @@ -71,8 +107,8 @@ File { . . . . . . . . internalRole: cond . . . . . . . } . . . . . . } -. . . . . . 1: Expr_Assign { -. . . . . . . Roles: Expression,Body,Assignment +. . . . . . 2: Expr_Assign { +. . . . . . . Roles: Assignment,Body,Case,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 41 . . . . . . . . Line: 5 @@ -88,8 +124,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . TOKEN "x" +. . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 41 . . . . . . . . . . Line: 5 @@ -103,9 +138,18 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "x" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "0" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 46 @@ -123,8 +167,8 @@ File { . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 2: Stmt_Break { -. . . . . . . Roles: Expression,Body,Statement,Break +. . . . . . 3: Stmt_Break { +. . . . . . . Roles: Body,Break,Case,Statement . . . . . . . StartPosition: { . . . . . . . . Offset: 57 . . . . . . . . Line: 6 @@ -139,36 +183,10 @@ File { . . . . . . . . internalRole: stmts . . . . . . . } . . . . . . } -. . . . . . 3: Stmt_Nop { -. . . . . . . Roles: Noop,Expression,Body -. . . . . . . Properties: { -. . . . . . . . internalRole: stmts -. . . . . . . } -. . . . . . . Children: { -. . . . . . . . 0: Comment { -. . . . . . . . . Roles: Noop,Comment -. . . . . . . . . TOKEN " Comment -" -. . . . . . . . . StartPosition: { -. . . . . . . . . . Offset: 68 -. . . . . . . . . . Line: 7 -. . . . . . . . . . Col: 5 -. . . . . . . . . } -. . . . . . . . . EndPosition: { -. . . . . . . . . . Offset: 79 -. . . . . . . . . . Line: 8 -. . . . . . . . . . Col: 1 -. . . . . . . . . } -. . . . . . . . . Properties: { -. . . . . . . . . . internalRole: attributes -. . . . . . . . . } -. . . . . . . . } -. . . . . . . } -. . . . . . } . . . . . } . . . . } . . . . 2: Stmt_Case { -. . . . . Roles: Statement,Case +. . . . . Roles: Case . . . . . StartPosition: { . . . . . . Offset: 83 . . . . . . Line: 8 @@ -184,25 +202,20 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Comment { -. . . . . . . Roles: Noop,Comment +. . . . . . . Roles: Comment,Noop . . . . . . . TOKEN " Comment " . . . . . . . StartPosition: { -. . . . . . . . Offset: 68 -. . . . . . . . Line: 7 -. . . . . . . . Col: 5 -. . . . . . . } -. . . . . . . EndPosition: { -. . . . . . . . Offset: 79 -. . . . . . . . Line: 8 +. . . . . . . . Offset: 0 +. . . . . . . . Line: 1 . . . . . . . . Col: 1 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: attributes +. . . . . . . . internalRole: comments . . . . . . . } . . . . . . } . . . . . . 1: Scalar_LNumber { -. . . . . . . Roles: Condition,Expression,Literal,Number,Case +. . . . . . . Roles: Case,Condition,Expression,Literal,Number . . . . . . . TOKEN "1" . . . . . . . StartPosition: { . . . . . . . . Offset: 88 @@ -221,7 +234,7 @@ File { . . . . . } . . . . } . . . . 3: Stmt_Case { -. . . . . Roles: Statement,Case,Default +. . . . . Roles: Case,Default . . . . . StartPosition: { . . . . . . Offset: 95 . . . . . . Line: 9 @@ -237,7 +250,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Assign { -. . . . . . . Roles: Expression,Body,Assignment +. . . . . . . Roles: Assignment,Body,Case,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 112 . . . . . . . . Line: 10 @@ -253,8 +266,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { -. . . . . . . . . Roles: Identifier,Variable,Left -. . . . . . . . . TOKEN "y" +. . . . . . . . . Roles: Identifier,Left,Variable . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 112 . . . . . . . . . . Line: 10 @@ -268,9 +280,18 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: var . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "y" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 117 @@ -293,7 +314,7 @@ File { . . . } . . } . . 1: Stmt_Switch { -. . . Roles: Statement,Switch +. . . Roles: Switch . . . StartPosition: { . . . . Offset: 145 . . . . Line: 14 @@ -309,26 +330,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " alternative syntax " . . . . . StartPosition: { -. . . . . . Offset: 123 -. . . . . . Line: 13 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 145 -. . . . . . Line: 14 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition,Switch -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 153 . . . . . . Line: 14 @@ -342,11 +357,20 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 2: Stmt_Switch { -. . . Roles: Statement,Switch +. . . Roles: Switch . . . StartPosition: { . . . . Offset: 191 . . . . Line: 18 @@ -362,26 +386,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " leading semicolon " . . . . . StartPosition: { -. . . . . . Offset: 170 -. . . . . . Line: 17 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 191 -. . . . . . Line: 18 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition,Switch -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 199 . . . . . . Line: 18 @@ -395,11 +413,20 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 3: Stmt_Switch { -. . . Roles: Statement,Switch +. . . Roles: Switch . . . StartPosition: { . . . . Offset: 209 . . . . Line: 19 @@ -415,8 +442,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition,Switch -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 217 . . . . . . Line: 19 @@ -430,6 +456,15 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/ternary.php.native b/fixtures/ternary.php.native index 1ccfa86..7bc3a28 100644 --- a/fixtures/ternary.php.native +++ b/fixtures/ternary.php.native @@ -2,79 +2,82 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 19, - "endLine": 3, - "endTokenPos": 13, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 19, "endLine": 3, "endTokenPos": 13, - "startFilePos": 12, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 6 + "startTokenPos": 2 }, - "cond": { + "expr": { "attributes": { - "endFilePos": 12, + "endFilePos": 19, "endLine": 3, - "endTokenPos": 6, - "kind": 10, + "endTokenPos": 13, "startFilePos": 12, "startLine": 3, "startTokenPos": 6 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "else": { - "attributes": { - "endFilePos": 19, - "endLine": 3, - "endTokenPos": 13, - "kind": 10, - "startFilePos": 19, - "startLine": 3, - "startTokenPos": 13 + "cond": { + "attributes": { + "endFilePos": 12, + "endLine": 3, + "endTokenPos": 6, + "kind": 10, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "nodeType": "Scalar_LNumber", + "value": 1 }, - "nodeType": "Scalar_LNumber", - "value": 0 + "else": { + "attributes": { + "endFilePos": 19, + "endLine": 3, + "endTokenPos": 13, + "kind": 10, + "startFilePos": 19, + "startLine": 3, + "startTokenPos": 13 + }, + "nodeType": "Scalar_LNumber", + "value": 0 + }, + "if": { + "attributes": { + "endFilePos": 15, + "endLine": 3, + "endTokenPos": 9, + "kind": 10, + "startFilePos": 15, + "startLine": 3, + "startTokenPos": 9 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Ternary" }, - "if": { + "nodeType": "Expr_Assign", + "var": { "attributes": { - "endFilePos": 15, + "endFilePos": 8, "endLine": 3, - "endTokenPos": 9, - "kind": 10, - "startFilePos": 15, + "endTokenPos": 2, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 9 + "startTokenPos": 2 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_Ternary" - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 8, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": "a", - "nodeType": "Expr_Variable" + "name": "a", + "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/ternary.php.uast b/fixtures/ternary.php.uast index 22b559d..ad0420f 100644 --- a/fixtures/ternary.php.uast +++ b/fixtures/ternary.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Assign { -. . . Roles: Expression,Assignment +. . . Roles: Assignment,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,9 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: var . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Ternary { -. . . . . Roles: Right,Expression,If +. . . . . Roles: Expression,If,Right . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 3 @@ -55,7 +63,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Scalar_LNumber { -. . . . . . . Roles: Condition,Expression,Literal,Number +. . . . . . . Roles: Condition,Expression,If,Literal,Number . . . . . . . TOKEN "1" . . . . . . . StartPosition: { . . . . . . . . Offset: 12 @@ -89,7 +97,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 2: Scalar_LNumber { -. . . . . . . Roles: Expression,Literal,Number,Else +. . . . . . . Roles: Else,Expression,Literal,Number . . . . . . . TOKEN "0" . . . . . . . StartPosition: { . . . . . . . . Offset: 19 diff --git a/fixtures/ternary_and_coalesce.php.native b/fixtures/ternary_and_coalesce.php.native index b86c765..a06dfdd 100644 --- a/fixtures/ternary_and_coalesce.php.native +++ b/fixtures/ternary_and_coalesce.php.native @@ -2,212 +2,192 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 18, - "endLine": 3, - "endTokenPos": 10, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 8, + "endFilePos": 18, "endLine": 3, - "endTokenPos": 2, + "endTokenPos": 10, "startFilePos": 7, "startLine": 3, "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": { - "attributes": { - "endFilePos": 18, - "endLine": 3, - "endTokenPos": 10, - "startFilePos": 17, - "startLine": 3, - "startTokenPos": 10 + "cond": { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "if": { - "attributes": { - "endFilePos": 13, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 12, - "startLine": 3, - "startTokenPos": 6 + "else": { + "attributes": { + "endFilePos": 18, + "endLine": 3, + "endTokenPos": 10, + "startFilePos": 17, + "startLine": 3, + "startTokenPos": 10 + }, + "name": "c", + "nodeType": "Expr_Variable" }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Ternary" - }, - { - "attributes": { - "endFilePos": 28, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 13 - }, - "cond": { - "attributes": { - "endFilePos": 22, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 21, - "startLine": 4, - "startTokenPos": 13 + "if": { + "attributes": { + "endFilePos": 13, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 12, + "startLine": 3, + "startTokenPos": 6 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "a", - "nodeType": "Expr_Variable" + "nodeType": "Expr_Ternary" }, - "else": { + { "attributes": { "endFilePos": 28, "endLine": 4, "endTokenPos": 18, - "startFilePos": 27, + "startFilePos": 21, "startLine": 4, - "startTokenPos": 18 + "startTokenPos": 13 }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "if": null, - "nodeType": "Expr_Ternary" - }, - { - "attributes": { - "endFilePos": 53, - "endLine": 6, - "endTokenPos": 37, - "startFilePos": 32, - "startLine": 6, - "startTokenPos": 21 + "cond": { + "attributes": { + "endFilePos": 22, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 21, + "startLine": 4, + "startTokenPos": 13 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "else": { + "attributes": { + "endFilePos": 28, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 27, + "startLine": 4, + "startTokenPos": 18 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "if": null, + "nodeType": "Expr_Ternary" }, - "cond": { + { "attributes": { - "endFilePos": 43, + "endFilePos": 53, "endLine": 6, - "endTokenPos": 29, + "endTokenPos": 37, "startFilePos": 32, "startLine": 6, "startTokenPos": 21 }, "cond": { "attributes": { - "endFilePos": 33, + "endFilePos": 43, "endLine": 6, - "endTokenPos": 21, + "endTokenPos": 29, "startFilePos": 32, "startLine": 6, "startTokenPos": 21 }, - "name": "a", - "nodeType": "Expr_Variable" + "cond": { + "attributes": { + "endFilePos": 33, + "endLine": 6, + "endTokenPos": 21, + "startFilePos": 32, + "startLine": 6, + "startTokenPos": 21 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "else": { + "attributes": { + "endFilePos": 43, + "endLine": 6, + "endTokenPos": 29, + "startFilePos": 42, + "startLine": 6, + "startTokenPos": 29 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "if": { + "attributes": { + "endFilePos": 38, + "endLine": 6, + "endTokenPos": 25, + "startFilePos": 37, + "startLine": 6, + "startTokenPos": 25 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Ternary" }, "else": { "attributes": { - "endFilePos": 43, + "endFilePos": 53, "endLine": 6, - "endTokenPos": 29, - "startFilePos": 42, + "endTokenPos": 37, + "startFilePos": 52, "startLine": 6, - "startTokenPos": 29 + "startTokenPos": 37 }, - "name": "c", + "name": "e", "nodeType": "Expr_Variable" }, "if": { "attributes": { - "endFilePos": 38, + "endFilePos": 48, "endLine": 6, - "endTokenPos": 25, - "startFilePos": 37, + "endTokenPos": 33, + "startFilePos": 47, "startLine": 6, - "startTokenPos": 25 + "startTokenPos": 33 }, - "name": "b", + "name": "d", "nodeType": "Expr_Variable" }, "nodeType": "Expr_Ternary" }, - "else": { - "attributes": { - "endFilePos": 53, - "endLine": 6, - "endTokenPos": 37, - "startFilePos": 52, - "startLine": 6, - "startTokenPos": 37 - }, - "name": "e", - "nodeType": "Expr_Variable" - }, - "if": { - "attributes": { - "endFilePos": 48, - "endLine": 6, - "endTokenPos": 33, - "startFilePos": 47, - "startLine": 6, - "startTokenPos": 33 - }, - "name": "d", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Ternary" - }, - { - "attributes": { - "endFilePos": 79, - "endLine": 7, - "endTokenPos": 58, - "startFilePos": 56, - "startLine": 7, - "startTokenPos": 40 - }, - "cond": { + { "attributes": { - "endFilePos": 57, + "endFilePos": 79, "endLine": 7, - "endTokenPos": 40, + "endTokenPos": 58, "startFilePos": 56, "startLine": 7, "startTokenPos": 40 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "else": { - "attributes": { - "endFilePos": 78, - "endLine": 7, - "endTokenPos": 57, - "startFilePos": 67, - "startLine": 7, - "startTokenPos": 49 - }, "cond": { "attributes": { - "endFilePos": 68, + "endFilePos": 57, "endLine": 7, - "endTokenPos": 49, - "startFilePos": 67, + "endTokenPos": 40, + "startFilePos": 56, "startLine": 7, - "startTokenPos": 49 + "startTokenPos": 40 }, - "name": "c", + "name": "a", "nodeType": "Expr_Variable" }, "else": { @@ -215,117 +195,116 @@ "endFilePos": 78, "endLine": 7, "endTokenPos": 57, - "startFilePos": 77, + "startFilePos": 67, "startLine": 7, - "startTokenPos": 57 + "startTokenPos": 49 }, - "name": "e", - "nodeType": "Expr_Variable" + "cond": { + "attributes": { + "endFilePos": 68, + "endLine": 7, + "endTokenPos": 49, + "startFilePos": 67, + "startLine": 7, + "startTokenPos": 49 + }, + "name": "c", + "nodeType": "Expr_Variable" + }, + "else": { + "attributes": { + "endFilePos": 78, + "endLine": 7, + "endTokenPos": 57, + "startFilePos": 77, + "startLine": 7, + "startTokenPos": 57 + }, + "name": "e", + "nodeType": "Expr_Variable" + }, + "if": { + "attributes": { + "endFilePos": 73, + "endLine": 7, + "endTokenPos": 53, + "startFilePos": 72, + "startLine": 7, + "startTokenPos": 53 + }, + "name": "d", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_Ternary" }, "if": { "attributes": { - "endFilePos": 73, + "endFilePos": 62, "endLine": 7, - "endTokenPos": 53, - "startFilePos": 72, + "endTokenPos": 44, + "startFilePos": 61, "startLine": 7, - "startTokenPos": 53 + "startTokenPos": 44 }, - "name": "d", + "name": "b", "nodeType": "Expr_Variable" }, "nodeType": "Expr_Ternary" }, - "if": { - "attributes": { - "endFilePos": 62, - "endLine": 7, - "endTokenPos": 44, - "startFilePos": 61, - "startLine": 7, - "startTokenPos": 44 - }, - "name": "b", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Ternary" - }, - { - "attributes": { - "endFilePos": 90, - "endLine": 9, - "endTokenPos": 65, - "startFilePos": 83, - "startLine": 9, - "startTokenPos": 61 - }, - "left": { - "attributes": { - "endFilePos": 84, - "endLine": 9, - "endTokenPos": 61, - "startFilePos": 83, - "startLine": 9, - "startTokenPos": 61 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_BinaryOp_Coalesce", - "right": { + { "attributes": { "endFilePos": 90, "endLine": 9, "endTokenPos": 65, - "startFilePos": 89, + "startFilePos": 83, "startLine": 9, - "startTokenPos": 65 + "startTokenPos": 61 }, - "name": "b", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 106, - "endLine": 10, - "endTokenPos": 76, - "startFilePos": 93, - "startLine": 10, - "startTokenPos": 68 - }, - "left": { - "attributes": { - "endFilePos": 94, - "endLine": 10, - "endTokenPos": 68, - "startFilePos": 93, - "startLine": 10, - "startTokenPos": 68 + "left": { + "attributes": { + "endFilePos": 84, + "endLine": 9, + "endTokenPos": 61, + "startFilePos": 83, + "startLine": 9, + "startTokenPos": 61 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "a", - "nodeType": "Expr_Variable" + "nodeType": "Expr_BinaryOp_Coalesce", + "right": { + "attributes": { + "endFilePos": 90, + "endLine": 9, + "endTokenPos": 65, + "startFilePos": 89, + "startLine": 9, + "startTokenPos": 65 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_Coalesce", - "right": { + { "attributes": { "endFilePos": 106, "endLine": 10, "endTokenPos": 76, - "startFilePos": 99, + "startFilePos": 93, "startLine": 10, - "startTokenPos": 72 + "startTokenPos": 68 }, "left": { "attributes": { - "endFilePos": 100, + "endFilePos": 94, "endLine": 10, - "endTokenPos": 72, - "startFilePos": 99, + "endTokenPos": 68, + "startFilePos": 93, "startLine": 10, - "startTokenPos": 72 + "startTokenPos": 68 }, - "name": "b", + "name": "a", "nodeType": "Expr_Variable" }, "nodeType": "Expr_BinaryOp_Coalesce", @@ -334,142 +313,166 @@ "endFilePos": 106, "endLine": 10, "endTokenPos": 76, - "startFilePos": 105, + "startFilePos": 99, "startLine": 10, - "startTokenPos": 76 + "startTokenPos": 72 }, - "name": "c", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 100, + "endLine": 10, + "endTokenPos": 72, + "startFilePos": 99, + "startLine": 10, + "startTokenPos": 72 + }, + "name": "b", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Coalesce", + "right": { + "attributes": { + "endFilePos": 106, + "endLine": 10, + "endTokenPos": 76, + "startFilePos": 105, + "startLine": 10, + "startTokenPos": 76 + }, + "name": "c", + "nodeType": "Expr_Variable" + } } - } - }, - { - "attributes": { - "endFilePos": 126, - "endLine": 11, - "endTokenPos": 91, - "startFilePos": 109, - "startLine": 11, - "startTokenPos": 79 }, - "cond": { + { "attributes": { - "endFilePos": 116, + "endFilePos": 126, "endLine": 11, - "endTokenPos": 83, + "endTokenPos": 91, "startFilePos": 109, "startLine": 11, "startTokenPos": 79 }, - "left": { + "cond": { "attributes": { - "endFilePos": 110, + "endFilePos": 116, "endLine": 11, - "endTokenPos": 79, + "endTokenPos": 83, "startFilePos": 109, "startLine": 11, "startTokenPos": 79 }, - "name": "a", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 110, + "endLine": 11, + "endTokenPos": 79, + "startFilePos": 109, + "startLine": 11, + "startTokenPos": 79 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_Coalesce", + "right": { + "attributes": { + "endFilePos": 116, + "endLine": 11, + "endTokenPos": 83, + "startFilePos": 115, + "startLine": 11, + "startTokenPos": 83 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_Coalesce", - "right": { + "else": { "attributes": { - "endFilePos": 116, + "endFilePos": 126, "endLine": 11, - "endTokenPos": 83, - "startFilePos": 115, + "endTokenPos": 91, + "startFilePos": 125, "startLine": 11, - "startTokenPos": 83 + "startTokenPos": 91 }, - "name": "b", + "name": "d", "nodeType": "Expr_Variable" - } - }, - "else": { - "attributes": { - "endFilePos": 126, - "endLine": 11, - "endTokenPos": 91, - "startFilePos": 125, - "startLine": 11, - "startTokenPos": 91 }, - "name": "d", - "nodeType": "Expr_Variable" - }, - "if": { - "attributes": { - "endFilePos": 121, - "endLine": 11, - "endTokenPos": 87, - "startFilePos": 120, - "startLine": 11, - "startTokenPos": 87 + "if": { + "attributes": { + "endFilePos": 121, + "endLine": 11, + "endTokenPos": 87, + "startFilePos": 120, + "startLine": 11, + "startTokenPos": 87 + }, + "name": "c", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Ternary" - }, - { - "attributes": { - "endFilePos": 142, - "endLine": 12, - "endTokenPos": 102, - "startFilePos": 129, - "startLine": 12, - "startTokenPos": 94 + "nodeType": "Expr_Ternary" }, - "left": { + { "attributes": { - "endFilePos": 136, + "endFilePos": 142, "endLine": 12, - "endTokenPos": 98, + "endTokenPos": 102, "startFilePos": 129, "startLine": 12, "startTokenPos": 94 }, "left": { "attributes": { - "endFilePos": 130, + "endFilePos": 136, "endLine": 12, - "endTokenPos": 94, + "endTokenPos": 98, "startFilePos": 129, "startLine": 12, "startTokenPos": 94 }, - "name": "a", - "nodeType": "Expr_Variable" + "left": { + "attributes": { + "endFilePos": 130, + "endLine": 12, + "endTokenPos": 94, + "startFilePos": 129, + "startLine": 12, + "startTokenPos": 94 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_BinaryOp_BooleanAnd", + "right": { + "attributes": { + "endFilePos": 136, + "endLine": 12, + "endTokenPos": 98, + "startFilePos": 135, + "startLine": 12, + "startTokenPos": 98 + }, + "name": "b", + "nodeType": "Expr_Variable" + } }, - "nodeType": "Expr_BinaryOp_BooleanAnd", + "nodeType": "Expr_BinaryOp_Coalesce", "right": { "attributes": { - "endFilePos": 136, + "endFilePos": 142, "endLine": 12, - "endTokenPos": 98, - "startFilePos": 135, + "endTokenPos": 102, + "startFilePos": 141, "startLine": 12, - "startTokenPos": 98 + "startTokenPos": 102 }, - "name": "b", + "name": "c", "nodeType": "Expr_Variable" } - }, - "nodeType": "Expr_BinaryOp_Coalesce", - "right": { - "attributes": { - "endFilePos": 142, - "endLine": 12, - "endTokenPos": 102, - "startFilePos": 141, - "startLine": 12, - "startTokenPos": 102 - }, - "name": "c", - "nodeType": "Expr_Variable" } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/ternary_and_coalesce.php.uast b/fixtures/ternary_and_coalesce.php.uast index 335eef0..3935569 100644 --- a/fixtures/ternary_and_coalesce.php.uast +++ b/fixtures/ternary_and_coalesce.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Ternary { . . . Roles: Expression,If @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Condition,Identifier,If,Variable . . . . . StartPosition: { . . . . . . Offset: 7 . . . . . . Line: 3 @@ -37,10 +36,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Then -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Then,Variable . . . . . StartPosition: { . . . . . . Offset: 12 . . . . . . Line: 3 @@ -54,10 +61,18 @@ File { . . . . . Properties: { . . . . . . internalRole: if . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Else -. . . . . TOKEN "c" +. . . . . Roles: Else,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 17 . . . . . . Line: 3 @@ -71,6 +86,15 @@ File { . . . . . Properties: { . . . . . . internalRole: else . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -91,8 +115,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Condition,Identifier,If,Variable . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 4 @@ -106,10 +129,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Else -. . . . . TOKEN "c" +. . . . . Roles: Else,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 4 @@ -123,6 +154,15 @@ File { . . . . . Properties: { . . . . . . internalRole: else . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -159,8 +199,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "a" +. . . . . . . Roles: Condition,Identifier,If,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 32 . . . . . . . . Line: 6 @@ -174,10 +213,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Then -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Then,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 37 . . . . . . . . Line: 6 @@ -191,10 +238,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: if . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Else -. . . . . . . TOKEN "c" +. . . . . . . Roles: Else,Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 42 . . . . . . . . Line: 6 @@ -208,12 +263,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: else . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Then -. . . . . TOKEN "d" +. . . . . Roles: Identifier,Then,Variable . . . . . StartPosition: { . . . . . . Offset: 47 . . . . . . Line: 6 @@ -227,10 +290,18 @@ File { . . . . . Properties: { . . . . . . internalRole: if . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Else -. . . . . TOKEN "e" +. . . . . Roles: Else,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 52 . . . . . . Line: 6 @@ -244,6 +315,15 @@ File { . . . . . Properties: { . . . . . . internalRole: else . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "e" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -264,8 +344,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Condition,Identifier,If,Variable . . . . . StartPosition: { . . . . . . Offset: 56 . . . . . . Line: 7 @@ -279,10 +358,18 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Then -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Then,Variable . . . . . StartPosition: { . . . . . . Offset: 61 . . . . . . Line: 7 @@ -296,6 +383,15 @@ File { . . . . . Properties: { . . . . . . internalRole: if . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Ternary { . . . . . Roles: Else,Expression,If @@ -314,8 +410,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Condition -. . . . . . . TOKEN "c" +. . . . . . . Roles: Condition,Identifier,If,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 67 . . . . . . . . Line: 7 @@ -329,10 +424,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: cond . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Then -. . . . . . . TOKEN "d" +. . . . . . . Roles: Identifier,Then,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 72 . . . . . . . . Line: 7 @@ -346,10 +449,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: if . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "d" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 2: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Else -. . . . . . . TOKEN "e" +. . . . . . . Roles: Else,Identifier,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 77 . . . . . . . . Line: 7 @@ -363,6 +474,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: else . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "e" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -385,8 +505,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 83 . . . . . . Line: 9 @@ -400,10 +519,18 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "b" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 89 . . . . . . Line: 9 @@ -417,6 +544,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -437,8 +573,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Left -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Left,Variable . . . . . StartPosition: { . . . . . . Offset: 93 . . . . . . Line: 10 @@ -452,6 +587,15 @@ File { . . . . . Properties: { . . . . . . internalRole: left . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_BinaryOp_Coalesce { . . . . . Roles: Expression,Incomplete,Right @@ -470,8 +614,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 99 . . . . . . . . Line: 10 @@ -485,10 +628,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "c" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 105 . . . . . . . . Line: 10 @@ -502,6 +653,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } @@ -524,7 +684,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_BinaryOp_Coalesce { -. . . . . Roles: Expression,Incomplete,Condition +. . . . . Roles: Condition,Expression,If,Incomplete . . . . . StartPosition: { . . . . . . Offset: 109 . . . . . . Line: 11 @@ -540,8 +700,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 109 . . . . . . . . Line: 11 @@ -555,10 +714,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 115 . . . . . . . . Line: 11 @@ -572,12 +739,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Then -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Then,Variable . . . . . StartPosition: { . . . . . . Offset: 120 . . . . . . Line: 11 @@ -591,10 +766,18 @@ File { . . . . . Properties: { . . . . . . internalRole: if . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 2: Expr_Variable { -. . . . . Roles: Identifier,Variable,Else -. . . . . TOKEN "d" +. . . . . Roles: Else,Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 125 . . . . . . Line: 11 @@ -608,6 +791,15 @@ File { . . . . . Properties: { . . . . . . internalRole: else . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "d" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -628,7 +820,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_BinaryOp_BooleanAnd { -. . . . . Roles: Left,Expression,Binary,Operator,Boolean,And +. . . . . Roles: And,Binary,Boolean,Expression,Left,Operator . . . . . StartPosition: { . . . . . . Offset: 129 . . . . . . Line: 12 @@ -644,8 +836,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "a" +. . . . . . . Roles: Identifier,Left,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 129 . . . . . . . . Line: 12 @@ -659,10 +850,18 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: left . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . . 1: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Right -. . . . . . . TOKEN "b" +. . . . . . . Roles: Identifier,Right,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 135 . . . . . . . . Line: 12 @@ -676,12 +875,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: right . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . . 1: Expr_Variable { -. . . . . Roles: Identifier,Variable,Right -. . . . . TOKEN "c" +. . . . . Roles: Identifier,Right,Variable . . . . . StartPosition: { . . . . . . Offset: 141 . . . . . . Line: 12 @@ -695,6 +902,15 @@ File { . . . . . Properties: { . . . . . . internalRole: right . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/try_catch.php.native b/fixtures/try_catch.php.native index aec3e1f..878f71a 100644 --- a/fixtures/try_catch.php.native +++ b/fixtures/try_catch.php.native @@ -2,283 +2,286 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 121, - "endLine": 11, - "endTokenPos": 56, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "catches": [ - { - "attributes": { - "endFilePos": 59, - "endLine": 7, - "endTokenPos": 28, - "startFilePos": 28, - "startLine": 5, - "startTokenPos": 13 - }, - "nodeType": "Stmt_Catch", - "stmts": [ - { - "args": [], - "attributes": { - "endFilePos": 56, - "endLine": 6, - "endTokenPos": 25, - "startFilePos": 47, - "startLine": 6, - "startTokenPos": 23 - }, - "name": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 121, + "endLine": 11, + "endTokenPos": 56, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "catches": [ + { + "attributes": { + "endFilePos": 59, + "endLine": 7, + "endTokenPos": 28, + "startFilePos": 28, + "startLine": 5, + "startTokenPos": 13 + }, + "nodeType": "Stmt_Catch", + "stmts": [ + { + "args": [], "attributes": { - "endFilePos": 54, + "endFilePos": 56, "endLine": 6, - "endTokenPos": 23, + "endTokenPos": 25, "startFilePos": 47, "startLine": 6, "startTokenPos": 23 }, + "name": { + "attributes": { + "endFilePos": 54, + "endLine": 6, + "endTokenPos": 23, + "startFilePos": 47, + "startLine": 6, + "startTokenPos": 23 + }, + "nodeType": "Name", + "parts": [ + "doCatchA" + ] + }, + "nodeType": "Expr_FuncCall" + } + ], + "types": [ + { + "attributes": { + "endFilePos": 35, + "endLine": 5, + "endTokenPos": 16, + "startFilePos": 35, + "startLine": 5, + "startTokenPos": 16 + }, "nodeType": "Name", "parts": [ - "doCatchA" + "A" ] - }, - "nodeType": "Expr_FuncCall" - } - ], - "types": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 5, - "endTokenPos": 16, - "startFilePos": 35, - "startLine": 5, - "startTokenPos": 16 - }, - "nodeType": "Name", - "parts": [ - "A" - ] - } - ], - "var": "b" - }, - { + } + ], + "var": "b" + }, + { + "attributes": { + "endFilePos": 92, + "endLine": 9, + "endTokenPos": 45, + "startFilePos": 61, + "startLine": 7, + "startTokenPos": 30 + }, + "nodeType": "Stmt_Catch", + "stmts": [ + { + "args": [], + "attributes": { + "endFilePos": 89, + "endLine": 8, + "endTokenPos": 42, + "startFilePos": 80, + "startLine": 8, + "startTokenPos": 40 + }, + "name": { + "attributes": { + "endFilePos": 87, + "endLine": 8, + "endTokenPos": 40, + "startFilePos": 80, + "startLine": 8, + "startTokenPos": 40 + }, + "nodeType": "Name", + "parts": [ + "doCatchB" + ] + }, + "nodeType": "Expr_FuncCall" + } + ], + "types": [ + { + "attributes": { + "endFilePos": 68, + "endLine": 7, + "endTokenPos": 33, + "startFilePos": 68, + "startLine": 7, + "startTokenPos": 33 + }, + "nodeType": "Name", + "parts": [ + "B" + ] + } + ], + "var": "c" + } + ], + "finally": { "attributes": { - "endFilePos": 92, - "endLine": 9, - "endTokenPos": 45, - "startFilePos": 61, - "startLine": 7, - "startTokenPos": 30 + "endFilePos": 121, + "endLine": 11, + "endTokenPos": 56, + "startFilePos": 94, + "startLine": 9, + "startTokenPos": 47 }, - "nodeType": "Stmt_Catch", + "nodeType": "Stmt_Finally", "stmts": [ { "args": [], "attributes": { - "endFilePos": 89, - "endLine": 8, - "endTokenPos": 42, - "startFilePos": 80, - "startLine": 8, - "startTokenPos": 40 + "endFilePos": 118, + "endLine": 10, + "endTokenPos": 53, + "startFilePos": 108, + "startLine": 10, + "startTokenPos": 51 }, "name": { "attributes": { - "endFilePos": 87, - "endLine": 8, - "endTokenPos": 40, - "startFilePos": 80, - "startLine": 8, - "startTokenPos": 40 + "endFilePos": 116, + "endLine": 10, + "endTokenPos": 51, + "startFilePos": 108, + "startLine": 10, + "startTokenPos": 51 }, "nodeType": "Name", "parts": [ - "doCatchB" + "doFinally" ] }, "nodeType": "Expr_FuncCall" } - ], - "types": [ - { - "attributes": { - "endFilePos": 68, - "endLine": 7, - "endTokenPos": 33, - "startFilePos": 68, - "startLine": 7, - "startTokenPos": 33 - }, - "nodeType": "Name", - "parts": [ - "B" - ] - } - ], - "var": "c" - } - ], - "finally": { - "attributes": { - "endFilePos": 121, - "endLine": 11, - "endTokenPos": 56, - "startFilePos": 94, - "startLine": 9, - "startTokenPos": 47 + ] }, - "nodeType": "Stmt_Finally", + "nodeType": "Stmt_TryCatch", "stmts": [ { "args": [], "attributes": { - "endFilePos": 118, - "endLine": 10, - "endTokenPos": 53, - "startFilePos": 108, - "startLine": 10, - "startTokenPos": 51 + "endFilePos": 23, + "endLine": 4, + "endTokenPos": 8, + "startFilePos": 17, + "startLine": 4, + "startTokenPos": 6 }, "name": { "attributes": { - "endFilePos": 116, - "endLine": 10, - "endTokenPos": 51, - "startFilePos": 108, - "startLine": 10, - "startTokenPos": 51 + "endFilePos": 21, + "endLine": 4, + "endTokenPos": 6, + "startFilePos": 17, + "startLine": 4, + "startTokenPos": 6 }, "nodeType": "Name", "parts": [ - "doFinally" + "doTry" ] }, "nodeType": "Expr_FuncCall" } ] }, - "nodeType": "Stmt_TryCatch", - "stmts": [ - { - "args": [], - "attributes": { - "endFilePos": 23, - "endLine": 4, - "endTokenPos": 8, - "startFilePos": 17, - "startLine": 4, - "startTokenPos": 6 - }, - "name": { - "attributes": { - "endFilePos": 21, - "endLine": 4, - "endTokenPos": 6, - "startFilePos": 17, - "startLine": 4, - "startTokenPos": 6 - }, - "nodeType": "Name", - "parts": [ - "doTry" - ] - }, - "nodeType": "Expr_FuncCall" - } - ] - }, - { - "attributes": { - "comments": [ - { - "filePos": 124, - "line": 13, - "nodeType": "Comment", - "text": "// no finally\n" - } - ], - "endFilePos": 161, - "endLine": 15, - "endTokenPos": 75, - "startFilePos": 138, - "startLine": 14, - "startTokenPos": 59 - }, - "catches": [ - { - "attributes": { - "endFilePos": 161, - "endLine": 15, - "endTokenPos": 75, - "startFilePos": 146, - "startLine": 15, - "startTokenPos": 65 - }, - "nodeType": "Stmt_Catch", - "stmts": [], - "types": [ + { + "attributes": { + "comments": [ { - "attributes": { - "endFilePos": 153, - "endLine": 15, - "endTokenPos": 68, - "startFilePos": 153, - "startLine": 15, - "startTokenPos": 68 - }, - "nodeType": "Name", - "parts": [ - "A" - ] + "filePos": 124, + "line": 13, + "nodeType": "Comment", + "text": "// no finally\n" } ], - "var": "b" - } - ], - "finally": null, - "nodeType": "Stmt_TryCatch", - "stmts": [] - }, - { - "attributes": { - "comments": [ + "endFilePos": 161, + "endLine": 15, + "endTokenPos": 75, + "startFilePos": 138, + "startLine": 14, + "startTokenPos": 59 + }, + "catches": [ { - "filePos": 164, - "line": 17, - "nodeType": "Comment", - "text": "// no catch\n" + "attributes": { + "endFilePos": 161, + "endLine": 15, + "endTokenPos": 75, + "startFilePos": 146, + "startLine": 15, + "startTokenPos": 65 + }, + "nodeType": "Stmt_Catch", + "stmts": [], + "types": [ + { + "attributes": { + "endFilePos": 153, + "endLine": 15, + "endTokenPos": 68, + "startFilePos": 153, + "startLine": 15, + "startTokenPos": 68 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + } + ], + "var": "b" } ], - "endFilePos": 194, - "endLine": 19, - "endTokenPos": 88, - "startFilePos": 176, - "startLine": 18, - "startTokenPos": 78 + "finally": null, + "nodeType": "Stmt_TryCatch", + "stmts": [] }, - "catches": [], - "finally": { + { "attributes": { + "comments": [ + { + "filePos": 164, + "line": 17, + "nodeType": "Comment", + "text": "// no catch\n" + } + ], "endFilePos": 194, "endLine": 19, "endTokenPos": 88, - "startFilePos": 184, - "startLine": 19, - "startTokenPos": 84 + "startFilePos": 176, + "startLine": 18, + "startTokenPos": 78 }, - "nodeType": "Stmt_Finally", + "catches": [], + "finally": { + "attributes": { + "endFilePos": 194, + "endLine": 19, + "endTokenPos": 88, + "startFilePos": 184, + "startLine": 19, + "startTokenPos": 84 + }, + "nodeType": "Stmt_Finally", + "stmts": [] + }, + "nodeType": "Stmt_TryCatch", "stmts": [] - }, - "nodeType": "Stmt_TryCatch", - "stmts": [] - } - ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/try_catch.php.uast b/fixtures/try_catch.php.uast index b31163a..02e8431 100644 --- a/fixtures/try_catch.php.uast +++ b/fixtures/try_catch.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_TryCatch { . . . Roles: Statement,Try @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Expression,Body,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 17 . . . . . . Line: 4 @@ -38,7 +38,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "doTry" . . . . . . . StartPosition: { . . . . . . . . Offset: 17 @@ -57,7 +57,7 @@ File { . . . . . } . . . . } . . . . 1: Stmt_Catch { -. . . . . Roles: Statement,Catch +. . . . . Roles: Catch,Type . . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 28 @@ -74,7 +74,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 35 @@ -91,7 +91,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Expr_FuncCall { -. . . . . . . Roles: Expression,Body,Call +. . . . . . . Roles: Body,Call,Catch,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 47 . . . . . . . . Line: 6 @@ -107,7 +107,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "doCatchA" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 47 @@ -128,7 +128,7 @@ File { . . . . . } . . . . } . . . . 2: Stmt_Catch { -. . . . . Roles: Statement,Catch +. . . . . Roles: Catch,Type . . . . . TOKEN "c" . . . . . StartPosition: { . . . . . . Offset: 61 @@ -145,7 +145,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . TOKEN "B" . . . . . . . StartPosition: { . . . . . . . . Offset: 68 @@ -162,7 +162,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Expr_FuncCall { -. . . . . . . Roles: Expression,Body,Call +. . . . . . . Roles: Body,Call,Catch,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 80 . . . . . . . . Line: 8 @@ -178,7 +178,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "doCatchB" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 80 @@ -199,7 +199,7 @@ File { . . . . . } . . . . } . . . . 3: Stmt_Finally { -. . . . . Roles: Statement,Finally +. . . . . Roles: Finally,Statement . . . . . StartPosition: { . . . . . . Offset: 94 . . . . . . Line: 9 @@ -215,7 +215,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Expr_FuncCall { -. . . . . . . Roles: Expression,Body,Call +. . . . . . . Roles: Call,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 108 . . . . . . . . Line: 10 @@ -231,7 +231,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Name { -. . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . Roles: Expression,Identifier . . . . . . . . . TOKEN "doFinally" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 108 @@ -270,25 +270,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " no finally " . . . . . StartPosition: { -. . . . . . Offset: 124 -. . . . . . Line: 13 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 138 -. . . . . . Line: 14 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Stmt_Catch { -. . . . . Roles: Statement,Catch +. . . . . Roles: Catch,Type . . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 146 @@ -305,7 +300,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Catch,Type +. . . . . . . Roles: Catch,Expression,Identifier,Type . . . . . . . TOKEN "A" . . . . . . . StartPosition: { . . . . . . . . Offset: 153 @@ -342,25 +337,20 @@ File { . . . } . . . Children: { . . . . 0: Comment { -. . . . . Roles: Noop,Comment +. . . . . Roles: Comment,Noop . . . . . TOKEN " no catch " . . . . . StartPosition: { -. . . . . . Offset: 164 -. . . . . . Line: 17 -. . . . . . Col: 1 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 176 -. . . . . . Line: 18 +. . . . . . Offset: 0 +. . . . . . Line: 1 . . . . . . Col: 1 . . . . . } . . . . . Properties: { -. . . . . . internalRole: attributes +. . . . . . internalRole: comments . . . . . } . . . . } . . . . 1: Stmt_Finally { -. . . . . Roles: Statement,Finally +. . . . . Roles: Finally,Statement . . . . . StartPosition: { . . . . . . Offset: 184 . . . . . . Line: 19 diff --git a/fixtures/u2_class_accessors.php.native b/fixtures/u2_class_accessors.php.native index 61206d1..45583ae 100644 --- a/fixtures/u2_class_accessors.php.native +++ b/fixtures/u2_class_accessors.php.native @@ -2,79 +2,68 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 339, - "endLine": 16, - "endTokenPos": 89, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 162, - "endLine": 7, - "endTokenPos": 41, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 1, - "name": "__get", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 57, - "endLine": 3, - "endTokenPos": 13, - "startFilePos": 49, - "startLine": 3, - "startTokenPos": 13 - }, - "byRef": false, - "default": null, - "name": "property", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 156, - "endLine": 6, - "endTokenPos": 39, - "startFilePos": 70, - "startLine": 4, - "startTokenPos": 18 - }, - "cond": { - "args": [ - { - "attributes": { - "endFilePos": 94, - "endLine": 4, - "endTokenPos": 23, - "startFilePos": 90, - "startLine": 4, - "startTokenPos": 23 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 339, + "endLine": 16, + "endTokenPos": 89, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 162, + "endLine": 7, + "endTokenPos": 41, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 1, + "name": "__get", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 57, + "endLine": 3, + "endTokenPos": 13, + "startFilePos": 49, + "startLine": 3, + "startTokenPos": 13 + }, + "byRef": false, + "default": null, + "name": "property", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [ + { + "attributes": { + "endFilePos": 156, + "endLine": 6, + "endTokenPos": 39, + "startFilePos": 70, + "startLine": 4, + "startTokenPos": 18 + }, + "cond": { + "args": [ + { "attributes": { "endFilePos": 94, "endLine": 4, @@ -83,23 +72,23 @@ "startLine": 4, "startTokenPos": 23 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 105, - "endLine": 4, - "endTokenPos": 26, - "startFilePos": 97, - "startLine": 4, - "startTokenPos": 26 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 94, + "endLine": 4, + "endTokenPos": 23, + "startFilePos": 90, + "startLine": 4, + "startTokenPos": 23 + }, + "name": "this", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 105, "endLine": 4, @@ -108,163 +97,163 @@ "startLine": 4, "startTokenPos": 26 }, - "name": "property", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 105, + "endLine": 4, + "endTokenPos": 26, + "startFilePos": 97, + "startLine": 4, + "startTokenPos": 26 + }, + "name": "property", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 106, - "endLine": 4, - "endTokenPos": 27, - "startFilePos": 74, - "startLine": 4, - "startTokenPos": 21 - }, - "name": { + ], "attributes": { - "endFilePos": 88, + "endFilePos": 106, "endLine": 4, - "endTokenPos": 21, + "endTokenPos": 27, "startFilePos": 74, "startLine": 4, "startTokenPos": 21 }, - "nodeType": "Name", - "parts": [ - "property_exists" - ] - }, - "nodeType": "Expr_FuncCall" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 146, - "endLine": 5, - "endTokenPos": 37, - "startFilePos": 123, - "startLine": 5, - "startTokenPos": 32 + "name": { + "attributes": { + "endFilePos": 88, + "endLine": 4, + "endTokenPos": 21, + "startFilePos": 74, + "startLine": 4, + "startTokenPos": 21 + }, + "nodeType": "Name", + "parts": [ + "property_exists" + ] }, - "expr": { + "nodeType": "Expr_FuncCall" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { - "endFilePos": 145, + "endFilePos": 146, "endLine": 5, - "endTokenPos": 36, - "startFilePos": 130, + "endTokenPos": 37, + "startFilePos": 123, "startLine": 5, - "startTokenPos": 34 + "startTokenPos": 32 }, - "name": { + "expr": { "attributes": { "endFilePos": 145, "endLine": 5, "endTokenPos": 36, - "startFilePos": 137, - "startLine": 5, - "startTokenPos": 36 - }, - "name": "property", - "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_PropertyFetch", - "var": { - "attributes": { - "endFilePos": 134, - "endLine": 5, - "endTokenPos": 34, "startFilePos": 130, "startLine": 5, "startTokenPos": 34 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - "nodeType": "Stmt_Return" - } - ] - } - ], - "type": 1 - }, - { - "attributes": { - "endFilePos": 337, - "endLine": 15, - "endTokenPos": 87, - "startFilePos": 169, - "startLine": 9, - "startTokenPos": 43 + "name": { + "attributes": { + "endFilePos": 145, + "endLine": 5, + "endTokenPos": 36, + "startFilePos": 137, + "startLine": 5, + "startTokenPos": 36 + }, + "name": "property", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 134, + "endLine": 5, + "endTokenPos": 34, + "startFilePos": 130, + "startLine": 5, + "startTokenPos": 34 + }, + "name": "this", + "nodeType": "Expr_Variable" + } + }, + "nodeType": "Stmt_Return" + } + ] + } + ], + "type": 1 }, - "byRef": false, - "flags": 1, - "name": "__set", - "nodeType": "Stmt_ClassMethod", - "params": [ - { - "attributes": { - "endFilePos": 199, - "endLine": 9, - "endTokenPos": 49, - "startFilePos": 191, - "startLine": 9, - "startTokenPos": 49 - }, - "byRef": false, - "default": null, - "name": "property", - "nodeType": "Param", - "type": null, - "variadic": false + { + "attributes": { + "endFilePos": 337, + "endLine": 15, + "endTokenPos": 87, + "startFilePos": 169, + "startLine": 9, + "startTokenPos": 43 }, - { - "attributes": { - "endFilePos": 207, - "endLine": 9, - "endTokenPos": 52, - "startFilePos": 202, - "startLine": 9, - "startTokenPos": 52 - }, - "byRef": false, - "default": null, - "name": "value", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 308, - "endLine": 12, - "endTokenPos": 80, - "startFilePos": 220, - "startLine": 10, - "startTokenPos": 57 + "byRef": false, + "flags": 1, + "name": "__set", + "nodeType": "Stmt_ClassMethod", + "params": [ + { + "attributes": { + "endFilePos": 199, + "endLine": 9, + "endTokenPos": 49, + "startFilePos": 191, + "startLine": 9, + "startTokenPos": 49 + }, + "byRef": false, + "default": null, + "name": "property", + "nodeType": "Param", + "type": null, + "variadic": false }, - "cond": { - "args": [ - { - "attributes": { - "endFilePos": 244, - "endLine": 10, - "endTokenPos": 62, - "startFilePos": 240, - "startLine": 10, - "startTokenPos": 62 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { + "attributes": { + "endFilePos": 207, + "endLine": 9, + "endTokenPos": 52, + "startFilePos": 202, + "startLine": 9, + "startTokenPos": 52 + }, + "byRef": false, + "default": null, + "name": "value", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [ + { + "attributes": { + "endFilePos": 308, + "endLine": 12, + "endTokenPos": 80, + "startFilePos": 220, + "startLine": 10, + "startTokenPos": 57 + }, + "cond": { + "args": [ + { "attributes": { "endFilePos": 244, "endLine": 10, @@ -273,23 +262,23 @@ "startLine": 10, "startTokenPos": 62 }, - "name": "this", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 255, - "endLine": 10, - "endTokenPos": 65, - "startFilePos": 247, - "startLine": 10, - "startTokenPos": 65 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 244, + "endLine": 10, + "endTokenPos": 62, + "startFilePos": 240, + "startLine": 10, + "startTokenPos": 62 + }, + "name": "this", + "nodeType": "Expr_Variable" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 255, "endLine": 10, @@ -298,127 +287,141 @@ "startLine": 10, "startTokenPos": 65 }, - "name": "property", - "nodeType": "Expr_Variable" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 255, + "endLine": 10, + "endTokenPos": 65, + "startFilePos": 247, + "startLine": 10, + "startTokenPos": 65 + }, + "name": "property", + "nodeType": "Expr_Variable" + } } - } - ], - "attributes": { - "endFilePos": 256, - "endLine": 10, - "endTokenPos": 66, - "startFilePos": 224, - "startLine": 10, - "startTokenPos": 60 - }, - "name": { + ], "attributes": { - "endFilePos": 238, + "endFilePos": 256, "endLine": 10, - "endTokenPos": 60, + "endTokenPos": 66, "startFilePos": 224, "startLine": 10, "startTokenPos": 60 }, - "nodeType": "Name", - "parts": [ - "property_exists" - ] - }, - "nodeType": "Expr_FuncCall" - }, - "else": null, - "elseifs": [], - "nodeType": "Stmt_If", - "stmts": [ - { - "attributes": { - "endFilePos": 297, - "endLine": 11, - "endTokenPos": 77, - "startFilePos": 273, - "startLine": 11, - "startTokenPos": 71 - }, - "expr": { + "name": { "attributes": { - "endFilePos": 297, - "endLine": 11, - "endTokenPos": 77, - "startFilePos": 292, - "startLine": 11, - "startTokenPos": 77 + "endFilePos": 238, + "endLine": 10, + "endTokenPos": 60, + "startFilePos": 224, + "startLine": 10, + "startTokenPos": 60 }, - "name": "value", - "nodeType": "Expr_Variable" + "nodeType": "Name", + "parts": [ + "property_exists" + ] }, - "nodeType": "Expr_Assign", - "var": { + "nodeType": "Expr_FuncCall" + }, + "else": null, + "elseifs": [], + "nodeType": "Stmt_If", + "stmts": [ + { "attributes": { - "endFilePos": 288, + "endFilePos": 297, "endLine": 11, - "endTokenPos": 73, + "endTokenPos": 77, "startFilePos": 273, "startLine": 11, "startTokenPos": 71 }, - "name": { + "expr": { "attributes": { - "endFilePos": 288, + "endFilePos": 297, "endLine": 11, - "endTokenPos": 73, - "startFilePos": 280, + "endTokenPos": 77, + "startFilePos": 292, "startLine": 11, - "startTokenPos": 73 + "startTokenPos": 77 }, - "name": "property", + "name": "value", "nodeType": "Expr_Variable" }, - "nodeType": "Expr_PropertyFetch", + "nodeType": "Expr_Assign", "var": { "attributes": { - "endFilePos": 277, + "endFilePos": 288, "endLine": 11, - "endTokenPos": 71, + "endTokenPos": 73, "startFilePos": 273, "startLine": 11, "startTokenPos": 71 }, - "name": "this", - "nodeType": "Expr_Variable" + "name": { + "attributes": { + "endFilePos": 288, + "endLine": 11, + "endTokenPos": 73, + "startFilePos": 280, + "startLine": 11, + "startTokenPos": 73 + }, + "name": "property", + "nodeType": "Expr_Variable" + }, + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 277, + "endLine": 11, + "endTokenPos": 71, + "startFilePos": 273, + "startLine": 11, + "startTokenPos": 71 + }, + "name": "this", + "nodeType": "Expr_Variable" + } } } - } - ] - }, - { - "attributes": { - "endFilePos": 331, - "endLine": 14, - "endTokenPos": 85, - "startFilePos": 319, - "startLine": 14, - "startTokenPos": 82 + ] }, - "expr": { + { "attributes": { - "endFilePos": 330, + "endFilePos": 331, "endLine": 14, - "endTokenPos": 84, - "startFilePos": 326, + "endTokenPos": 85, + "startFilePos": 319, "startLine": 14, - "startTokenPos": 84 + "startTokenPos": 82 }, - "name": "this", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_Return" - } - ], - "type": 1 - } - ], - "type": 0 - } - ] + "expr": { + "attributes": { + "endFilePos": 330, + "endLine": 14, + "endTokenPos": 84, + "startFilePos": 326, + "startLine": 14, + "startTokenPos": 84 + }, + "name": "this", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_Return" + } + ], + "type": 1 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_accessors.php.uast b/fixtures/u2_class_accessors.php.uast index e0a91cd..96abe44 100644 --- a/fixtures/u2_class_accessors.php.uast +++ b/fixtures/u2_class_accessors.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "__get" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -44,9 +49,15 @@ File { . . . . . . type: 1 . . . . . } . . . . . Children: { -. . . . . . 0: Param { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "__get" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Param { . . . . . . . Roles: Argument -. . . . . . . TOKEN "property" . . . . . . . StartPosition: { . . . . . . . . Offset: 49 . . . . . . . . Line: 3 @@ -62,9 +73,18 @@ File { . . . . . . . . internalRole: params . . . . . . . . variadic: false . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "property" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } -. . . . . . 1: Stmt_If { -. . . . . . . Roles: Expression,Body,Statement,If +. . . . . . 2: Stmt_If { +. . . . . . . Roles: If,Statement . . . . . . . StartPosition: { . . . . . . . . Offset: 70 . . . . . . . . Line: 4 @@ -80,7 +100,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . Roles: Condition,Expression,Call +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 74 . . . . . . . . . . Line: 4 @@ -96,7 +116,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "property_exists" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 74 @@ -132,7 +152,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "this" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 90 . . . . . . . . . . . . . . Line: 4 @@ -146,6 +165,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } @@ -169,7 +197,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "property" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 97 . . . . . . . . . . . . . . Line: 4 @@ -183,13 +210,22 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "property" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Stmt_Return { -. . . . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . . . . Roles: Return,Statement . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 123 . . . . . . . . . . Line: 5 @@ -205,7 +241,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_PropertyFetch { -. . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value +. . . . . . . . . . . Roles: Entry,Expression,Identifier,Map,Value . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 130 . . . . . . . . . . . . Line: 5 @@ -222,7 +258,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "this" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 130 . . . . . . . . . . . . . . Line: 5 @@ -236,10 +271,18 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "property" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 137 . . . . . . . . . . . . . . Line: 5 @@ -253,6 +296,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: name . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "property" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } @@ -262,9 +314,8 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "__set" +. . . . 2: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 169 . . . . . . Line: 9 @@ -282,9 +333,15 @@ File { . . . . . . type: 1 . . . . . } . . . . . Children: { -. . . . . . 0: Param { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "__set" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Param { . . . . . . . Roles: Argument -. . . . . . . TOKEN "property" . . . . . . . StartPosition: { . . . . . . . . Offset: 191 . . . . . . . . Line: 9 @@ -300,10 +357,18 @@ File { . . . . . . . . internalRole: params . . . . . . . . variadic: false . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "property" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } -. . . . . . 1: Param { +. . . . . . 2: Param { . . . . . . . Roles: Argument -. . . . . . . TOKEN "value" . . . . . . . StartPosition: { . . . . . . . . Offset: 202 . . . . . . . . Line: 9 @@ -319,9 +384,18 @@ File { . . . . . . . . internalRole: params . . . . . . . . variadic: false . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "value" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } -. . . . . . 2: Stmt_If { -. . . . . . . Roles: Expression,Body,Statement,If +. . . . . . 3: Stmt_If { +. . . . . . . Roles: If,Statement . . . . . . . StartPosition: { . . . . . . . . Offset: 220 . . . . . . . . Line: 10 @@ -337,7 +411,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_FuncCall { -. . . . . . . . . Roles: Condition,Expression,Call +. . . . . . . . . Roles: Call,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 224 . . . . . . . . . . Line: 10 @@ -353,7 +427,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Name { -. . . . . . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . . . . . Roles: Expression,Identifier . . . . . . . . . . . TOKEN "property_exists" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 224 @@ -389,7 +463,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "this" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 240 . . . . . . . . . . . . . . Line: 10 @@ -403,6 +476,15 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } @@ -426,7 +508,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "property" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 247 . . . . . . . . . . . . . . Line: 10 @@ -440,13 +521,22 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: value . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "property" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Expr_Assign { -. . . . . . . . . Roles: Expression,Body,Assignment +. . . . . . . . . Roles: Assignment,Expression . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 273 . . . . . . . . . . Line: 11 @@ -462,7 +552,7 @@ File { . . . . . . . . . } . . . . . . . . . Children: { . . . . . . . . . . 0: Expr_PropertyFetch { -. . . . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Left +. . . . . . . . . . . Roles: Entry,Expression,Identifier,Left,Map,Value . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 273 . . . . . . . . . . . . Line: 11 @@ -479,7 +569,6 @@ File { . . . . . . . . . . . Children: { . . . . . . . . . . . . 0: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "this" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 273 . . . . . . . . . . . . . . Line: 11 @@ -493,10 +582,18 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: var . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . . . TOKEN "property" . . . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . . . Offset: 280 . . . . . . . . . . . . . . Line: 11 @@ -510,12 +607,20 @@ File { . . . . . . . . . . . . . Properties: { . . . . . . . . . . . . . . internalRole: name . . . . . . . . . . . . . } +. . . . . . . . . . . . . Children: { +. . . . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . . . TOKEN "property" +. . . . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . . . } +. . . . . . . . . . . . . . } +. . . . . . . . . . . . . } . . . . . . . . . . . . } . . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . . 1: Expr_Variable { -. . . . . . . . . . . Roles: Identifier,Variable,Right -. . . . . . . . . . . TOKEN "value" +. . . . . . . . . . . Roles: Identifier,Right,Variable . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 292 . . . . . . . . . . . . Line: 11 @@ -529,13 +634,22 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: expr . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "value" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } -. . . . . . 3: Stmt_Return { -. . . . . . . Roles: Expression,Body,Statement,Return +. . . . . . 4: Stmt_Return { +. . . . . . . Roles: Return,Statement . . . . . . . StartPosition: { . . . . . . . . Offset: 319 . . . . . . . . Line: 14 @@ -552,7 +666,6 @@ File { . . . . . . . Children: { . . . . . . . . 0: Expr_Variable { . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . TOKEN "this" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 326 . . . . . . . . . . Line: 14 @@ -566,6 +679,15 @@ File { . . . . . . . . . Properties: { . . . . . . . . . . internalRole: expr . . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } . . . . . . . . } . . . . . . . } . . . . . . } diff --git a/fixtures/u2_class_anonymous.php.native b/fixtures/u2_class_anonymous.php.native index 7a6ae2a..02506ae 100644 --- a/fixtures/u2_class_anonymous.php.native +++ b/fixtures/u2_class_anonymous.php.native @@ -2,35 +2,38 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [], - "attributes": { - "endFilePos": 17, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "class": { + "ast": { + "children": [ + { + "args": [], "attributes": { "endFilePos": 17, "endLine": 2, "endTokenPos": 6, - "startFilePos": 10, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "extends": null, - "flags": 0, - "implements": [], - "name": null, - "nodeType": "Stmt_Class", - "stmts": [], - "type": 0 - }, - "nodeType": "Expr_New" - } - ] + "class": { + "attributes": { + "endFilePos": 17, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 10, + "startLine": 2, + "startTokenPos": 3 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": null, + "nodeType": "Stmt_Class", + "stmts": [], + "type": 0 + }, + "nodeType": "Expr_New" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_anonymous.php.uast b/fixtures/u2_class_anonymous.php.uast index 11778e5..80996ba 100644 --- a/fixtures/u2_class_anonymous.php.uast +++ b/fixtures/u2_class_anonymous.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_New { -. . . Roles: Expression,Initialization,Call -. . . TOKEN "new" +. . . Roles: Call,Expression,Initialization . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Stmt_Class { -. . . . . Roles: Statement,Declaration,Type +. . . . . Roles: Declaration,Statement,Type . . . . . StartPosition: { . . . . . . Offset: 10 . . . . . . Line: 2 diff --git a/fixtures/u2_class_constructor.php.native b/fixtures/u2_class_constructor.php.native index 2be7051..ac48400 100644 --- a/fixtures/u2_class_constructor.php.native +++ b/fixtures/u2_class_constructor.php.native @@ -2,42 +2,45 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 60, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 58, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 1, - "name": "__construct", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 - } - ], - "type": 0 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 60, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 58, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 1, + "name": "__construct", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_constructor.php.uast b/fixtures/u2_class_constructor.php.uast index 9b94e4d..d4c769a 100644 --- a/fixtures/u2_class_constructor.php.uast +++ b/fixtures/u2_class_constructor.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "__construct" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,6 +48,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "__construct" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_class_destructor.php.native b/fixtures/u2_class_destructor.php.native index 482170a..fb0fda7 100644 --- a/fixtures/u2_class_destructor.php.native +++ b/fixtures/u2_class_destructor.php.native @@ -2,42 +2,45 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 4, - "endTokenPos": 16, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 50, - "endLine": 3, - "endTokenPos": 14, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 0, - "name": "__destruct", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 0 - } - ], - "type": 0 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 52, + "endLine": 4, + "endTokenPos": 16, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 50, + "endLine": 3, + "endTokenPos": 14, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 0, + "name": "__destruct", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 0 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_destructor.php.uast b/fixtures/u2_class_destructor.php.uast index d2e8f79..cab57f7 100644 --- a/fixtures/u2_class_destructor.php.uast +++ b/fixtures/u2_class_destructor.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "__destruct" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,6 +48,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "__destruct" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_class_empty.php.native b/fixtures/u2_class_empty.php.native index e0322d0..0f0ec91 100644 --- a/fixtures/u2_class_empty.php.native +++ b/fixtures/u2_class_empty.php.native @@ -2,23 +2,26 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 22, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "tetscls1", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 0 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 22, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "tetscls1", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_empty.php.uast b/fixtures/u2_class_empty.php.uast index a2ff4cb..116b169 100644 --- a/fixtures/u2_class_empty.php.uast +++ b/fixtures/u2_class_empty.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "tetscls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,6 +22,15 @@ File { . . . . internalRole: children . . . . type: 0 . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "tetscls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/u2_class_field.php.native b/fixtures/u2_class_field.php.native index b8be00b..af0a349 100644 --- a/fixtures/u2_class_field.php.native +++ b/fixtures/u2_class_field.php.native @@ -2,91 +2,94 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 75, - "endLine": 5, - "endTokenPos": 23, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 3, - "endTokenPos": 10, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "flags": 1, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 34, - "startLine": 3, - "startTokenPos": 9 - }, - "default": null, - "name": "a", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 75, + "endLine": 5, + "endTokenPos": 23, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 73, - "endLine": 4, - "endTokenPos": 21, - "startFilePos": 42, - "startLine": 4, - "startTokenPos": 12 + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 36, + "endLine": 3, + "endTokenPos": 10, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "flags": 1, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 35, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 34, + "startLine": 3, + "startTokenPos": 9 + }, + "default": null, + "name": "a", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 1 }, - "consts": [ - { - "attributes": { - "endFilePos": 72, - "endLine": 4, - "endTokenPos": 20, - "startFilePos": 55, - "startLine": 4, - "startTokenPos": 16 - }, - "name": "CLASS_CONSTANT", - "nodeType": "Const", - "value": { + { + "attributes": { + "endFilePos": 73, + "endLine": 4, + "endTokenPos": 21, + "startFilePos": 42, + "startLine": 4, + "startTokenPos": 12 + }, + "consts": [ + { "attributes": { "endFilePos": 72, "endLine": 4, "endTokenPos": 20, - "kind": 10, - "startFilePos": 72, + "startFilePos": 55, "startLine": 4, - "startTokenPos": 20 + "startTokenPos": 16 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "name": "CLASS_CONSTANT", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 72, + "endLine": 4, + "endTokenPos": 20, + "kind": 10, + "startFilePos": 72, + "startLine": 4, + "startTokenPos": 20 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + } } - } - ], - "flags": 1, - "nodeType": "Stmt_ClassConst" - } - ], - "type": 0 - } - ] + ], + "flags": 1, + "nodeType": "Stmt_ClassConst" + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_field.php.uast b/fixtures/u2_class_field.php.uast index ca6159f..2b4e885 100644 --- a/fixtures/u2_class_field.php.uast +++ b/fixtures/u2_class_field.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,8 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,8 +49,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "a" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 34 . . . . . . . . Line: 3 @@ -58,11 +63,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 2: Stmt_ClassConst { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 42 . . . . . . Line: 4 @@ -79,8 +93,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "CLASS_CONSTANT" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 55 . . . . . . . . Line: 4 @@ -95,7 +108,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "CLASS_CONSTANT" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { . . . . . . . . . Roles: Expression,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { diff --git a/fixtures/u2_class_field_binding.php.native b/fixtures/u2_class_field_binding.php.native index 474bb22..3023af1 100644 --- a/fixtures/u2_class_field_binding.php.native +++ b/fixtures/u2_class_field_binding.php.native @@ -2,52 +2,55 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 38, - "endLine": 4, - "endTokenPos": 12, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 3, - "endTokenPos": 10, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "flags": 8, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 34, - "startLine": 3, - "startTokenPos": 9 - }, - "default": null, - "name": "a", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 8 - } - ], - "type": 0 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 38, + "endLine": 4, + "endTokenPos": 12, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 36, + "endLine": 3, + "endTokenPos": 10, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "flags": 8, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 35, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 34, + "startLine": 3, + "startTokenPos": 9 + }, + "default": null, + "name": "a", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 8 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_field_binding.php.uast b/fixtures/u2_class_field_binding.php.uast index 9cdcc57..c04e14e 100644 --- a/fixtures/u2_class_field_binding.php.uast +++ b/fixtures/u2_class_field_binding.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,8 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,8 +49,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "a" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 34 . . . . . . . . Line: 3 @@ -58,6 +63,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/u2_class_field_qualifiers.php.native b/fixtures/u2_class_field_qualifiers.php.native index fbaa7fe..49a43ce 100644 --- a/fixtures/u2_class_field_qualifiers.php.native +++ b/fixtures/u2_class_field_qualifiers.php.native @@ -2,108 +2,111 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 72, - "endLine": 6, - "endTokenPos": 22, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls2", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 37, - "endLine": 3, - "endTokenPos": 10, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "flags": 4, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 36, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 35, - "startLine": 3, - "startTokenPos": 9 - }, - "default": null, - "name": "a", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 4 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 72, + "endLine": 6, + "endTokenPos": 22, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 55, - "endLine": 4, - "endTokenPos": 15, - "startFilePos": 43, - "startLine": 4, - "startTokenPos": 12 + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls2", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 37, + "endLine": 3, + "endTokenPos": 10, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "flags": 4, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 36, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 35, + "startLine": 3, + "startTokenPos": 9 + }, + "default": null, + "name": "a", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 4 }, - "flags": 2, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 54, - "endLine": 4, - "endTokenPos": 14, - "startFilePos": 53, - "startLine": 4, - "startTokenPos": 14 - }, - "default": null, - "name": "b", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 2 - }, - { - "attributes": { - "endFilePos": 70, - "endLine": 5, - "endTokenPos": 20, - "startFilePos": 61, - "startLine": 5, - "startTokenPos": 17 + { + "attributes": { + "endFilePos": 55, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 43, + "startLine": 4, + "startTokenPos": 12 + }, + "flags": 2, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 54, + "endLine": 4, + "endTokenPos": 14, + "startFilePos": 53, + "startLine": 4, + "startTokenPos": 14 + }, + "default": null, + "name": "b", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 2 }, - "flags": 1, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 69, - "endLine": 5, - "endTokenPos": 19, - "startFilePos": 68, - "startLine": 5, - "startTokenPos": 19 - }, - "default": null, - "name": "c", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 1 - } - ], - "type": 0 - } - ] + { + "attributes": { + "endFilePos": 70, + "endLine": 5, + "endTokenPos": 20, + "startFilePos": 61, + "startLine": 5, + "startTokenPos": 17 + }, + "flags": 1, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 69, + "endLine": 5, + "endTokenPos": 19, + "startFilePos": 68, + "startLine": 5, + "startTokenPos": 19 + }, + "default": null, + "name": "c", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 1 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_field_qualifiers.php.uast b/fixtures/u2_class_field_qualifiers.php.uast index 5e8667a..656964a 100644 --- a/fixtures/u2_class_field_qualifiers.php.uast +++ b/fixtures/u2_class_field_qualifiers.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls2" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,8 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls2" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,8 +49,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "a" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 35 . . . . . . . . Line: 3 @@ -58,11 +63,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 2: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 43 . . . . . . Line: 4 @@ -80,8 +94,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "b" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 53 . . . . . . . . Line: 4 @@ -95,11 +108,20 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } -. . . . 2: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 3: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 61 . . . . . . Line: 5 @@ -117,8 +139,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "c" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 68 . . . . . . . . Line: 5 @@ -132,6 +153,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "c" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/u2_class_field_static.php.native b/fixtures/u2_class_field_static.php.native index 1666c47..54cd0c4 100644 --- a/fixtures/u2_class_field_static.php.native +++ b/fixtures/u2_class_field_static.php.native @@ -2,64 +2,67 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 42, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 40, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 20, - "startLine": 3, - "startTokenPos": 7 - }, - "flags": 9, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 39, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 34, - "startLine": 3, - "startTokenPos": 11 - }, - "default": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 42, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 40, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 20, + "startLine": 3, + "startTokenPos": 7 + }, + "flags": 9, + "nodeType": "Stmt_Property", + "props": [ + { "attributes": { "endFilePos": 39, "endLine": 3, "endTokenPos": 15, - "kind": 10, - "startFilePos": 39, + "startFilePos": 34, "startLine": 3, - "startTokenPos": 15 + "startTokenPos": 11 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "name": "a", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 9 - } - ], - "type": 0 - } - ] + "default": { + "attributes": { + "endFilePos": 39, + "endLine": 3, + "endTokenPos": 15, + "kind": 10, + "startFilePos": 39, + "startLine": 3, + "startTokenPos": 15 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "name": "a", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 9 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_field_static.php.uast b/fixtures/u2_class_field_static.php.uast index a95b6c7..c055f5c 100644 --- a/fixtures/u2_class_field_static.php.uast +++ b/fixtures/u2_class_field_static.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,8 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Body,Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 3 @@ -43,8 +49,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "a" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 34 . . . . . . . . Line: 3 @@ -59,8 +64,15 @@ File { . . . . . . . . internalRole: props . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_LNumber { -. . . . . . . . . Roles: Expression,Literal,Number +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { +. . . . . . . . . Roles: Default,Expression,Literal,Number . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 39 diff --git a/fixtures/u2_class_implement.php.native b/fixtures/u2_class_implement.php.native index 983810e..855956d 100644 --- a/fixtures/u2_class_implement.php.native +++ b/fixtures/u2_class_implement.php.native @@ -2,84 +2,87 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 47, - "endLine": 2, - "endTokenPos": 10, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [ - { - "attributes": { - "endFilePos": 44, - "endLine": 2, - "endTokenPos": 7, - "startFilePos": 32, - "startLine": 2, - "startTokenPos": 7 - }, - "nodeType": "Name", - "parts": [ - "testinterace1" - ] - } - ], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 0 - }, - { - "attributes": { - "endFilePos": 106, - "endLine": 3, - "endTokenPos": 24, - "startFilePos": 49, - "startLine": 3, - "startTokenPos": 12 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 47, + "endLine": 2, + "endTokenPos": 10, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [ + { + "attributes": { + "endFilePos": 44, + "endLine": 2, + "endTokenPos": 7, + "startFilePos": 32, + "startLine": 2, + "startTokenPos": 7 + }, + "nodeType": "Name", + "parts": [ + "testinterace1" + ] + } + ], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 0 }, - "extends": null, - "flags": 0, - "implements": [ - { - "attributes": { - "endFilePos": 87, - "endLine": 3, - "endTokenPos": 18, - "startFilePos": 75, - "startLine": 3, - "startTokenPos": 18 - }, - "nodeType": "Name", - "parts": [ - "testinterace2" - ] + { + "attributes": { + "endFilePos": 106, + "endLine": 3, + "endTokenPos": 24, + "startFilePos": 49, + "startLine": 3, + "startTokenPos": 12 }, - { - "attributes": { - "endFilePos": 103, - "endLine": 3, - "endTokenPos": 21, - "startFilePos": 90, - "startLine": 3, - "startTokenPos": 21 + "extends": null, + "flags": 0, + "implements": [ + { + "attributes": { + "endFilePos": 87, + "endLine": 3, + "endTokenPos": 18, + "startFilePos": 75, + "startLine": 3, + "startTokenPos": 18 + }, + "nodeType": "Name", + "parts": [ + "testinterace2" + ] }, - "nodeType": "Name", - "parts": [ - "testinterface3" - ] - } - ], - "name": "testcls2", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 0 - } - ] + { + "attributes": { + "endFilePos": 103, + "endLine": 3, + "endTokenPos": 21, + "startFilePos": 90, + "startLine": 3, + "startTokenPos": 21 + }, + "nodeType": "Name", + "parts": [ + "testinterface3" + ] + } + ], + "name": "testcls2", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_implement.php.uast b/fixtures/u2_class_implement.php.uast index fe01dbe..6c32979 100644 --- a/fixtures/u2_class_implement.php.uast +++ b/fixtures/u2_class_implement.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -25,6 +24,13 @@ File { . . . } . . . Children: { . . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { . . . . . Roles: Expression,Identifier,Implements . . . . . TOKEN "testinterace1" . . . . . StartPosition: { @@ -44,8 +50,7 @@ File { . . . } . . } . . 1: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls2" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 49 . . . . Line: 3 @@ -63,6 +68,13 @@ File { . . . } . . . Children: { . . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls2" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { . . . . . Roles: Expression,Identifier,Implements . . . . . TOKEN "testinterace2" . . . . . StartPosition: { @@ -79,7 +91,7 @@ File { . . . . . . internalRole: implements . . . . . } . . . . } -. . . . 1: Name { +. . . . 2: Name { . . . . . Roles: Expression,Identifier,Implements . . . . . TOKEN "testinterface3" . . . . . StartPosition: { diff --git a/fixtures/u2_class_inherit.php.native b/fixtures/u2_class_inherit.php.native index b33aeba..67e1925 100644 --- a/fixtures/u2_class_inherit.php.native +++ b/fixtures/u2_class_inherit.php.native @@ -2,36 +2,39 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 39, - "endLine": 2, - "endTokenPos": 10, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 36, + "endFilePos": 39, "endLine": 2, - "endTokenPos": 7, - "startFilePos": 29, + "endTokenPos": 10, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 7 + "startTokenPos": 1 }, - "nodeType": "Name", - "parts": [ - "testcls2" - ] - }, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 0 - } - ] + "extends": { + "attributes": { + "endFilePos": 36, + "endLine": 2, + "endTokenPos": 7, + "startFilePos": 29, + "startLine": 2, + "startTokenPos": 7 + }, + "nodeType": "Name", + "parts": [ + "testcls2" + ] + }, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_inherit.php.uast b/fixtures/u2_class_inherit.php.uast index 5033f10..d7e19f9 100644 --- a/fixtures/u2_class_inherit.php.uast +++ b/fixtures/u2_class_inherit.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -25,7 +24,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Base +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Base,Expression,Identifier . . . . . TOKEN "testcls2" . . . . . StartPosition: { . . . . . . Offset: 29 diff --git a/fixtures/u2_class_method.php.native b/fixtures/u2_class_method.php.native index ebea64b..7bfdcc9 100644 --- a/fixtures/u2_class_method.php.native +++ b/fixtures/u2_class_method.php.native @@ -2,42 +2,45 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 50, - "endLine": 4, - "endTokenPos": 16, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testfnc1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 48, - "endLine": 3, - "endTokenPos": 14, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 0, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 0 - } - ], - "type": 0 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 50, + "endLine": 4, + "endTokenPos": 16, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testfnc1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 48, + "endLine": 3, + "endTokenPos": 14, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 0, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 0 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_method.php.uast b/fixtures/u2_class_method.php.uast index 025b68b..a6a5d09 100644 --- a/fixtures/u2_class_method.php.uast +++ b/fixtures/u2_class_method.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testfnc1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function +. . . . 0: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "testfnc1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,6 +48,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_class_method_binding.php.native b/fixtures/u2_class_method_binding.php.native index 5510350..957cb14 100644 --- a/fixtures/u2_class_method_binding.php.native +++ b/fixtures/u2_class_method_binding.php.native @@ -2,42 +2,45 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 49, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "A", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 47, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 20, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 8, - "name": "method1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 8 - } - ], - "type": 0 - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 49, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "A", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 47, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 20, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 8, + "name": "method1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 8 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_method_binding.php.uast b/fixtures/u2_class_method_binding.php.uast index 33b5f38..d29e880 100644 --- a/fixtures/u2_class_method_binding.php.uast +++ b/fixtures/u2_class_method_binding.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "A" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "method1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 20 . . . . . . Line: 3 @@ -43,6 +48,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 8 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "method1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_class_method_qualifiers.php.native b/fixtures/u2_class_method_qualifiers.php.native index 74feffa..18ec558 100644 --- a/fixtures/u2_class_method_qualifiers.php.native +++ b/fixtures/u2_class_method_qualifiers.php.native @@ -2,132 +2,135 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 162, - "endLine": 7, - "endTokenPos": 51, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 54, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 32, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 32 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 162, + "endLine": 7, + "endTokenPos": 51, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 89, - "endLine": 4, - "endTokenPos": 27, - "startFilePos": 60, - "startLine": 4, - "startTokenPos": 18 + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 54, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 32, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 32 }, - "byRef": false, - "flags": 4, - "name": "testfnc2", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 4 - }, - { - "attributes": { - "endFilePos": 126, - "endLine": 5, - "endTokenPos": 38, - "startFilePos": 95, - "startLine": 5, - "startTokenPos": 29 + { + "attributes": { + "endFilePos": 89, + "endLine": 4, + "endTokenPos": 27, + "startFilePos": 60, + "startLine": 4, + "startTokenPos": 18 + }, + "byRef": false, + "flags": 4, + "name": "testfnc2", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 4 }, - "byRef": false, - "flags": 2, - "name": "testfnc3", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 2 - }, - { - "attributes": { - "endFilePos": 160, - "endLine": 6, - "endTokenPos": 49, - "startFilePos": 132, - "startLine": 6, - "startTokenPos": 40 + { + "attributes": { + "endFilePos": 126, + "endLine": 5, + "endTokenPos": 38, + "startFilePos": 95, + "startLine": 5, + "startTokenPos": 29 + }, + "byRef": false, + "flags": 2, + "name": "testfnc3", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 2 }, - "byRef": false, - "flags": 1, - "name": "testfnc4", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 - } - ], - "type": 0 - }, - { - "attributes": { - "endFilePos": 225, - "endLine": 11, - "endTokenPos": 70, - "startFilePos": 165, - "startLine": 9, - "startTokenPos": 53 + { + "attributes": { + "endFilePos": 160, + "endLine": 6, + "endTokenPos": 49, + "startFilePos": 132, + "startLine": 6, + "startTokenPos": 40 + }, + "byRef": false, + "flags": 1, + "name": "testfnc4", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 + } + ], + "type": 0 }, - "extends": null, - "flags": 16, - "implements": [], - "name": "testcls2", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 223, - "endLine": 10, - "endTokenPos": 68, - "startFilePos": 195, - "startLine": 10, - "startTokenPos": 61 - }, - "byRef": false, - "flags": 16, - "name": "testfnc5", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": null, - "type": 16 - } - ], - "type": 16 - } - ] + { + "attributes": { + "endFilePos": 225, + "endLine": 11, + "endTokenPos": 70, + "startFilePos": 165, + "startLine": 9, + "startTokenPos": 53 + }, + "extends": null, + "flags": 16, + "implements": [], + "name": "testcls2", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 223, + "endLine": 10, + "endTokenPos": 68, + "startFilePos": 195, + "startLine": 10, + "startTokenPos": 61 + }, + "byRef": false, + "flags": 16, + "name": "testfnc5", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": null, + "type": 16 + } + ], + "type": 16 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_method_qualifiers.php.uast b/fixtures/u2_class_method_qualifiers.php.uast index c46e645..39d532d 100644 --- a/fixtures/u2_class_method_qualifiers.php.uast +++ b/fixtures/u2_class_method_qualifiers.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -43,10 +48,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 32 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc2" +. . . . 2: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 60 . . . . . . Line: 4 @@ -63,10 +76,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 4 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc2" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 2: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc3" +. . . . 3: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 95 . . . . . . Line: 5 @@ -83,10 +104,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 2 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc3" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 3: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc4" +. . . . 4: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 132 . . . . . . Line: 6 @@ -103,12 +132,20 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc4" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls2" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 165 . . . . Line: 9 @@ -125,9 +162,15 @@ File { . . . . type: 16 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc5" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls2" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 195 . . . . . . Line: 10 @@ -144,6 +187,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 16 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc5" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_class_qualifiers.php.native b/fixtures/u2_class_qualifiers.php.native index 37a0998..f351322 100644 --- a/fixtures/u2_class_qualifiers.php.native +++ b/fixtures/u2_class_qualifiers.php.native @@ -2,40 +2,43 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 31, - "endLine": 2, - "endTokenPos": 8, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 31, + "endLine": 2, + "endTokenPos": 8, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 16, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 16 }, - "extends": null, - "flags": 16, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 16 - }, - { - "attributes": { - "endFilePos": 55, - "endLine": 3, - "endTokenPos": 17, - "startFilePos": 33, - "startLine": 3, - "startTokenPos": 10 - }, - "extends": null, - "flags": 32, - "implements": [], - "name": "testcls2", - "nodeType": "Stmt_Class", - "stmts": [], - "type": 32 - } - ] + { + "attributes": { + "endFilePos": 55, + "endLine": 3, + "endTokenPos": 17, + "startFilePos": 33, + "startLine": 3, + "startTokenPos": 10 + }, + "extends": null, + "flags": 32, + "implements": [], + "name": "testcls2", + "nodeType": "Stmt_Class", + "stmts": [], + "type": 32 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_qualifiers.php.uast b/fixtures/u2_class_qualifiers.php.uast index 86bc68b..9c2b69c 100644 --- a/fixtures/u2_class_qualifiers.php.uast +++ b/fixtures/u2_class_qualifiers.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,10 +22,18 @@ File { . . . . internalRole: children . . . . type: 16 . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 1: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls2" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 33 . . . . Line: 3 @@ -42,6 +49,15 @@ File { . . . . internalRole: children . . . . type: 32 . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls2" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/u2_class_specific_trait.php.native b/fixtures/u2_class_specific_trait.php.native index 1900873..0e9ebbc 100644 --- a/fixtures/u2_class_specific_trait.php.native +++ b/fixtures/u2_class_specific_trait.php.native @@ -2,65 +2,68 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 24, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [] }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 58, - "endLine": 3, - "endTokenPos": 19, - "startFilePos": 26, - "startLine": 3, - "startTokenPos": 8 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "adaptations": [], - "attributes": { - "endFilePos": 56, - "endLine": 3, - "endTokenPos": 17, - "startFilePos": 43, - "startLine": 3, - "startTokenPos": 14 - }, - "nodeType": "Stmt_TraitUse", - "traits": [ - { - "attributes": { - "endFilePos": 55, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 47, - "startLine": 3, - "startTokenPos": 16 - }, - "nodeType": "Name", - "parts": [ - "testtrai1" - ] - } - ] - } - ], - "type": 0 - } - ] + { + "attributes": { + "endFilePos": 58, + "endLine": 3, + "endTokenPos": 19, + "startFilePos": 26, + "startLine": 3, + "startTokenPos": 8 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "adaptations": [], + "attributes": { + "endFilePos": 56, + "endLine": 3, + "endTokenPos": 17, + "startFilePos": 43, + "startLine": 3, + "startTokenPos": 14 + }, + "nodeType": "Stmt_TraitUse", + "traits": [ + { + "attributes": { + "endFilePos": 55, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 47, + "startLine": 3, + "startTokenPos": 16 + }, + "nodeType": "Name", + "parts": [ + "testtrai1" + ] + } + ] + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_specific_trait.php.uast b/fixtures/u2_class_specific_trait.php.uast index ed1bc42..b37f407 100644 --- a/fixtures/u2_class_specific_trait.php.uast +++ b/fixtures/u2_class_specific_trait.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -21,10 +20,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 1: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 26 . . . . Line: 3 @@ -41,8 +48,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_TraitUse { -. . . . . Roles: Expression,Body,Base +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_TraitUse { +. . . . . Roles: Base,Body,Type . . . . . StartPosition: { . . . . . . Offset: 43 . . . . . . Line: 3 diff --git a/fixtures/u2_class_specific_trait_rename.php.native b/fixtures/u2_class_specific_trait_rename.php.native index 2246555..6a717ac 100644 --- a/fixtures/u2_class_specific_trait_rename.php.native +++ b/fixtures/u2_class_specific_trait_rename.php.native @@ -2,100 +2,103 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 59, - "endLine": 4, - "endTokenPos": 18, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 59, + "endLine": 4, + "endTokenPos": 18, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [ + { + "attributes": { + "endFilePos": 57, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 29, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 1, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 + } + ] }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [ - { - "attributes": { - "endFilePos": 57, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 29, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 1, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 - } - ] - }, - { - "attributes": { - "endFilePos": 133, - "endLine": 7, - "endTokenPos": 43, - "startFilePos": 61, - "startLine": 5, - "startTokenPos": 20 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "adaptations": [ - { - "attributes": { - "endFilePos": 129, - "endLine": 6, - "endTokenPos": 39, - "startFilePos": 99, - "startLine": 6, - "startTokenPos": 32 - }, - "method": "testfnc1", - "newModifier": 2, - "newName": "testfnc2", - "nodeType": "Stmt_TraitUseAdaptation_Alias", - "trait": null - } - ], - "attributes": { - "endFilePos": 131, - "endLine": 6, - "endTokenPos": 41, - "startFilePos": 82, - "startLine": 6, - "startTokenPos": 26 - }, - "nodeType": "Stmt_TraitUse", - "traits": [ - { - "attributes": { - "endFilePos": 95, - "endLine": 6, - "endTokenPos": 28, - "startFilePos": 86, - "startLine": 6, - "startTokenPos": 28 - }, - "nodeType": "Name", - "parts": [ - "testtrait1" - ] - } - ] - } - ], - "type": 0 - } - ] + { + "attributes": { + "endFilePos": 133, + "endLine": 7, + "endTokenPos": 43, + "startFilePos": 61, + "startLine": 5, + "startTokenPos": 20 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "adaptations": [ + { + "attributes": { + "endFilePos": 129, + "endLine": 6, + "endTokenPos": 39, + "startFilePos": 99, + "startLine": 6, + "startTokenPos": 32 + }, + "method": "testfnc1", + "newModifier": 2, + "newName": "testfnc2", + "nodeType": "Stmt_TraitUseAdaptation_Alias", + "trait": null + } + ], + "attributes": { + "endFilePos": 131, + "endLine": 6, + "endTokenPos": 41, + "startFilePos": 82, + "startLine": 6, + "startTokenPos": 26 + }, + "nodeType": "Stmt_TraitUse", + "traits": [ + { + "attributes": { + "endFilePos": 95, + "endLine": 6, + "endTokenPos": 28, + "startFilePos": 86, + "startLine": 6, + "startTokenPos": 28 + }, + "nodeType": "Name", + "parts": [ + "testtrait1" + ] + } + ] + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_specific_trait_rename.php.uast b/fixtures/u2_class_specific_trait_rename.php.uast index c0ebcd6..6b84182 100644 --- a/fixtures/u2_class_specific_trait_rename.php.uast +++ b/fixtures/u2_class_specific_trait_rename.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 3 @@ -41,12 +46,20 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 61 . . . . Line: 5 @@ -63,8 +76,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_TraitUse { -. . . . . Roles: Expression,Body,Base +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_TraitUse { +. . . . . Roles: Base,Body,Type . . . . . StartPosition: { . . . . . . Offset: 82 . . . . . . Line: 6 @@ -97,7 +117,7 @@ File { . . . . . . . } . . . . . . } . . . . . . 1: Stmt_TraitUseAdaptation_Alias { -. . . . . . . Roles: Statement,Alias +. . . . . . . Roles: Alias,Statement . . . . . . . TOKEN "testfnc2" . . . . . . . StartPosition: { . . . . . . . . Offset: 99 diff --git a/fixtures/u2_class_this.php.native b/fixtures/u2_class_this.php.native index 9066100..2069db3 100644 --- a/fixtures/u2_class_this.php.native +++ b/fixtures/u2_class_this.php.native @@ -2,91 +2,94 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 82, - "endLine": 6, - "endTokenPos": 26, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": null, - "flags": 0, - "implements": [], - "name": "testcls1", - "nodeType": "Stmt_Class", - "stmts": [ - { - "attributes": { - "endFilePos": 80, - "endLine": 5, - "endTokenPos": 24, - "startFilePos": 27, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 0, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 73, - "endLine": 4, - "endTokenPos": 21, - "startFilePos": 57, - "startLine": 4, - "startTokenPos": 15 - }, - "expr": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 82, + "endLine": 6, + "endTokenPos": 26, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": null, + "flags": 0, + "implements": [], + "name": "testcls1", + "nodeType": "Stmt_Class", + "stmts": [ + { + "attributes": { + "endFilePos": 80, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 27, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 0, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [ + { "attributes": { "endFilePos": 73, "endLine": 4, "endTokenPos": 21, - "kind": 10, - "startFilePos": 73, - "startLine": 4, - "startTokenPos": 21 - }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "nodeType": "Expr_Assign", - "var": { - "attributes": { - "endFilePos": 69, - "endLine": 4, - "endTokenPos": 17, "startFilePos": 57, "startLine": 4, "startTokenPos": 15 }, - "name": "member", - "nodeType": "Expr_PropertyFetch", + "expr": { + "attributes": { + "endFilePos": 73, + "endLine": 4, + "endTokenPos": 21, + "kind": 10, + "startFilePos": 73, + "startLine": 4, + "startTokenPos": 21 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Assign", "var": { "attributes": { - "endFilePos": 61, + "endFilePos": 69, "endLine": 4, - "endTokenPos": 15, + "endTokenPos": 17, "startFilePos": 57, "startLine": 4, "startTokenPos": 15 }, - "name": "this", - "nodeType": "Expr_Variable" + "name": "member", + "nodeType": "Expr_PropertyFetch", + "var": { + "attributes": { + "endFilePos": 61, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 57, + "startLine": 4, + "startTokenPos": 15 + }, + "name": "this", + "nodeType": "Expr_Variable" + } } } - } - ], - "type": 0 - } - ], - "type": 0 - } - ] + ], + "type": 0 + } + ], + "type": 0 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_class_this.php.uast b/fixtures/u2_class_this.php.uast index b916eff..14b00a8 100644 --- a/fixtures/u2_class_this.php.uast +++ b/fixtures/u2_class_this.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Class { -. . . Roles: Statement,Declaration,Type -. . . TOKEN "testcls1" +. . . Roles: Declaration,Statement,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -24,9 +23,15 @@ File { . . . . type: 0 . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testcls1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Body,Function,Type . . . . . StartPosition: { . . . . . . Offset: 27 . . . . . . Line: 3 @@ -44,8 +49,15 @@ File { . . . . . . type: 0 . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Assign { -. . . . . . . Roles: Expression,Body,Assignment +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Expr_Assign { +. . . . . . . Roles: Assignment,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 57 . . . . . . . . Line: 4 @@ -61,8 +73,7 @@ File { . . . . . . . } . . . . . . . Children: { . . . . . . . . 0: Expr_PropertyFetch { -. . . . . . . . . Roles: Expression,Map,Identifier,Entry,Value,Left -. . . . . . . . . TOKEN "member" +. . . . . . . . . Roles: Entry,Expression,Identifier,Left,Map,Value . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 57 . . . . . . . . . . Line: 4 @@ -77,9 +88,15 @@ File { . . . . . . . . . . internalRole: var . . . . . . . . . } . . . . . . . . . Children: { -. . . . . . . . . . 0: Expr_Variable { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "member" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . . 1: Expr_Variable { . . . . . . . . . . . Roles: Identifier,Variable -. . . . . . . . . . . TOKEN "this" . . . . . . . . . . . StartPosition: { . . . . . . . . . . . . Offset: 57 . . . . . . . . . . . . Line: 4 @@ -93,11 +110,20 @@ File { . . . . . . . . . . . Properties: { . . . . . . . . . . . . internalRole: var . . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Name { +. . . . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . . . TOKEN "this" +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: name +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } . . . . . . . . . . } . . . . . . . . . } . . . . . . . . } . . . . . . . . 1: Scalar_LNumber { -. . . . . . . . . Roles: Right,Expression,Literal,Number +. . . . . . . . . Roles: Expression,Literal,Number,Right . . . . . . . . . TOKEN "1" . . . . . . . . . StartPosition: { . . . . . . . . . . Offset: 73 diff --git a/fixtures/u2_func_annotated.php.native b/fixtures/u2_func_annotated.php.native index 7c9f84f..0ca8017 100644 --- a/fixtures/u2_func_annotated.php.native +++ b/fixtures/u2_func_annotated.php.native @@ -2,52 +2,55 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 43, - "endLine": 2, - "endTokenPos": 15, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "func1", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 30, - "endLine": 2, - "endTokenPos": 7, - "startFilePos": 21, - "startLine": 2, - "startTokenPos": 5 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 43, + "endLine": 2, + "endTokenPos": 15, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "byRef": false, + "name": "func1", + "nodeType": "Stmt_Function", + "params": [ + { "attributes": { - "endFilePos": 27, + "endFilePos": 30, "endLine": 2, - "endTokenPos": 5, + "endTokenPos": 7, "startFilePos": 21, "startLine": 2, "startTokenPos": 5 }, - "nodeType": "Name", - "parts": [ - "boolean" - ] - }, - "variadic": false - } - ], - "returnType": "string", - "stmts": [] - } - ] + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": { + "attributes": { + "endFilePos": 27, + "endLine": 2, + "endTokenPos": 5, + "startFilePos": 21, + "startLine": 2, + "startTokenPos": 5 + }, + "nodeType": "Name", + "parts": [ + "boolean" + ] + }, + "variadic": false + } + ], + "returnType": "string", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_annotated.php.uast b/fixtures/u2_func_annotated.php.uast index 5de64c1..b44aad3 100644 --- a/fixtures/u2_func_annotated.php.uast +++ b/fixtures/u2_func_annotated.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "func1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -19,14 +18,25 @@ File { . . . . Col: 38 . . . } . . . Properties: { -. . . . Stmt_Function.returnType: string . . . . byRef: false . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . TOKEN "string" +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 2 @@ -45,6 +55,13 @@ File { . . . . . Children: { . . . . . . 0: Name { . . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Name { +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "boolean" . . . . . . . StartPosition: { . . . . . . . . Offset: 21 @@ -62,13 +79,6 @@ File { . . . . . . } . . . . . } . . . . } -. . . . 1: Stmt_Function.returnType { -. . . . . Roles: Return,Type -. . . . . TOKEN "string" -. . . . . Properties: { -. . . . . . promotedPropertyString: true -. . . . . } -. . . . } . . . } . . } . } diff --git a/fixtures/u2_func_anonymous.php.native b/fixtures/u2_func_anonymous.php.native index d114903..1c1fa49 100644 --- a/fixtures/u2_func_anonymous.php.native +++ b/fixtures/u2_func_anonymous.php.native @@ -2,23 +2,26 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 18, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "nodeType": "Expr_Closure", - "params": [], - "returnType": null, - "static": false, - "stmts": [], - "uses": [] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 18, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "byRef": false, + "nodeType": "Expr_Closure", + "params": [], + "returnType": null, + "static": false, + "stmts": [], + "uses": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_anonymous.php.uast b/fixtures/u2_func_anonymous.php.uast index d64bcde..c0f2e69 100644 --- a/fixtures/u2_func_anonymous.php.uast +++ b/fixtures/u2_func_anonymous.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Closure { -. . . Roles: Function,Declaration,Expression,Anonymous +. . . Roles: Anonymous,Declaration,Expression,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 diff --git a/fixtures/u2_func_empty.php.native b/fixtures/u2_func_empty.php.native index 9bc3fdb..022878b 100644 --- a/fixtures/u2_func_empty.php.native +++ b/fixtures/u2_func_empty.php.native @@ -2,22 +2,25 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 26, - "endLine": 2, - "endTokenPos": 7, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "testfnc1", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 26, + "endLine": 2, + "endTokenPos": 7, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "byRef": false, + "name": "testfnc1", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_empty.php.uast b/fixtures/u2_func_empty.php.uast index ce564db..ae4e8d6 100644 --- a/fixtures/u2_func_empty.php.uast +++ b/fixtures/u2_func_empty.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "testfnc1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,6 +21,20 @@ File { . . . . byRef: false . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/u2_func_inner.php.native b/fixtures/u2_func_inner.php.native index 808ae01..de21c98 100644 --- a/fixtures/u2_func_inner.php.native +++ b/fixtures/u2_func_inner.php.native @@ -2,89 +2,92 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 54, - "endLine": 4, - "endTokenPos": 17, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 54, + "endLine": 4, + "endTokenPos": 17, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "byRef": false, + "name": "testfnc1", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { + "attributes": { + "endFilePos": 52, + "endLine": 3, + "endTokenPos": 15, + "startFilePos": 32, + "startLine": 3, + "startTokenPos": 9 + }, + "byRef": false, + "name": "testfnc2", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [] + } + ] }, - "byRef": false, - "name": "testfnc1", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 3, - "endTokenPos": 15, - "startFilePos": 32, - "startLine": 3, - "startTokenPos": 9 - }, - "byRef": false, - "name": "testfnc2", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [] - } - ] - }, - { - "attributes": { - "endFilePos": 142, - "endLine": 10, - "endTokenPos": 46, - "startFilePos": 57, - "startLine": 6, - "startTokenPos": 19 - }, - "byRef": false, - "name": "testfnc3", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 140, - "endLine": 9, - "endTokenPos": 44, - "startFilePos": 83, - "startLine": 7, - "startTokenPos": 27 - }, - "byRef": false, - "name": "testfnc4", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 134, - "endLine": 8, - "endTokenPos": 42, - "startFilePos": 113, - "startLine": 8, - "startTokenPos": 35 - }, - "byRef": false, - "name": "testfnc5", - "nodeType": "Stmt_Function", - "params": [], - "returnType": null, - "stmts": [] - } - ] - } - ] - } - ] + { + "attributes": { + "endFilePos": 142, + "endLine": 10, + "endTokenPos": 46, + "startFilePos": 57, + "startLine": 6, + "startTokenPos": 19 + }, + "byRef": false, + "name": "testfnc3", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { + "attributes": { + "endFilePos": 140, + "endLine": 9, + "endTokenPos": 44, + "startFilePos": 83, + "startLine": 7, + "startTokenPos": 27 + }, + "byRef": false, + "name": "testfnc4", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [ + { + "attributes": { + "endFilePos": 134, + "endLine": 8, + "endTokenPos": 42, + "startFilePos": 113, + "startLine": 8, + "startTokenPos": 35 + }, + "byRef": false, + "name": "testfnc5", + "nodeType": "Stmt_Function", + "params": [], + "returnType": null, + "stmts": [] + } + ] + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_inner.php.uast b/fixtures/u2_func_inner.php.uast index 3894e84..e0785c8 100644 --- a/fixtures/u2_func_inner.php.uast +++ b/fixtures/u2_func_inner.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "testfnc1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,29 +22,55 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_Function { -. . . . . Roles: Expression,Body,Function,Declaration -. . . . . TOKEN "testfnc2" -. . . . . StartPosition: { -. . . . . . Offset: 32 -. . . . . . Line: 3 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 52 -. . . . . . Line: 3 -. . . . . . Col: 25 +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType . . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { -. . . . . . byRef: false . . . . . . internalRole: stmts . . . . . } +. . . . . Children: { +. . . . . . 0: Stmt_Function { +. . . . . . . Roles: Declaration,Function +. . . . . . . StartPosition: { +. . . . . . . . Offset: 32 +. . . . . . . . Line: 3 +. . . . . . . . Col: 5 +. . . . . . . } +. . . . . . . EndPosition: { +. . . . . . . . Offset: 52 +. . . . . . . . Line: 3 +. . . . . . . . Col: 25 +. . . . . . . } +. . . . . . . Properties: { +. . . . . . . . byRef: false +. . . . . . . . internalRole: body +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Function.returnType { +. . . . . . . . . Roles: Declaration,Function,Return,Type +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: returnType +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Function.body { +. . . . . . . . . Roles: Body,Declaration,Function +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: stmts +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "testfnc3" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 57 . . . . Line: 6 @@ -61,40 +86,80 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_Function { -. . . . . Roles: Expression,Body,Function,Declaration -. . . . . TOKEN "testfnc4" -. . . . . StartPosition: { -. . . . . . Offset: 83 -. . . . . . Line: 7 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 140 -. . . . . . Line: 9 -. . . . . . Col: 5 +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType . . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { -. . . . . . byRef: false . . . . . . internalRole: stmts . . . . . } . . . . . Children: { . . . . . . 0: Stmt_Function { -. . . . . . . Roles: Expression,Body,Function,Declaration -. . . . . . . TOKEN "testfnc5" +. . . . . . . Roles: Declaration,Function . . . . . . . StartPosition: { -. . . . . . . . Offset: 113 -. . . . . . . . Line: 8 -. . . . . . . . Col: 9 +. . . . . . . . Offset: 83 +. . . . . . . . Line: 7 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 134 -. . . . . . . . Line: 8 -. . . . . . . . Col: 30 +. . . . . . . . Offset: 140 +. . . . . . . . Line: 9 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . Properties: { . . . . . . . . byRef: false -. . . . . . . . internalRole: stmts +. . . . . . . . internalRole: body +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Function.returnType { +. . . . . . . . . Roles: Declaration,Function,Return,Type +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: returnType +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Function.body { +. . . . . . . . . Roles: Body,Declaration,Function +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: stmts +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Stmt_Function { +. . . . . . . . . . . Roles: Declaration,Function +. . . . . . . . . . . StartPosition: { +. . . . . . . . . . . . Offset: 113 +. . . . . . . . . . . . Line: 8 +. . . . . . . . . . . . Col: 9 +. . . . . . . . . . . } +. . . . . . . . . . . EndPosition: { +. . . . . . . . . . . . Offset: 134 +. . . . . . . . . . . . Line: 8 +. . . . . . . . . . . . Col: 30 +. . . . . . . . . . . } +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . byRef: false +. . . . . . . . . . . . internalRole: body +. . . . . . . . . . . } +. . . . . . . . . . . Children: { +. . . . . . . . . . . . 0: Function.returnType { +. . . . . . . . . . . . . Roles: Declaration,Function,Return,Type +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: returnType +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . . 1: Function.body { +. . . . . . . . . . . . . Roles: Body,Declaration,Function +. . . . . . . . . . . . . Properties: { +. . . . . . . . . . . . . . internalRole: stmts +. . . . . . . . . . . . . } +. . . . . . . . . . . . } +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } . . . . . } diff --git a/fixtures/u2_func_params_default.php.native b/fixtures/u2_func_params_default.php.native index 75bf210..161a8c2 100644 --- a/fixtures/u2_func_params_default.php.native +++ b/fixtures/u2_func_params_default.php.native @@ -2,67 +2,70 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 35, - "endLine": 2, - "endTokenPos": 14, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "testfnc1", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 2, - "endTokenPos": 5, - "startFilePos": 24, - "startLine": 2, - "startTokenPos": 5 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 35, + "endLine": 2, + "endTokenPos": 14, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 31, - "endLine": 2, - "endTokenPos": 10, - "startFilePos": 28, - "startLine": 2, - "startTokenPos": 8 + "byRef": false, + "name": "testfnc1", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 2, + "endTokenPos": 5, + "startFilePos": 24, + "startLine": 2, + "startTokenPos": 5 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": { + { "attributes": { "endFilePos": 31, "endLine": 2, "endTokenPos": 10, - "kind": 10, - "startFilePos": 31, + "startFilePos": 28, "startLine": 2, - "startTokenPos": 10 + "startTokenPos": 8 }, - "nodeType": "Scalar_LNumber", - "value": 1 - }, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [] - } - ] + "byRef": false, + "default": { + "attributes": { + "endFilePos": 31, + "endLine": 2, + "endTokenPos": 10, + "kind": 10, + "startFilePos": 31, + "startLine": 2, + "startTokenPos": 10 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_params_default.php.uast b/fixtures/u2_func_params_default.php.uast index 8e31d7b..15e2370 100644 --- a/fixtures/u2_func_params_default.php.uast +++ b/fixtures/u2_func_params_default.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "testfnc1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 24 . . . . . . Line: 2 @@ -41,10 +51,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { +. . . . 3: Param { . . . . . Roles: Argument -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 28 . . . . . . Line: 2 @@ -61,8 +79,15 @@ File { . . . . . . variadic: false . . . . . } . . . . . Children: { -. . . . . . 0: Scalar_LNumber { -. . . . . . . Roles: Expression,Literal,Number,Default +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . . 1: Scalar_LNumber { +. . . . . . . Roles: Default,Expression,Literal,Number . . . . . . . TOKEN "1" . . . . . . . StartPosition: { . . . . . . . . Offset: 31 diff --git a/fixtures/u2_func_params_variadic_list.php.native b/fixtures/u2_func_params_variadic_list.php.native index 4c85cd0..ddb2d5f 100644 --- a/fixtures/u2_func_params_variadic_list.php.native +++ b/fixtures/u2_func_params_variadic_list.php.native @@ -2,55 +2,58 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 37, - "endLine": 2, - "endTokenPos": 14, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "testfnc1", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 2, - "endTokenPos": 5, - "startFilePos": 24, - "startLine": 2, - "startTokenPos": 5 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 37, + "endLine": 2, + "endTokenPos": 14, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 33, - "endLine": 2, - "endTokenPos": 10, - "startFilePos": 28, - "startLine": 2, - "startTokenPos": 8 + "byRef": false, + "name": "testfnc1", + "nodeType": "Stmt_Function", + "params": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 2, + "endTokenPos": 5, + "startFilePos": 24, + "startLine": 2, + "startTokenPos": 5 + }, + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": true - } - ], - "returnType": null, - "stmts": [] - } - ] + { + "attributes": { + "endFilePos": 33, + "endLine": 2, + "endTokenPos": 10, + "startFilePos": 28, + "startLine": 2, + "startTokenPos": 8 + }, + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": true + } + ], + "returnType": null, + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_params_variadic_list.php.uast b/fixtures/u2_func_params_variadic_list.php.uast index bf693b7..319e18e 100644 --- a/fixtures/u2_func_params_variadic_list.php.uast +++ b/fixtures/u2_func_params_variadic_list.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "testfnc1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,9 +22,20 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Function.body { +. . . . . Roles: Body,Declaration,Function +. . . . . Properties: { +. . . . . . internalRole: stmts +. . . . . } +. . . . } +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 24 . . . . . . Line: 2 @@ -41,10 +51,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { -. . . . . Roles: Argument,ArgsList -. . . . . TOKEN "b" +. . . . 3: Param { +. . . . . Roles: ArgsList,Argument . . . . . StartPosition: { . . . . . . Offset: 28 . . . . . . Line: 2 @@ -60,6 +78,15 @@ File { . . . . . . internalRole: params . . . . . . variadic: true . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_func_simple.php.native b/fixtures/u2_func_simple.php.native index e99aa07..95069b8 100644 --- a/fixtures/u2_func_simple.php.native +++ b/fixtures/u2_func_simple.php.native @@ -2,116 +2,119 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 59, - "endLine": 5, - "endTokenPos": 24, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "byRef": false, - "name": "testfnc1", - "nodeType": "Stmt_Function", - "params": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 2, - "endTokenPos": 5, - "startFilePos": 24, - "startLine": 2, - "startTokenPos": 5 - }, - "byRef": false, - "default": null, - "name": "a", - "nodeType": "Param", - "type": null, - "variadic": false + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 59, + "endLine": 5, + "endTokenPos": 24, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 29, - "endLine": 2, - "endTokenPos": 8, - "startFilePos": 28, - "startLine": 2, - "startTokenPos": 8 - }, - "byRef": false, - "default": null, - "name": "b", - "nodeType": "Param", - "type": null, - "variadic": false - } - ], - "returnType": null, - "stmts": [ - { - "attributes": { - "endFilePos": 42, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 37, - "startLine": 3, - "startTokenPos": 12 - }, - "expr": { + "byRef": false, + "name": "testfnc1", + "nodeType": "Stmt_Function", + "params": [ + { "attributes": { - "endFilePos": 42, - "endLine": 3, - "endTokenPos": 16, - "kind": 10, - "startFilePos": 42, - "startLine": 3, - "startTokenPos": 16 + "endFilePos": 25, + "endLine": 2, + "endTokenPos": 5, + "startFilePos": 24, + "startLine": 2, + "startTokenPos": 5 }, - "nodeType": "Scalar_LNumber", - "value": 1 + "byRef": false, + "default": null, + "name": "a", + "nodeType": "Param", + "type": null, + "variadic": false }, - "nodeType": "Expr_Assign", - "var": { + { + "attributes": { + "endFilePos": 29, + "endLine": 2, + "endTokenPos": 8, + "startFilePos": 28, + "startLine": 2, + "startTokenPos": 8 + }, + "byRef": false, + "default": null, + "name": "b", + "nodeType": "Param", + "type": null, + "variadic": false + } + ], + "returnType": null, + "stmts": [ + { "attributes": { - "endFilePos": 38, + "endFilePos": 42, "endLine": 3, - "endTokenPos": 12, + "endTokenPos": 16, "startFilePos": 37, "startLine": 3, "startTokenPos": 12 }, - "name": "c", - "nodeType": "Expr_Variable" - } - }, - { - "attributes": { - "endFilePos": 57, - "endLine": 4, - "endTokenPos": 22, - "startFilePos": 49, - "startLine": 4, - "startTokenPos": 19 + "expr": { + "attributes": { + "endFilePos": 42, + "endLine": 3, + "endTokenPos": 16, + "kind": 10, + "startFilePos": 42, + "startLine": 3, + "startTokenPos": 16 + }, + "nodeType": "Scalar_LNumber", + "value": 1 + }, + "nodeType": "Expr_Assign", + "var": { + "attributes": { + "endFilePos": 38, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 37, + "startLine": 3, + "startTokenPos": 12 + }, + "name": "c", + "nodeType": "Expr_Variable" + } }, - "expr": { + { "attributes": { - "endFilePos": 56, + "endFilePos": 57, "endLine": 4, - "endTokenPos": 21, - "kind": 10, - "startFilePos": 56, + "endTokenPos": 22, + "startFilePos": 49, "startLine": 4, - "startTokenPos": 21 + "startTokenPos": 19 }, - "nodeType": "Scalar_LNumber", - "value": 2 - }, - "nodeType": "Stmt_Return" - } - ] - } - ] + "expr": { + "attributes": { + "endFilePos": 56, + "endLine": 4, + "endTokenPos": 21, + "kind": 10, + "startFilePos": 56, + "startLine": 4, + "startTokenPos": 21 + }, + "nodeType": "Scalar_LNumber", + "value": 2 + }, + "nodeType": "Stmt_Return" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_func_simple.php.uast b/fixtures/u2_func_simple.php.uast index 3161170..b97ff3f 100644 --- a/fixtures/u2_func_simple.php.uast +++ b/fixtures/u2_func_simple.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Function { -. . . Roles: Function,Declaration -. . . TOKEN "testfnc1" +. . . Roles: Declaration,Function . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -23,9 +22,14 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Param { +. . . . 0: Function.returnType { +. . . . . Roles: Declaration,Function,Return,Type +. . . . . Properties: { +. . . . . . internalRole: returnType +. . . . . } +. . . . } +. . . . 1: Param { . . . . . Roles: Argument -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 24 . . . . . . Line: 2 @@ -41,10 +45,18 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Param { +. . . . 2: Param { . . . . . Roles: Argument -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 28 . . . . . . Line: 2 @@ -60,90 +72,115 @@ File { . . . . . . internalRole: params . . . . . . variadic: false . . . . . } -. . . . } -. . . . 2: Expr_Assign { -. . . . . Roles: Expression,Body,Assignment -. . . . . StartPosition: { -. . . . . . Offset: 37 -. . . . . . Line: 3 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 42 -. . . . . . Line: 3 -. . . . . . Col: 10 +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } . . . . . } +. . . . } +. . . . 3: Function.body { +. . . . . Roles: Body,Declaration,Function . . . . . Properties: { . . . . . . internalRole: stmts . . . . . } . . . . . Children: { -. . . . . . 0: Expr_Variable { -. . . . . . . Roles: Identifier,Variable,Left -. . . . . . . TOKEN "c" +. . . . . . 0: Expr_Assign { +. . . . . . . Roles: Assignment,Expression . . . . . . . StartPosition: { . . . . . . . . Offset: 37 . . . . . . . . Line: 3 . . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 38 -. . . . . . . . Line: 3 -. . . . . . . . Col: 6 -. . . . . . . } -. . . . . . . Properties: { -. . . . . . . . internalRole: var -. . . . . . . } -. . . . . . } -. . . . . . 1: Scalar_LNumber { -. . . . . . . Roles: Right,Expression,Literal,Number -. . . . . . . TOKEN "1" -. . . . . . . StartPosition: { -. . . . . . . . Offset: 42 -. . . . . . . . Line: 3 -. . . . . . . . Col: 10 -. . . . . . . } -. . . . . . . EndPosition: { . . . . . . . . Offset: 42 . . . . . . . . Line: 3 . . . . . . . . Col: 10 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Expr_Variable { +. . . . . . . . . Roles: Identifier,Left,Variable +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 37 +. . . . . . . . . . Line: 3 +. . . . . . . . . . Col: 5 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 38 +. . . . . . . . . . Line: 3 +. . . . . . . . . . Col: 6 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: var +. . . . . . . . . } +. . . . . . . . . Children: { +. . . . . . . . . . 0: Name { +. . . . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . . . TOKEN "c" +. . . . . . . . . . . Properties: { +. . . . . . . . . . . . internalRole: name +. . . . . . . . . . . } +. . . . . . . . . . } +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_LNumber { +. . . . . . . . . Roles: Expression,Literal,Number,Right +. . . . . . . . . TOKEN "1" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 42 +. . . . . . . . . . Line: 3 +. . . . . . . . . . Col: 10 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 42 +. . . . . . . . . . Line: 3 +. . . . . . . . . . Col: 10 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: expr +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } -. . . . . } -. . . . } -. . . . 3: Stmt_Return { -. . . . . Roles: Expression,Body,Statement,Return -. . . . . StartPosition: { -. . . . . . Offset: 49 -. . . . . . Line: 4 -. . . . . . Col: 5 -. . . . . } -. . . . . EndPosition: { -. . . . . . Offset: 57 -. . . . . . Line: 4 -. . . . . . Col: 13 -. . . . . } -. . . . . Properties: { -. . . . . . internalRole: stmts -. . . . . } -. . . . . Children: { -. . . . . . 0: Scalar_LNumber { -. . . . . . . Roles: Expression,Literal,Number -. . . . . . . TOKEN "2" +. . . . . . 1: Stmt_Return { +. . . . . . . Roles: Return,Statement . . . . . . . StartPosition: { -. . . . . . . . Offset: 56 +. . . . . . . . Offset: 49 . . . . . . . . Line: 4 -. . . . . . . . Col: 12 +. . . . . . . . Col: 5 . . . . . . . } . . . . . . . EndPosition: { -. . . . . . . . Offset: 56 +. . . . . . . . Offset: 57 . . . . . . . . Line: 4 -. . . . . . . . Col: 12 +. . . . . . . . Col: 13 . . . . . . . } . . . . . . . Properties: { -. . . . . . . . internalRole: expr +. . . . . . . . internalRole: body +. . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Scalar_LNumber { +. . . . . . . . . Roles: Expression,Literal,Number +. . . . . . . . . TOKEN "2" +. . . . . . . . . StartPosition: { +. . . . . . . . . . Offset: 56 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . EndPosition: { +. . . . . . . . . . Offset: 56 +. . . . . . . . . . Line: 4 +. . . . . . . . . . Col: 12 +. . . . . . . . . } +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: expr +. . . . . . . . . } +. . . . . . . . } . . . . . . . } . . . . . . } . . . . . } diff --git a/fixtures/u2_import_module_alias.php.native b/fixtures/u2_import_module_alias.php.native index ddfa697..1c98a34 100644 --- a/fixtures/u2_import_module_alias.php.native +++ b/fixtures/u2_import_module_alias.php.native @@ -2,49 +2,52 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 2, - "endTokenPos": 12, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "d", - "attributes": { - "endFilePos": 19, - "endLine": 2, - "endTokenPos": 11, - "startFilePos": 10, - "startLine": 2, - "startTokenPos": 3 - }, - "name": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 20, + "endLine": 2, + "endTokenPos": 12, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "d", "attributes": { - "endFilePos": 14, + "endFilePos": 19, "endLine": 2, - "endTokenPos": 7, + "endTokenPos": 11, "startFilePos": 10, "startLine": 2, "startTokenPos": 3 }, - "nodeType": "Name", - "parts": [ - "A", - "B", - "C" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 14, + "endLine": 2, + "endTokenPos": 7, + "startFilePos": 10, + "startLine": 2, + "startTokenPos": 3 + }, + "nodeType": "Name", + "parts": [ + "A", + "B", + "C" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_import_module_alias.php.uast b/fixtures/u2_import_module_alias.php.uast index 2c20183..dc7c429 100644 --- a/fixtures/u2_import_module_alias.php.uast +++ b/fixtures/u2_import_module_alias.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Use { . . . Roles: Alias diff --git a/fixtures/u2_import_simple.php.native b/fixtures/u2_import_simple.php.native index 31b2603..97de228 100644 --- a/fixtures/u2_import_simple.php.native +++ b/fixtures/u2_import_simple.php.native @@ -2,56 +2,59 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 20, "endLine": 2, "endTokenPos": 3, - "kind": 1, - "startFilePos": 14, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "nodeType": "Scalar_String", - "value": "a.php" - }, - "nodeType": "Expr_Include", - "type": 1 - }, - { - "attributes": { - "endFilePos": 38, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 23, - "startLine": 3, - "startTokenPos": 6 + "expr": { + "attributes": { + "endFilePos": 20, + "endLine": 2, + "endTokenPos": 3, + "kind": 1, + "startFilePos": 14, + "startLine": 2, + "startTokenPos": 3 + }, + "nodeType": "Scalar_String", + "value": "a.php" + }, + "nodeType": "Expr_Include", + "type": 1 }, - "expr": { + { "attributes": { - "endFilePos": 37, + "endFilePos": 38, "endLine": 3, - "endTokenPos": 8, - "kind": 1, - "startFilePos": 31, + "endTokenPos": 9, + "startFilePos": 23, "startLine": 3, - "startTokenPos": 8 + "startTokenPos": 6 }, - "nodeType": "Scalar_String", - "value": "b.php" - }, - "nodeType": "Expr_Include", - "type": 3 - } - ] + "expr": { + "attributes": { + "endFilePos": 37, + "endLine": 3, + "endTokenPos": 8, + "kind": 1, + "startFilePos": 31, + "startLine": 3, + "startTokenPos": 8 + }, + "nodeType": "Scalar_String", + "value": "b.php" + }, + "nodeType": "Expr_Include", + "type": 3 + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_import_simple.php.uast b/fixtures/u2_import_simple.php.uast index 757bdc1..d2e709a 100644 --- a/fixtures/u2_import_simple.php.uast +++ b/fixtures/u2_import_simple.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Include { . . . Roles: Import @@ -23,7 +23,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "a.php" . . . . . StartPosition: { . . . . . . Offset: 14 @@ -59,7 +59,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "b.php" . . . . . StartPosition: { . . . . . . Offset: 31 diff --git a/fixtures/u2_import_subsymbol.php.native b/fixtures/u2_import_subsymbol.php.native index e552a0c..63e7c33 100644 --- a/fixtures/u2_import_subsymbol.php.native +++ b/fixtures/u2_import_subsymbol.php.native @@ -2,55 +2,47 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 20, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "expr": { + "ast": { + "children": [ + { "attributes": { "endFilePos": 20, "endLine": 2, "endTokenPos": 3, - "kind": 1, - "startFilePos": 14, + "startFilePos": 6, "startLine": 2, - "startTokenPos": 3 + "startTokenPos": 1 }, - "nodeType": "Scalar_String", - "value": "a.php" - }, - "nodeType": "Expr_Include", - "type": 1 - }, - { - "attributes": { - "endFilePos": 32, - "endLine": 2, - "endTokenPos": 13, - "startFilePos": 23, - "startLine": 2, - "startTokenPos": 6 - }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "C", + "expr": { "attributes": { - "endFilePos": 31, + "endFilePos": 20, "endLine": 2, - "endTokenPos": 12, - "startFilePos": 27, + "endTokenPos": 3, + "kind": 1, + "startFilePos": 14, "startLine": 2, - "startTokenPos": 8 + "startTokenPos": 3 }, - "name": { + "nodeType": "Scalar_String", + "value": "a.php" + }, + "nodeType": "Expr_Include", + "type": 1 + }, + { + "attributes": { + "endFilePos": 32, + "endLine": 2, + "endTokenPos": 13, + "startFilePos": 23, + "startLine": 2, + "startTokenPos": 6 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "C", "attributes": { "endFilePos": 31, "endLine": 2, @@ -59,56 +51,56 @@ "startLine": 2, "startTokenPos": 8 }, - "nodeType": "Name", - "parts": [ - "A", - "B", - "C" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - }, - { - "attributes": { - "endFilePos": 50, - "endLine": 3, - "endTokenPos": 29, - "startFilePos": 34, - "startLine": 3, - "startTokenPos": 15 + "name": { + "attributes": { + "endFilePos": 31, + "endLine": 2, + "endTokenPos": 12, + "startFilePos": 27, + "startLine": 2, + "startTokenPos": 8 + }, + "nodeType": "Name", + "parts": [ + "A", + "B", + "C" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] }, - "nodeType": "Stmt_GroupUse", - "prefix": { + { "attributes": { - "endFilePos": 40, + "endFilePos": 50, "endLine": 3, - "endTokenPos": 19, - "startFilePos": 38, + "endTokenPos": 29, + "startFilePos": 34, "startLine": 3, - "startTokenPos": 17 + "startTokenPos": 15 }, - "nodeType": "Name", - "parts": [ - "A", - "B" - ] - }, - "type": 0, - "uses": [ - { - "alias": "C", + "nodeType": "Stmt_GroupUse", + "prefix": { "attributes": { - "endFilePos": 43, + "endFilePos": 40, "endLine": 3, - "endTokenPos": 22, - "startFilePos": 43, + "endTokenPos": 19, + "startFilePos": 38, "startLine": 3, - "startTokenPos": 22 + "startTokenPos": 17 }, - "name": { + "nodeType": "Name", + "parts": [ + "A", + "B" + ] + }, + "type": 0, + "uses": [ + { + "alias": "C", "attributes": { "endFilePos": 43, "endLine": 3, @@ -117,25 +109,25 @@ "startLine": 3, "startTokenPos": 22 }, - "nodeType": "Name", - "parts": [ - "C" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 1 - }, - { - "alias": "D", - "attributes": { - "endFilePos": 46, - "endLine": 3, - "endTokenPos": 25, - "startFilePos": 46, - "startLine": 3, - "startTokenPos": 25 + "name": { + "attributes": { + "endFilePos": 43, + "endLine": 3, + "endTokenPos": 22, + "startFilePos": 43, + "startLine": 3, + "startTokenPos": 22 + }, + "nodeType": "Name", + "parts": [ + "C" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 1 }, - "name": { + { + "alias": "D", "attributes": { "endFilePos": 46, "endLine": 3, @@ -144,25 +136,25 @@ "startLine": 3, "startTokenPos": 25 }, - "nodeType": "Name", - "parts": [ - "D" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 1 - }, - { - "alias": "E", - "attributes": { - "endFilePos": 49, - "endLine": 3, - "endTokenPos": 28, - "startFilePos": 49, - "startLine": 3, - "startTokenPos": 28 + "name": { + "attributes": { + "endFilePos": 46, + "endLine": 3, + "endTokenPos": 25, + "startFilePos": 46, + "startLine": 3, + "startTokenPos": 25 + }, + "nodeType": "Name", + "parts": [ + "D" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 1 }, - "name": { + { + "alias": "E", "attributes": { "endFilePos": 49, "endLine": 3, @@ -171,15 +163,26 @@ "startLine": 3, "startTokenPos": 28 }, - "nodeType": "Name", - "parts": [ - "E" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 1 - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 49, + "endLine": 3, + "endTokenPos": 28, + "startFilePos": 49, + "startLine": 3, + "startTokenPos": 28 + }, + "nodeType": "Name", + "parts": [ + "E" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 1 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_import_subsymbol.php.uast b/fixtures/u2_import_subsymbol.php.uast index 10093dc..4b7543c 100644 --- a/fixtures/u2_import_subsymbol.php.uast +++ b/fixtures/u2_import_subsymbol.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Include { . . . Roles: Import @@ -23,7 +23,7 @@ File { . . . } . . . Children: { . . . . 0: Scalar_String { -. . . . . Roles: Expression,Literal,String,Import,Pathname +. . . . . Roles: Expression,Import,Literal,Pathname,String . . . . . TOKEN "a.php" . . . . . StartPosition: { . . . . . . Offset: 14 @@ -98,7 +98,7 @@ File { . . . } . . } . . 2: Stmt_GroupUse { -. . . Roles: Unannotated +. . . Roles: Block,Incomplete . . . StartPosition: { . . . . Offset: 34 . . . . Line: 3 diff --git a/fixtures/u2_import_subsymbol_alias.php.native b/fixtures/u2_import_subsymbol_alias.php.native index e0929a7..ed286bc 100644 --- a/fixtures/u2_import_subsymbol_alias.php.native +++ b/fixtures/u2_import_subsymbol_alias.php.native @@ -2,59 +2,51 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 27, - "endLine": 2, - "endTokenPos": 19, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "nodeType": "Stmt_Use", - "type": 1, - "uses": [ - { - "alias": "H", - "attributes": { - "endFilePos": 19, - "endLine": 2, - "endTokenPos": 11, - "startFilePos": 10, - "startLine": 2, - "startTokenPos": 3 - }, - "name": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 27, + "endLine": 2, + "endTokenPos": 19, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "nodeType": "Stmt_Use", + "type": 1, + "uses": [ + { + "alias": "H", "attributes": { - "endFilePos": 14, + "endFilePos": 19, "endLine": 2, - "endTokenPos": 7, + "endTokenPos": 11, "startFilePos": 10, "startLine": 2, "startTokenPos": 3 }, - "nodeType": "Name", - "parts": [ - "E", - "F", - "G" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - }, - { - "alias": "K", - "attributes": { - "endFilePos": 26, - "endLine": 2, - "endTokenPos": 18, - "startFilePos": 22, - "startLine": 2, - "startTokenPos": 14 + "name": { + "attributes": { + "endFilePos": 14, + "endLine": 2, + "endTokenPos": 7, + "startFilePos": 10, + "startLine": 2, + "startTokenPos": 3 + }, + "nodeType": "Name", + "parts": [ + "E", + "F", + "G" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 }, - "name": { + { + "alias": "K", "attributes": { "endFilePos": 26, "endLine": 2, @@ -63,17 +55,28 @@ "startLine": 2, "startTokenPos": 14 }, - "nodeType": "Name", - "parts": [ - "I", - "J", - "K" - ] - }, - "nodeType": "Stmt_UseUse", - "type": 0 - } - ] - } - ] + "name": { + "attributes": { + "endFilePos": 26, + "endLine": 2, + "endTokenPos": 18, + "startFilePos": 22, + "startLine": 2, + "startTokenPos": 14 + }, + "nodeType": "Name", + "parts": [ + "I", + "J", + "K" + ] + }, + "nodeType": "Stmt_UseUse", + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_import_subsymbol_alias.php.uast b/fixtures/u2_import_subsymbol_alias.php.uast index b515676..e69f74f 100644 --- a/fixtures/u2_import_subsymbol_alias.php.uast +++ b/fixtures/u2_import_subsymbol_alias.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Use { . . . Roles: Alias diff --git a/fixtures/u2_type_alias.php.native b/fixtures/u2_type_alias.php.native index c27a263..1f297fd 100644 --- a/fixtures/u2_type_alias.php.native +++ b/fixtures/u2_type_alias.php.native @@ -2,85 +2,88 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "args": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 2, - "endTokenPos": 3, - "startFilePos": 18, - "startLine": 2, - "startTokenPos": 3 - }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + "ast": { + "children": [ + { + "args": [ + { "attributes": { "endFilePos": 24, "endLine": 2, "endTokenPos": 3, - "kind": 1, "startFilePos": 18, "startLine": 2, "startTokenPos": 3 }, - "nodeType": "Scalar_String", - "value": "type1" - } - }, - { - "attributes": { - "endFilePos": 33, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 27, - "startLine": 2, - "startTokenPos": 6 + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 24, + "endLine": 2, + "endTokenPos": 3, + "kind": 1, + "startFilePos": 18, + "startLine": 2, + "startTokenPos": 3 + }, + "nodeType": "Scalar_String", + "value": "type1" + } }, - "byRef": false, - "nodeType": "Arg", - "unpack": false, - "value": { + { "attributes": { "endFilePos": 33, "endLine": 2, "endTokenPos": 6, - "kind": 1, "startFilePos": 27, "startLine": 2, "startTokenPos": 6 }, - "nodeType": "Scalar_String", - "value": "type2" + "byRef": false, + "nodeType": "Arg", + "unpack": false, + "value": { + "attributes": { + "endFilePos": 33, + "endLine": 2, + "endTokenPos": 6, + "kind": 1, + "startFilePos": 27, + "startLine": 2, + "startTokenPos": 6 + }, + "nodeType": "Scalar_String", + "value": "type2" + } } - } - ], - "attributes": { - "endFilePos": 34, - "endLine": 2, - "endTokenPos": 7, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "name": { + ], "attributes": { - "endFilePos": 16, + "endFilePos": 34, "endLine": 2, - "endTokenPos": 1, + "endTokenPos": 7, "startFilePos": 6, "startLine": 2, "startTokenPos": 1 }, - "nodeType": "Name", - "parts": [ - "class_alias" - ] - }, - "nodeType": "Expr_FuncCall" - } - ] + "name": { + "attributes": { + "endFilePos": 16, + "endLine": 2, + "endTokenPos": 1, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "nodeType": "Name", + "parts": [ + "class_alias" + ] + }, + "nodeType": "Expr_FuncCall" + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_alias.php.uast b/fixtures/u2_type_alias.php.uast index 414784e..188c712 100644 --- a/fixtures/u2_type_alias.php.uast +++ b/fixtures/u2_type_alias.php.uast @@ -2,11 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_FuncCall { -. . . Roles: Expression,Call +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,7 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Function,Name +. . . . . Roles: Expression,Identifier . . . . . TOKEN "class_alias" . . . . . StartPosition: { . . . . . . Offset: 6 diff --git a/fixtures/u2_type_interface_empty.php.native b/fixtures/u2_type_interface_empty.php.native index 5c265dc..acd1630 100644 --- a/fixtures/u2_type_interface_empty.php.native +++ b/fixtures/u2_type_interface_empty.php.native @@ -2,20 +2,23 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 28, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": [], - "name": "testiface1", - "nodeType": "Stmt_Interface", - "stmts": [] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 28, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": [], + "name": "testiface1", + "nodeType": "Stmt_Interface", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_interface_empty.php.uast b/fixtures/u2_type_interface_empty.php.uast index e56240a..958e170 100644 --- a/fixtures/u2_type_interface_empty.php.uast +++ b/fixtures/u2_type_interface_empty.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "testiface1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -21,6 +20,15 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testiface1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/u2_type_interface_field.php.native b/fixtures/u2_type_interface_field.php.native index 6f10dce..5ba7137 100644 --- a/fixtures/u2_type_interface_field.php.native +++ b/fixtures/u2_type_interface_field.php.native @@ -2,60 +2,63 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 61, - "endLine": 4, - "endTokenPos": 16, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": [], - "name": "testiface1", - "nodeType": "Stmt_Interface", - "stmts": [ - { - "attributes": { - "endFilePos": 59, - "endLine": 3, - "endTokenPos": 14, - "startFilePos": 33, - "startLine": 3, - "startTokenPos": 7 - }, - "consts": [ - { - "attributes": { - "endFilePos": 58, - "endLine": 3, - "endTokenPos": 13, - "startFilePos": 39, - "startLine": 3, - "startTokenPos": 9 - }, - "name": "b", - "nodeType": "Const", - "value": { + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 61, + "endLine": 4, + "endTokenPos": 16, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": [], + "name": "testiface1", + "nodeType": "Stmt_Interface", + "stmts": [ + { + "attributes": { + "endFilePos": 59, + "endLine": 3, + "endTokenPos": 14, + "startFilePos": 33, + "startLine": 3, + "startTokenPos": 7 + }, + "consts": [ + { "attributes": { "endFilePos": 58, "endLine": 3, "endTokenPos": 13, - "kind": 1, - "startFilePos": 43, + "startFilePos": 39, "startLine": 3, - "startTokenPos": 13 + "startTokenPos": 9 }, - "nodeType": "Scalar_String", - "value": "class constant" + "name": "b", + "nodeType": "Const", + "value": { + "attributes": { + "endFilePos": 58, + "endLine": 3, + "endTokenPos": 13, + "kind": 1, + "startFilePos": 43, + "startLine": 3, + "startTokenPos": 13 + }, + "nodeType": "Scalar_String", + "value": "class constant" + } } - } - ], - "flags": 0, - "nodeType": "Stmt_ClassConst" - } - ] - } - ] + ], + "flags": 0, + "nodeType": "Stmt_ClassConst" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_interface_field.php.uast b/fixtures/u2_type_interface_field.php.uast index 5e13ff7..dc9be41 100644 --- a/fixtures/u2_type_interface_field.php.uast +++ b/fixtures/u2_type_interface_field.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "testiface1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,8 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_ClassConst { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testiface1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassConst { +. . . . . Roles: Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 33 . . . . . . Line: 3 @@ -40,8 +46,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Const { -. . . . . . . Roles: Expression,Variable,Incomplete -. . . . . . . TOKEN "b" +. . . . . . . Roles: Expression,Incomplete,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 39 . . . . . . . . Line: 3 @@ -56,7 +61,14 @@ File { . . . . . . . . internalRole: consts . . . . . . . } . . . . . . . Children: { -. . . . . . . . 0: Scalar_String { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "b" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . . 1: Scalar_String { . . . . . . . . . Roles: Expression,Literal,String . . . . . . . . . TOKEN "class constant" . . . . . . . . . StartPosition: { diff --git a/fixtures/u2_type_interface_inherit.php.native b/fixtures/u2_type_interface_inherit.php.native index 206decf..7337bc7 100644 --- a/fixtures/u2_type_interface_inherit.php.native +++ b/fixtures/u2_type_interface_inherit.php.native @@ -2,106 +2,109 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 19, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": [], - "name": "A", - "nodeType": "Stmt_Interface", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 34, - "endLine": 3, - "endTokenPos": 13, - "startFilePos": 21, - "startLine": 3, - "startTokenPos": 8 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 19, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": [], + "name": "A", + "nodeType": "Stmt_Interface", + "stmts": [] }, - "extends": [], - "name": "B", - "nodeType": "Stmt_Interface", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 68, - "endLine": 4, - "endTokenPos": 24, - "startFilePos": 36, - "startLine": 4, - "startTokenPos": 15 + { + "attributes": { + "endFilePos": 34, + "endLine": 3, + "endTokenPos": 13, + "startFilePos": 21, + "startLine": 3, + "startTokenPos": 8 + }, + "extends": [], + "name": "B", + "nodeType": "Stmt_Interface", + "stmts": [] }, - "extends": [ - { - "attributes": { - "endFilePos": 65, - "endLine": 4, - "endTokenPos": 21, - "startFilePos": 65, - "startLine": 4, - "startTokenPos": 21 - }, - "nodeType": "Name", - "parts": [ - "A" - ] - } - ], - "name": "testiface1", - "nodeType": "Stmt_Interface", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 105, - "endLine": 5, - "endTokenPos": 38, - "startFilePos": 70, - "startLine": 5, - "startTokenPos": 26 + { + "attributes": { + "endFilePos": 68, + "endLine": 4, + "endTokenPos": 24, + "startFilePos": 36, + "startLine": 4, + "startTokenPos": 15 + }, + "extends": [ + { + "attributes": { + "endFilePos": 65, + "endLine": 4, + "endTokenPos": 21, + "startFilePos": 65, + "startLine": 4, + "startTokenPos": 21 + }, + "nodeType": "Name", + "parts": [ + "A" + ] + } + ], + "name": "testiface1", + "nodeType": "Stmt_Interface", + "stmts": [] }, - "extends": [ - { - "attributes": { - "endFilePos": 99, - "endLine": 5, - "endTokenPos": 32, - "startFilePos": 99, - "startLine": 5, - "startTokenPos": 32 - }, - "nodeType": "Name", - "parts": [ - "A" - ] + { + "attributes": { + "endFilePos": 105, + "endLine": 5, + "endTokenPos": 38, + "startFilePos": 70, + "startLine": 5, + "startTokenPos": 26 }, - { - "attributes": { - "endFilePos": 102, - "endLine": 5, - "endTokenPos": 35, - "startFilePos": 102, - "startLine": 5, - "startTokenPos": 35 + "extends": [ + { + "attributes": { + "endFilePos": 99, + "endLine": 5, + "endTokenPos": 32, + "startFilePos": 99, + "startLine": 5, + "startTokenPos": 32 + }, + "nodeType": "Name", + "parts": [ + "A" + ] }, - "nodeType": "Name", - "parts": [ - "B" - ] - } - ], - "name": "testiface2", - "nodeType": "Stmt_Interface", - "stmts": [] - } - ] + { + "attributes": { + "endFilePos": 102, + "endLine": 5, + "endTokenPos": 35, + "startFilePos": 102, + "startLine": 5, + "startTokenPos": 35 + }, + "nodeType": "Name", + "parts": [ + "B" + ] + } + ], + "name": "testiface2", + "nodeType": "Stmt_Interface", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_interface_inherit.php.uast b/fixtures/u2_type_interface_inherit.php.uast index 0c42947..1f34e2a 100644 --- a/fixtures/u2_type_interface_inherit.php.uast +++ b/fixtures/u2_type_interface_inherit.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "A" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -21,10 +20,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "A" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 1: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "B" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 21 . . . . Line: 3 @@ -38,10 +45,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "B" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 2: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "testiface1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 36 . . . . Line: 4 @@ -57,7 +72,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Base,Type +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testiface1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 65 @@ -76,8 +98,7 @@ File { . . . } . . } . . 3: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "testiface2" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 70 . . . . Line: 5 @@ -93,7 +114,14 @@ File { . . . } . . . Children: { . . . . 0: Name { -. . . . . Roles: Expression,Identifier,Base,Type +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testiface2" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "A" . . . . . StartPosition: { . . . . . . Offset: 99 @@ -109,8 +137,8 @@ File { . . . . . . internalRole: extends . . . . . } . . . . } -. . . . 1: Name { -. . . . . Roles: Expression,Identifier,Base,Type +. . . . 2: Name { +. . . . . Roles: Expression,Identifier . . . . . TOKEN "B" . . . . . StartPosition: { . . . . . . Offset: 102 diff --git a/fixtures/u2_type_interface_simple.php.native b/fixtures/u2_type_interface_simple.php.native index a7b8d91..e1cc191 100644 --- a/fixtures/u2_type_interface_simple.php.native +++ b/fixtures/u2_type_interface_simple.php.native @@ -2,39 +2,42 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 54, - "endLine": 4, - "endTokenPos": 14, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "extends": [], - "name": "testiface1", - "nodeType": "Stmt_Interface", - "stmts": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 3, - "endTokenPos": 12, - "startFilePos": 33, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 0, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": null, - "type": 0 - } - ] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 54, + "endLine": 4, + "endTokenPos": 14, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "extends": [], + "name": "testiface1", + "nodeType": "Stmt_Interface", + "stmts": [ + { + "attributes": { + "endFilePos": 52, + "endLine": 3, + "endTokenPos": 12, + "startFilePos": 33, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 0, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": null, + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_interface_simple.php.uast b/fixtures/u2_type_interface_simple.php.uast index 1becc9c..41d7620 100644 --- a/fixtures/u2_type_interface_simple.php.uast +++ b/fixtures/u2_type_interface_simple.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Interface { -. . . Roles: Type,Declaration -. . . TOKEN "testiface1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testiface1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 33 . . . . . . Line: 3 @@ -41,6 +46,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_type_trait_empty.php.native b/fixtures/u2_type_trait_empty.php.native index 2b14bef..e372524 100644 --- a/fixtures/u2_type_trait_empty.php.native +++ b/fixtures/u2_type_trait_empty.php.native @@ -2,19 +2,22 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 24, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_trait_empty.php.uast b/fixtures/u2_type_trait_empty.php.uast index 6937a17..bf71c96 100644 --- a/fixtures/u2_type_trait_empty.php.uast +++ b/fixtures/u2_type_trait_empty.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -21,6 +20,15 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . } } diff --git a/fixtures/u2_type_trait_extend.php.native b/fixtures/u2_type_trait_extend.php.native index c98d305..6e85773 100644 --- a/fixtures/u2_type_trait_extend.php.native +++ b/fixtures/u2_type_trait_extend.php.native @@ -2,61 +2,64 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 24, - "endLine": 2, - "endTokenPos": 6, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 24, + "endLine": 2, + "endTokenPos": 6, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [] }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 61, - "endLine": 3, - "endTokenPos": 19, - "startFilePos": 26, - "startLine": 3, - "startTokenPos": 8 - }, - "name": "testtrait2", - "nodeType": "Stmt_Trait", - "stmts": [ - { - "adaptations": [], - "attributes": { - "endFilePos": 59, - "endLine": 3, - "endTokenPos": 17, - "startFilePos": 45, - "startLine": 3, - "startTokenPos": 14 - }, - "nodeType": "Stmt_TraitUse", - "traits": [ - { - "attributes": { - "endFilePos": 58, - "endLine": 3, - "endTokenPos": 16, - "startFilePos": 49, - "startLine": 3, - "startTokenPos": 16 - }, - "nodeType": "Name", - "parts": [ - "testtrait1" - ] - } - ] - } - ] - } - ] + { + "attributes": { + "endFilePos": 61, + "endLine": 3, + "endTokenPos": 19, + "startFilePos": 26, + "startLine": 3, + "startTokenPos": 8 + }, + "name": "testtrait2", + "nodeType": "Stmt_Trait", + "stmts": [ + { + "adaptations": [], + "attributes": { + "endFilePos": 59, + "endLine": 3, + "endTokenPos": 17, + "startFilePos": 45, + "startLine": 3, + "startTokenPos": 14 + }, + "nodeType": "Stmt_TraitUse", + "traits": [ + { + "attributes": { + "endFilePos": 58, + "endLine": 3, + "endTokenPos": 16, + "startFilePos": 49, + "startLine": 3, + "startTokenPos": 16 + }, + "nodeType": "Name", + "parts": [ + "testtrait1" + ] + } + ] + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_trait_extend.php.uast b/fixtures/u2_type_trait_extend.php.uast index a6583f5..8403508 100644 --- a/fixtures/u2_type_trait_extend.php.uast +++ b/fixtures/u2_type_trait_extend.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -21,10 +20,18 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 1: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait2" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 26 . . . . Line: 3 @@ -39,8 +46,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_TraitUse { -. . . . . Roles: Expression,Body,Base +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait2" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_TraitUse { +. . . . . Roles: Base . . . . . StartPosition: { . . . . . . Offset: 45 . . . . . . Line: 3 diff --git a/fixtures/u2_type_trait_field.php.native b/fixtures/u2_type_trait_field.php.native index 9d081fd..0aad859 100644 --- a/fixtures/u2_type_trait_field.php.native +++ b/fixtures/u2_type_trait_field.php.native @@ -2,48 +2,51 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 40, - "endLine": 4, - "endTokenPos": 12, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [ - { - "attributes": { - "endFilePos": 38, - "endLine": 3, - "endTokenPos": 10, - "startFilePos": 29, - "startLine": 3, - "startTokenPos": 7 - }, - "flags": 1, - "nodeType": "Stmt_Property", - "props": [ - { - "attributes": { - "endFilePos": 37, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 36, - "startLine": 3, - "startTokenPos": 9 - }, - "default": null, - "name": "x", - "nodeType": "Stmt_PropertyProperty" - } - ], - "type": 1 - } - ] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 40, + "endLine": 4, + "endTokenPos": 12, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [ + { + "attributes": { + "endFilePos": 38, + "endLine": 3, + "endTokenPos": 10, + "startFilePos": 29, + "startLine": 3, + "startTokenPos": 7 + }, + "flags": 1, + "nodeType": "Stmt_Property", + "props": [ + { + "attributes": { + "endFilePos": 37, + "endLine": 3, + "endTokenPos": 9, + "startFilePos": 36, + "startLine": 3, + "startTokenPos": 9 + }, + "default": null, + "name": "x", + "nodeType": "Stmt_PropertyProperty" + } + ], + "type": 1 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_trait_field.php.uast b/fixtures/u2_type_trait_field.php.uast index f7de38a..18ffea2 100644 --- a/fixtures/u2_type_trait_field.php.uast +++ b/fixtures/u2_type_trait_field.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,8 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_Property { -. . . . . Roles: Expression,Body,Type,Variable,Incomplete +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_Property { +. . . . . Roles: Incomplete,Type,Variable . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 3 @@ -41,8 +47,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Stmt_PropertyProperty { -. . . . . . . Roles: Type,Variable,Incomplete -. . . . . . . TOKEN "x" +. . . . . . . Roles: Incomplete,Type,Variable . . . . . . . StartPosition: { . . . . . . . . Offset: 36 . . . . . . . . Line: 3 @@ -56,6 +61,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: props . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "x" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/u2_type_trait_qualifiers.php.native b/fixtures/u2_type_trait_qualifiers.php.native index 09f9599..4eabd59 100644 --- a/fixtures/u2_type_trait_qualifiers.php.native +++ b/fixtures/u2_type_trait_qualifiers.php.native @@ -2,110 +2,113 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 199, - "endLine": 8, - "endTokenPos": 60, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [ - { - "attributes": { - "endFilePos": 57, - "endLine": 3, - "endTokenPos": 14, - "startFilePos": 29, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 16, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": null, - "type": 16 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 199, + "endLine": 8, + "endTokenPos": 60, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 }, - { - "attributes": { - "endFilePos": 92, - "endLine": 4, - "endTokenPos": 25, - "startFilePos": 63, - "startLine": 4, - "startTokenPos": 16 + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [ + { + "attributes": { + "endFilePos": 57, + "endLine": 3, + "endTokenPos": 14, + "startFilePos": 29, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 16, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": null, + "type": 16 }, - "byRef": false, - "flags": 4, - "name": "testfnc2", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 4 - }, - { - "attributes": { - "endFilePos": 129, - "endLine": 5, - "endTokenPos": 36, - "startFilePos": 98, - "startLine": 5, - "startTokenPos": 27 + { + "attributes": { + "endFilePos": 92, + "endLine": 4, + "endTokenPos": 25, + "startFilePos": 63, + "startLine": 4, + "startTokenPos": 16 + }, + "byRef": false, + "flags": 4, + "name": "testfnc2", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 4 }, - "byRef": false, - "flags": 2, - "name": "testfnc3", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 2 - }, - { - "attributes": { - "endFilePos": 163, - "endLine": 6, - "endTokenPos": 47, - "startFilePos": 135, - "startLine": 6, - "startTokenPos": 38 + { + "attributes": { + "endFilePos": 129, + "endLine": 5, + "endTokenPos": 36, + "startFilePos": 98, + "startLine": 5, + "startTokenPos": 27 + }, + "byRef": false, + "flags": 2, + "name": "testfnc3", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 2 }, - "byRef": false, - "flags": 1, - "name": "testfnc4", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 1 - }, - { - "attributes": { - "endFilePos": 197, - "endLine": 7, - "endTokenPos": 58, - "startFilePos": 169, - "startLine": 7, - "startTokenPos": 49 + { + "attributes": { + "endFilePos": 163, + "endLine": 6, + "endTokenPos": 47, + "startFilePos": 135, + "startLine": 6, + "startTokenPos": 38 + }, + "byRef": false, + "flags": 1, + "name": "testfnc4", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 1 }, - "byRef": false, - "flags": 8, - "name": "testfnc5", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 8 - } - ] - } - ] + { + "attributes": { + "endFilePos": 197, + "endLine": 7, + "endTokenPos": 58, + "startFilePos": 169, + "startLine": 7, + "startTokenPos": 49 + }, + "byRef": false, + "flags": 8, + "name": "testfnc5", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 8 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_trait_qualifiers.php.uast b/fixtures/u2_type_trait_qualifiers.php.uast index 8b86ea5..d91b2f2 100644 --- a/fixtures/u2_type_trait_qualifiers.php.uast +++ b/fixtures/u2_type_trait_qualifiers.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 3 @@ -41,10 +46,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 16 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 1: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc2" +. . . . 2: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 63 . . . . . . Line: 4 @@ -61,10 +74,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 4 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc2" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 2: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc3" +. . . . 3: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 98 . . . . . . Line: 5 @@ -81,10 +102,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 2 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc3" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 3: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc4" +. . . . 4: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 135 . . . . . . Line: 6 @@ -101,10 +130,18 @@ File { . . . . . . internalRole: stmts . . . . . . type: 1 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc4" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } -. . . . 4: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc5" +. . . . 5: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 169 . . . . . . Line: 7 @@ -121,6 +158,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 8 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc5" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/u2_type_trait_simple.php.native b/fixtures/u2_type_trait_simple.php.native index 8790f3e..a381b33 100644 --- a/fixtures/u2_type_trait_simple.php.native +++ b/fixtures/u2_type_trait_simple.php.native @@ -2,38 +2,41 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 52, - "endLine": 4, - "endTokenPos": 16, - "startFilePos": 6, - "startLine": 2, - "startTokenPos": 1 - }, - "name": "testtrait1", - "nodeType": "Stmt_Trait", - "stmts": [ - { - "attributes": { - "endFilePos": 50, - "endLine": 3, - "endTokenPos": 14, - "startFilePos": 29, - "startLine": 3, - "startTokenPos": 7 - }, - "byRef": false, - "flags": 0, - "name": "testfnc1", - "nodeType": "Stmt_ClassMethod", - "params": [], - "returnType": null, - "stmts": [], - "type": 0 - } - ] - } - ] + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 52, + "endLine": 4, + "endTokenPos": 16, + "startFilePos": 6, + "startLine": 2, + "startTokenPos": 1 + }, + "name": "testtrait1", + "nodeType": "Stmt_Trait", + "stmts": [ + { + "attributes": { + "endFilePos": 50, + "endLine": 3, + "endTokenPos": 14, + "startFilePos": 29, + "startLine": 3, + "startTokenPos": 7 + }, + "byRef": false, + "flags": 0, + "name": "testfnc1", + "nodeType": "Stmt_ClassMethod", + "params": [], + "returnType": null, + "stmts": [], + "type": 0 + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/u2_type_trait_simple.php.uast b/fixtures/u2_type_trait_simple.php.uast index ae7115d..ea811f4 100644 --- a/fixtures/u2_type_trait_simple.php.uast +++ b/fixtures/u2_type_trait_simple.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Trait { -. . . Roles: Type,Declaration -. . . TOKEN "testtrait1" +. . . Roles: Declaration,Type . . . StartPosition: { . . . . Offset: 6 . . . . Line: 2 @@ -22,9 +21,15 @@ File { . . . . internalRole: children . . . } . . . Children: { -. . . . 0: Stmt_ClassMethod { -. . . . . Roles: Expression,Body,Type,Function -. . . . . TOKEN "testfnc1" +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "testtrait1" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . . 1: Stmt_ClassMethod { +. . . . . Roles: Function,Type . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 3 @@ -41,6 +46,15 @@ File { . . . . . . internalRole: stmts . . . . . . type: 0 . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "testfnc1" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/unset.php.native b/fixtures/unset.php.native index 223a939..785ea59 100644 --- a/fixtures/unset.php.native +++ b/fixtures/unset.php.native @@ -2,68 +2,71 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 16, - "endLine": 3, - "endTokenPos": 6, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "nodeType": "Stmt_Unset", - "vars": [ - { - "attributes": { - "endFilePos": 14, - "endLine": 3, - "endTokenPos": 4, - "startFilePos": 13, - "startLine": 3, - "startTokenPos": 4 - }, - "name": "a", - "nodeType": "Expr_Variable" - } - ] - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 4, - "endTokenPos": 15, - "startFilePos": 18, - "startLine": 4, - "startTokenPos": 8 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 16, + "endLine": 3, + "endTokenPos": 6, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "nodeType": "Stmt_Unset", + "vars": [ + { + "attributes": { + "endFilePos": 14, + "endLine": 3, + "endTokenPos": 4, + "startFilePos": 13, + "startLine": 3, + "startTokenPos": 4 + }, + "name": "a", + "nodeType": "Expr_Variable" + } + ] }, - "nodeType": "Stmt_Unset", - "vars": [ - { - "attributes": { - "endFilePos": 25, - "endLine": 4, - "endTokenPos": 10, - "startFilePos": 24, - "startLine": 4, - "startTokenPos": 10 - }, - "name": "b", - "nodeType": "Expr_Variable" + { + "attributes": { + "endFilePos": 31, + "endLine": 4, + "endTokenPos": 15, + "startFilePos": 18, + "startLine": 4, + "startTokenPos": 8 }, - { - "attributes": { - "endFilePos": 29, - "endLine": 4, - "endTokenPos": 13, - "startFilePos": 28, - "startLine": 4, - "startTokenPos": 13 + "nodeType": "Stmt_Unset", + "vars": [ + { + "attributes": { + "endFilePos": 25, + "endLine": 4, + "endTokenPos": 10, + "startFilePos": 24, + "startLine": 4, + "startTokenPos": 10 + }, + "name": "b", + "nodeType": "Expr_Variable" }, - "name": "c", - "nodeType": "Expr_Variable" - } - ] - } - ] + { + "attributes": { + "endFilePos": 29, + "endLine": 4, + "endTokenPos": 13, + "startFilePos": 28, + "startLine": 4, + "startTokenPos": 13 + }, + "name": "c", + "nodeType": "Expr_Variable" + } + ] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/unset.php.uast b/fixtures/unset.php.uast index c38acb9..10637a8 100644 --- a/fixtures/unset.php.uast +++ b/fixtures/unset.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_Unset { -. . . Roles: Expression,Call -. . . TOKEN "unset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -24,7 +23,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 13 . . . . . . Line: 3 @@ -38,12 +36,20 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } . . 1: Stmt_Unset { -. . . Roles: Expression,Call -. . . TOKEN "unset" +. . . Roles: Call,Expression . . . StartPosition: { . . . . Offset: 18 . . . . Line: 4 @@ -60,7 +66,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "b" . . . . . StartPosition: { . . . . . . Offset: 24 . . . . . . Line: 4 @@ -74,10 +79,18 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "b" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . . 1: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "c" . . . . . StartPosition: { . . . . . . Offset: 28 . . . . . . Line: 4 @@ -91,6 +104,15 @@ File { . . . . . Properties: { . . . . . . internalRole: vars . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "c" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/fixtures/variable.php.native b/fixtures/variable.php.native index ae34adb..5a6aa69 100644 --- a/fixtures/variable.php.native +++ b/fixtures/variable.php.native @@ -2,90 +2,82 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 8, - "endLine": 3, - "endTokenPos": 2, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "name": "a", - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 16, - "endLine": 4, - "endTokenPos": 8, - "startFilePos": 11, - "startLine": 4, - "startTokenPos": 5 + "ast": { + "children": [ + { + "attributes": { + "endFilePos": 8, + "endLine": 3, + "endTokenPos": 2, + "startFilePos": 7, + "startLine": 3, + "startTokenPos": 2 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": { + { "attributes": { - "endFilePos": 15, + "endFilePos": 16, "endLine": 4, - "endTokenPos": 7, - "kind": 1, - "startFilePos": 13, + "endTokenPos": 8, + "startFilePos": 11, "startLine": 4, - "startTokenPos": 7 + "startTokenPos": 5 }, - "nodeType": "Scalar_String", - "value": "a" - }, - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 26, - "endLine": 5, - "endTokenPos": 16, - "startFilePos": 19, - "startLine": 5, - "startTokenPos": 11 + "name": { + "attributes": { + "endFilePos": 15, + "endLine": 4, + "endTokenPos": 7, + "kind": 1, + "startFilePos": 13, + "startLine": 4, + "startTokenPos": 7 + }, + "nodeType": "Scalar_String", + "value": "a" + }, + "nodeType": "Expr_Variable" }, - "name": { - "args": [], + { "attributes": { - "endFilePos": 25, + "endFilePos": 26, "endLine": 5, - "endTokenPos": 15, - "startFilePos": 21, + "endTokenPos": 16, + "startFilePos": 19, "startLine": 5, - "startTokenPos": 13 + "startTokenPos": 11 }, "name": { + "args": [], "attributes": { - "endFilePos": 23, + "endFilePos": 25, "endLine": 5, - "endTokenPos": 13, + "endTokenPos": 15, "startFilePos": 21, "startLine": 5, "startTokenPos": 13 }, - "nodeType": "Name", - "parts": [ - "foo" - ] + "name": { + "attributes": { + "endFilePos": 23, + "endLine": 5, + "endTokenPos": 13, + "startFilePos": 21, + "startLine": 5, + "startTokenPos": 13 + }, + "nodeType": "Name", + "parts": [ + "foo" + ] + }, + "nodeType": "Expr_FuncCall" }, - "nodeType": "Expr_FuncCall" - }, - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 31, - "endLine": 6, - "endTokenPos": 20, - "startFilePos": 29, - "startLine": 6, - "startTokenPos": 19 + "nodeType": "Expr_Variable" }, - "name": { + { "attributes": { "endFilePos": 31, "endLine": 6, @@ -94,21 +86,21 @@ "startLine": 6, "startTokenPos": 19 }, - "name": "a", + "name": { + "attributes": { + "endFilePos": 31, + "endLine": 6, + "endTokenPos": 20, + "startFilePos": 29, + "startLine": 6, + "startTokenPos": 19 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 37, - "endLine": 7, - "endTokenPos": 25, - "startFilePos": 34, - "startLine": 7, - "startTokenPos": 23 - }, - "name": { + { "attributes": { "endFilePos": 37, "endLine": 7, @@ -122,50 +114,50 @@ "endFilePos": 37, "endLine": 7, "endTokenPos": 25, - "startFilePos": 35, + "startFilePos": 34, "startLine": 7, - "startTokenPos": 24 + "startTokenPos": 23 + }, + "name": { + "attributes": { + "endFilePos": 37, + "endLine": 7, + "endTokenPos": 25, + "startFilePos": 35, + "startLine": 7, + "startTokenPos": 24 + }, + "name": "a", + "nodeType": "Expr_Variable" }, - "name": "a", "nodeType": "Expr_Variable" }, "nodeType": "Expr_Variable" }, - "nodeType": "Expr_Variable" - }, - { - "attributes": { - "endFilePos": 47, - "endLine": 8, - "endTokenPos": 32, - "startFilePos": 40, - "startLine": 8, - "startTokenPos": 28 - }, - "dim": { - "attributes": { - "endFilePos": 46, - "endLine": 8, - "endTokenPos": 31, - "kind": 1, - "startFilePos": 44, - "startLine": 8, - "startTokenPos": 31 - }, - "nodeType": "Scalar_String", - "value": "b" - }, - "nodeType": "Expr_ArrayDimFetch", - "var": { + { "attributes": { - "endFilePos": 42, + "endFilePos": 47, "endLine": 8, - "endTokenPos": 29, + "endTokenPos": 32, "startFilePos": 40, "startLine": 8, "startTokenPos": 28 }, - "name": { + "dim": { + "attributes": { + "endFilePos": 46, + "endLine": 8, + "endTokenPos": 31, + "kind": 1, + "startFilePos": 44, + "startLine": 8, + "startTokenPos": 31 + }, + "nodeType": "Scalar_String", + "value": "b" + }, + "nodeType": "Expr_ArrayDimFetch", + "var": { "attributes": { "endFilePos": 42, "endLine": 8, @@ -174,11 +166,22 @@ "startLine": 8, "startTokenPos": 28 }, - "name": "a", + "name": { + "attributes": { + "endFilePos": 42, + "endLine": 8, + "endTokenPos": 29, + "startFilePos": 40, + "startLine": 8, + "startTokenPos": 28 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, "nodeType": "Expr_Variable" - }, - "nodeType": "Expr_Variable" + } } - } - ] + ], + "nodeType": "Module" + } } diff --git a/fixtures/variable.php.uast b/fixtures/variable.php.uast index 488de5c..5615076 100644 --- a/fixtures/variable.php.uast +++ b/fixtures/variable.php.uast @@ -2,12 +2,11 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Expr_Variable { . . . Roles: Identifier,Variable -. . . TOKEN "a" . . . StartPosition: { . . . . Offset: 7 . . . . Line: 3 @@ -21,6 +20,15 @@ File { . . . Properties: { . . . . internalRole: children . . . } +. . . Children: { +. . . . 0: Name { +. . . . . Roles: Expression,Identifier +. . . . . TOKEN "a" +. . . . . Properties: { +. . . . . . internalRole: name +. . . . . } +. . . . } +. . . } . . } . . 1: Expr_Variable { . . . Roles: Identifier,Variable @@ -74,7 +82,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_FuncCall { -. . . . . Roles: Expression,Call +. . . . . Roles: Call,Expression . . . . . StartPosition: { . . . . . . Offset: 21 . . . . . . Line: 5 @@ -90,7 +98,7 @@ File { . . . . . } . . . . . Children: { . . . . . . 0: Name { -. . . . . . . Roles: Expression,Identifier,Function,Name +. . . . . . . Roles: Expression,Identifier . . . . . . . TOKEN "foo" . . . . . . . StartPosition: { . . . . . . . . Offset: 21 @@ -128,7 +136,6 @@ File { . . . Children: { . . . . 0: Expr_Variable { . . . . . Roles: Identifier,Variable -. . . . . TOKEN "a" . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 6 @@ -142,6 +149,15 @@ File { . . . . . Properties: { . . . . . . internalRole: name . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -179,7 +195,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 35 . . . . . . . . Line: 7 @@ -193,13 +208,22 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } . . . } . . } . . 5: Expr_ArrayDimFetch { -. . . Roles: Expression,List,Value,Entry +. . . Roles: Entry,Expression,List,Value . . . StartPosition: { . . . . Offset: 40 . . . . Line: 8 @@ -232,7 +256,6 @@ File { . . . . . Children: { . . . . . . 0: Expr_Variable { . . . . . . . Roles: Identifier,Variable -. . . . . . . TOKEN "a" . . . . . . . StartPosition: { . . . . . . . . Offset: 40 . . . . . . . . Line: 8 @@ -246,6 +269,15 @@ File { . . . . . . . Properties: { . . . . . . . . internalRole: name . . . . . . . } +. . . . . . . Children: { +. . . . . . . . 0: Name { +. . . . . . . . . Roles: Expression,Identifier +. . . . . . . . . TOKEN "a" +. . . . . . . . . Properties: { +. . . . . . . . . . internalRole: name +. . . . . . . . . } +. . . . . . . . } +. . . . . . . } . . . . . . } . . . . . } . . . . } diff --git a/fixtures/while.php.native b/fixtures/while.php.native index 7466f3d..2029919 100644 --- a/fixtures/while.php.native +++ b/fixtures/while.php.native @@ -2,54 +2,57 @@ "status": "ok", "language": "php", "errors": [], - "ast": [ - { - "attributes": { - "endFilePos": 19, - "endLine": 3, - "endTokenPos": 9, - "startFilePos": 7, - "startLine": 3, - "startTokenPos": 2 - }, - "cond": { + "ast": { + "children": [ + { "attributes": { - "endFilePos": 15, + "endFilePos": 19, "endLine": 3, - "endTokenPos": 5, - "startFilePos": 14, + "endTokenPos": 9, + "startFilePos": 7, "startLine": 3, - "startTokenPos": 5 + "startTokenPos": 2 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_While", - "stmts": [] - }, - { - "attributes": { - "endFilePos": 42, - "endLine": 6, - "endTokenPos": 19, - "startFilePos": 22, - "startLine": 5, - "startTokenPos": 11 + "cond": { + "attributes": { + "endFilePos": 15, + "endLine": 3, + "endTokenPos": 5, + "startFilePos": 14, + "startLine": 3, + "startTokenPos": 5 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_While", + "stmts": [] }, - "cond": { + { "attributes": { - "endFilePos": 30, - "endLine": 5, - "endTokenPos": 14, - "startFilePos": 29, + "endFilePos": 42, + "endLine": 6, + "endTokenPos": 19, + "startFilePos": 22, "startLine": 5, - "startTokenPos": 14 + "startTokenPos": 11 }, - "name": "a", - "nodeType": "Expr_Variable" - }, - "nodeType": "Stmt_While", - "stmts": [] - } - ] + "cond": { + "attributes": { + "endFilePos": 30, + "endLine": 5, + "endTokenPos": 14, + "startFilePos": 29, + "startLine": 5, + "startTokenPos": 14 + }, + "name": "a", + "nodeType": "Expr_Variable" + }, + "nodeType": "Stmt_While", + "stmts": [] + } + ], + "nodeType": "Module" + } } diff --git a/fixtures/while.php.uast b/fixtures/while.php.uast index 5b1e174..96deb5f 100644 --- a/fixtures/while.php.uast +++ b/fixtures/while.php.uast @@ -2,8 +2,8 @@ Status: ok Language: php Errors: UAST: -File { -. Roles: File,Module +Module { +. Roles: Module . Children: { . . 0: Stmt_While { . . . Roles: Statement,While @@ -22,8 +22,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 14 . . . . . . Line: 3 @@ -37,6 +36,15 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } @@ -57,8 +65,7 @@ File { . . . } . . . Children: { . . . . 0: Expr_Variable { -. . . . . Roles: Identifier,Variable,Condition -. . . . . TOKEN "a" +. . . . . Roles: Identifier,Variable . . . . . StartPosition: { . . . . . . Offset: 29 . . . . . . Line: 5 @@ -72,6 +79,15 @@ File { . . . . . Properties: { . . . . . . internalRole: cond . . . . . } +. . . . . Children: { +. . . . . . 0: Name { +. . . . . . . Roles: Expression,Identifier +. . . . . . . TOKEN "a" +. . . . . . . Properties: { +. . . . . . . . internalRole: name +. . . . . . . } +. . . . . . } +. . . . . } . . . . } . . . } . . } diff --git a/manifest.toml b/manifest.toml index 9692d70..e24194b 100644 --- a/manifest.toml +++ b/manifest.toml @@ -29,4 +29,4 @@ go_version = "1.9" # native_version describes the version or versions being use to build and # execute the native code, you should define at least one. (eg.: "1.8"). -native_version = ["7.1.15-r0"] +native_version = ["7.1.17-r0"] diff --git a/native/composer.lock b/native/composer.lock index 6ee2bff..5da9cdc 100644 --- a/native/composer.lock +++ b/native/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "b8c12ae70d368b4e91ded8b9f548d04f", + "content-hash": "44fff5c151544654d2eb5b6846e57e04", "packages": [ { "name": "nikic/php-parser", @@ -160,26 +160,26 @@ }, { "name": "pdepend/pdepend", - "version": "2.5.0", + "version": "2.5.2", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "0c50874333149c0dad5a2877801aed148f2767ff" + "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/0c50874333149c0dad5a2877801aed148f2767ff", - "reference": "0c50874333149c0dad5a2877801aed148f2767ff", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/9daf26d0368d4a12bed1cacae1a9f3a6f0adf239", + "reference": "9daf26d0368d4a12bed1cacae1a9f3a6f0adf239", "shasum": "" }, "require": { "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3", - "symfony/dependency-injection": "^2.3.0|^3", - "symfony/filesystem": "^2.3.0|^3" + "symfony/config": "^2.3.0|^3|^4", + "symfony/dependency-injection": "^2.3.0|^3|^4", + "symfony/filesystem": "^2.3.0|^3|^4" }, "require-dev": { - "phpunit/phpunit": "^4.4.0,<4.8", + "phpunit/phpunit": "^4.8|^5.7", "squizlabs/php_codesniffer": "^2.0.0" }, "bin": [ @@ -196,109 +196,7 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "time": "2017-01-19T14:23:36+00:00" - }, - { - "name": "phar-io/manifest", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" - }, - { - "name": "phar-io/version", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "time": "2017-12-13T13:21:38+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -356,29 +254,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.1.1", + "version": "4.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "2d3d238c433cf69caeb4842e97a3223a116f94b2" + "reference": "94fd0001232e47129dd3504189fa1c7225010d08" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/2d3d238c433cf69caeb4842e97a3223a116f94b2", - "reference": "2d3d238c433cf69caeb4842e97a3223a116f94b2", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", + "reference": "94fd0001232e47129dd3504189fa1c7225010d08", "shasum": "" }, "require": { "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0@dev", + "phpdocumentor/reflection-common": "^1.0.0", "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, "autoload": { "psr-4": { "phpDocumentor\\Reflection\\": [ @@ -397,7 +301,7 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-08-30T18:51:59+00:00" + "time": "2017-11-30T07:14:17+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -514,28 +418,28 @@ }, { "name": "phpspec/prophecy", - "version": "v1.7.2", + "version": "1.7.6", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6" + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", - "reference": "c9b8c6088acd19d769d4cc0ffa60a9fe34344bd6", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712", + "reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0", + "sebastian/comparator": "^1.1|^2.0|^3.0", "sebastian/recursion-context": "^1.0|^2.0|^3.0" }, "require-dev": { "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8 || ^5.6.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" }, "type": "library", "extra": { @@ -573,41 +477,44 @@ "spy", "stub" ], - "time": "2017-09-04T11:05:03+00:00" + "time": "2018-04-18T13:57:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "5.2.3", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d" + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d", - "reference": "8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" + "php": "^5.6 || ^7.0", + "phpunit/php-file-iterator": "^1.3", + "phpunit/php-text-template": "^1.2", + "phpunit/php-token-stream": "^1.4.2 || ^2.0", + "sebastian/code-unit-reverse-lookup": "^1.0", + "sebastian/environment": "^1.3.2 || ^2.0", + "sebastian/version": "^1.0 || ^2.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "ext-xdebug": "^2.1.4", + "phpunit/phpunit": "^5.7" + }, + "suggest": { + "ext-xdebug": "^2.5.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.2.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { @@ -633,20 +540,20 @@ "testing", "xunit" ], - "time": "2017-11-03T13:47:33+00:00" + "time": "2017-04-02T07:44:40+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.2", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5" + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5", - "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { @@ -680,7 +587,7 @@ "filesystem", "iterator" ], - "time": "2016-10-03T07:40:28+00:00" + "time": "2017-11-27T13:52:08+00:00" }, { "name": "phpunit/php-text-template", @@ -774,16 +681,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0" + "reference": "791198a2c6254db10131eecfe8c06670700904db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9a02332089ac48e704c70f6cefed30c224e3c0b0", - "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", "shasum": "" }, "require": { @@ -819,56 +726,51 @@ "keywords": [ "tokenizer" ], - "time": "2017-08-20T05:47:52+00:00" + "time": "2017-11-27T05:48:46+00:00" }, { "name": "phpunit/phpunit", - "version": "6.4.4", + "version": "5.5.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932" + "reference": "3e6e88e56c912133de6e99b87728cca7ed70c5f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/562f7dc75d46510a4ed5d16189ae57fbe45a9932", - "reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6e88e56c912133de6e99b87728cca7ed70c5f5", + "reference": "3e6e88e56c912133de6e99b87728cca7ed70c5f5", "shasum": "" }, "require": { "ext-dom": "*", "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.2.2", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^4.0.3", - "sebastian/comparator": "^2.0.2", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "myclabs/deep-copy": "~1.3", + "php": "^5.6 || ^7.0", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "^4.0.1", + "phpunit/php-file-iterator": "~1.4", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "^1.0.6", + "phpunit/phpunit-mock-objects": "^3.2", + "sebastian/comparator": "~1.1", + "sebastian/diff": "~1.2", + "sebastian/environment": "^1.3 || ^2.0", + "sebastian/exporter": "~1.2", + "sebastian/global-state": "~1.0", + "sebastian/object-enumerator": "~1.0", + "sebastian/resource-operations": "~1.0", + "sebastian/version": "~1.0|~2.0", + "symfony/yaml": "~2.1|~3.0" }, "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" - }, - "require-dev": { - "ext-pdo": "*" + "phpdocumentor/reflection-docblock": "3.0.2" }, "suggest": { - "phpunit/php-invoker": "^1.1" + "phpunit/php-invoker": "~1.1" }, "bin": [ "phpunit" @@ -876,7 +778,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.4.x-dev" + "dev-master": "5.5.x-dev" } }, "autoload": { @@ -902,33 +804,33 @@ "testing", "xunit" ], - "time": "2017-11-08T11:26:09+00:00" + "time": "2016-08-26T07:11:44+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "4.0.4", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0" + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0", - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.0" + "doctrine/instantiator": "^1.0.2", + "php": "^5.6 || ^7.0", + "phpunit/php-text-template": "^1.2", + "sebastian/exporter": "^1.2 || ^2.0" }, "conflict": { - "phpunit/phpunit": "<6.0" + "phpunit/phpunit": "<5.4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^5.4" }, "suggest": { "ext-soap": "*" @@ -936,7 +838,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "3.2.x-dev" } }, "autoload": { @@ -961,7 +863,7 @@ "mock", "xunit" ], - "time": "2017-08-03T14:08:16+00:00" + "time": "2017-06-30T09:13:00+00:00" }, { "name": "psr/container", @@ -1059,30 +961,30 @@ }, { "name": "sebastian/comparator", - "version": "2.1.0", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1174d9018191e93cb9d719edec01257fc05f8158" + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1174d9018191e93cb9d719edec01257fc05f8158", - "reference": "1174d9018191e93cb9d719edec01257fc05f8158", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0", - "sebastian/exporter": "^3.1" + "php": ">=5.3.3", + "sebastian/diff": "~1.2", + "sebastian/exporter": "~1.2 || ~2.0" }, "require-dev": { - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1113,38 +1015,38 @@ } ], "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", + "homepage": "http://www.github.com/sebastianbergmann/comparator", "keywords": [ "comparator", "compare", "equality" ], - "time": "2017-11-03T07:16:52+00:00" + "time": "2017-01-29T09:50:25+00:00" }, { "name": "sebastian/diff", - "version": "2.0.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^5.3.3 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.4-dev" } }, "autoload": { @@ -1171,32 +1073,32 @@ "keywords": [ "diff" ], - "time": "2017-08-03T08:09:46+00:00" + "time": "2017-05-22T07:24:03+00:00" }, { "name": "sebastian/environment", - "version": "3.1.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1217,37 +1119,38 @@ "description": "Provides functionality to handle HHVM/PHP environments", "homepage": "http://www.github.com/sebastianbergmann/environment", "keywords": [ + "Xdebug", "environment", "hhvm" ], - "time": "2017-07-01T08:51:00+00:00" + "time": "2016-11-26T07:53:53+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4", + "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=5.3.3", + "sebastian/recursion-context": "~1.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -1287,27 +1190,27 @@ "export", "exporter" ], - "time": "2017-04-03T13:19:02+00:00" + "time": "2016-06-17T09:04:28+00:00" }, { "name": "sebastian/global-state", - "version": "2.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", + "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "~4.2" }, "suggest": { "ext-uopz": "*" @@ -1315,7 +1218,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -1338,34 +1241,33 @@ "keywords": [ "global state" ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2015-10-12T03:26:01+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "d4ca2fb70344987502567bc50081c03e6192fb26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/d4ca2fb70344987502567bc50081c03e6192fb26", + "reference": "d4ca2fb70344987502567bc50081c03e6192fb26", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=5.6", + "sebastian/recursion-context": "~1.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "~5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -1385,77 +1287,32 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", - "shasum": "" - }, - "require": { - "php": "^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "time": "2016-01-28T13:25:10+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7", + "reference": "b19cc3298482a335a95f3016d2f8a6950f0fbcd7", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { @@ -1483,7 +1340,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "time": "2016-10-03T07:41:43+00:00" }, { "name": "sebastian/resource-operations", @@ -1572,30 +1429,30 @@ }, { "name": "symfony/config", - "version": "v3.3.10", + "version": "v4.0.9", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "4ab62407bff9cd97c410a7feaef04c375aaa5cfd" + "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/4ab62407bff9cd97c410a7feaef04c375aaa5cfd", - "reference": "4ab62407bff9cd97c410a7feaef04c375aaa5cfd", + "url": "https://api.github.com/repos/symfony/config/zipball/7c19370ab04e9ac05b74a504198e165f5ccf6dd8", + "reference": "7c19370ab04e9ac05b74a504198e165f5ccf6dd8", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/filesystem": "~2.8|~3.0" + "php": "^7.1.3", + "symfony/filesystem": "~3.4|~4.0" }, "conflict": { - "symfony/dependency-injection": "<3.3", - "symfony/finder": "<3.3" + "symfony/finder": "<3.4" }, "require-dev": { - "symfony/dependency-injection": "~3.3", - "symfony/finder": "~3.3", - "symfony/yaml": "~3.0" + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~3.4|~4.0", + "symfony/finder": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "symfony/yaml": "To use the yaml reference dumper" @@ -1603,7 +1460,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1630,38 +1487,39 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2017-10-04T18:56:58+00:00" + "time": "2018-03-19T22:35:49+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.3.10", + "version": "v4.0.9", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "8ebad929aee3ca185b05f55d9cc5521670821ad1" + "reference": "1f99622d8a63b160bfdd0ad7b2da56ee413cba64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8ebad929aee3ca185b05f55d9cc5521670821ad1", - "reference": "8ebad929aee3ca185b05f55d9cc5521670821ad1", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1f99622d8a63b160bfdd0ad7b2da56ee413cba64", + "reference": "1f99622d8a63b160bfdd0ad7b2da56ee413cba64", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8", + "php": "^7.1.3", "psr/container": "^1.0" }, "conflict": { - "symfony/config": "<3.3.1", - "symfony/finder": "<3.3", - "symfony/yaml": "<3.3" + "symfony/config": "<3.4", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<3.4" }, "provide": { "psr/container-implementation": "1.0" }, "require-dev": { - "symfony/config": "~3.3", - "symfony/expression-language": "~2.8|~3.0", - "symfony/yaml": "~3.3" + "symfony/config": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "symfony/config": "", @@ -1673,7 +1531,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1700,29 +1558,29 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-10-04T17:15:30+00:00" + "time": "2018-04-30T01:05:59+00:00" }, { "name": "symfony/filesystem", - "version": "v3.3.10", + "version": "v4.0.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "90bc45abf02ae6b7deb43895c1052cb0038506f1" + "reference": "5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/90bc45abf02ae6b7deb43895c1052cb0038506f1", - "reference": "90bc45abf02ae6b7deb43895c1052cb0038506f1", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21", + "reference": "5d2d655b2c72fc4d9bf7e9bf14f72a447b940f21", "shasum": "" }, "require": { - "php": "^5.5.9|>=7.0.8" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1749,60 +1607,78 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2017-10-03T13:33:10+00:00" + "time": "2018-02-22T10:50:29+00:00" }, { - "name": "theseer/tokenizer", - "version": "1.1.0", + "name": "symfony/yaml", + "version": "v3.4.9", "source": { "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + "url": "https://github.com/symfony/yaml.git", + "reference": "033cfa61ef06ee0847e056e530201842b6e926c3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "url": "https://api.github.com/repos/symfony/yaml/zipball/033cfa61ef06ee0847e056e530201842b6e926c3", + "reference": "033cfa61ef06ee0847e056e530201842b6e926c3", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2017-04-07T12:08:54+00:00" + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2018-04-08T08:21:29+00:00" }, { "name": "webmozart/assert", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f" + "reference": "0df1908962e7a3071564e857d86874dad1ef204a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/2db61e59ff05fe5126d152bd0655c9ea113e550f", - "reference": "2db61e59ff05fe5126d152bd0655c9ea113e550f", + "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", + "reference": "0df1908962e7a3071564e857d86874dad1ef204a", "shasum": "" }, "require": { @@ -1839,7 +1715,7 @@ "check", "validate" ], - "time": "2016-11-23T20:04:58+00:00" + "time": "2018-01-29T19:49:41+00:00" } ], "aliases": [], @@ -1852,5 +1728,6 @@ "prefer-lowest": false, "platform": { "php": ">=7.1" - } + }, + "platform-dev": [] } diff --git a/native/src/AstExtractor/Command/Command.php b/native/src/AstExtractor/Command/Command.php index e15e92e..9a08436 100644 --- a/native/src/AstExtractor/Command/Command.php +++ b/native/src/AstExtractor/Command/Command.php @@ -29,7 +29,7 @@ private function init() while ($this->io->isAvailable()) { try { $request = $this->io->nextRequest(); - $ast = $this->extractor->getAst($request->content); + $ast = ["nodeType" => "Module", "children" => $this->extractor->getAst($request->content)]; $response = $request->answer($ast); $this->io->write($response); } catch (BaseFailure $e) {