rename meta to freefloating; refactoring
This commit is contained in:
@@ -8,7 +8,6 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/z7zmey/php-parser/node"
|
||||
|
||||
"github.com/z7zmey/php-parser/walker"
|
||||
)
|
||||
|
||||
@@ -36,10 +35,12 @@ func (d *Dumper) EnterNode(w walker.Walkable) bool {
|
||||
}
|
||||
}
|
||||
|
||||
if mm := n.GetMeta(); len(*mm) > 0 {
|
||||
fmt.Fprintf(d.Writer, "%v\"Meta\":\n", d.Indent+" ")
|
||||
for _, m := range *mm {
|
||||
fmt.Fprintf(d.Writer, "%v%q before %q\n", d.Indent+" ", m, m.TokenName.String())
|
||||
if !n.GetFreeFloating().IsEmpty() {
|
||||
fmt.Fprintf(d.Writer, "%v\"freefloating\":\n", d.Indent+" ")
|
||||
for key, freeFloatingStrings := range *n.GetFreeFloating() {
|
||||
for _, freeFloatingString := range freeFloatingStrings {
|
||||
fmt.Fprintf(d.Writer, "%v%q: %q\n", d.Indent+" ", key.String(), freeFloatingString.Value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ func ExampleDumper() {
|
||||
src := `<?php
|
||||
|
||||
namespace Foo {
|
||||
class Bar {
|
||||
class Bar {
|
||||
public function FunctionName(Type $var = null)
|
||||
{
|
||||
// some comment
|
||||
@@ -38,116 +38,115 @@ func ExampleDumper() {
|
||||
|
||||
// Unordered output:
|
||||
// | [*node.Root]
|
||||
// | "Position": Pos{Line: 3-11 Pos: 10-143}
|
||||
// | "Position": Pos{Line: 3-11 Pos: 10-144}
|
||||
// | "Stmts":
|
||||
// | [*stmt.Namespace]
|
||||
// | "Position": Pos{Line: 3-11 Pos: 10-143}
|
||||
// | "Meta":
|
||||
// | "<?php" before "NodeStart"
|
||||
// | "\n\n\t\t" before "NodeStart"
|
||||
// | " " before "OpenCurlyBracesToken"
|
||||
// | "\n\t\t" before "CloseCurlyBracesToken"
|
||||
// | "Position": Pos{Line: 3-11 Pos: 10-144}
|
||||
// | "freefloating":
|
||||
// | "Start": "<?php"
|
||||
// | "Start": "\n\n\t\t"
|
||||
// | "Stmts": "\n\t\t"
|
||||
// | "NamespaceName":
|
||||
// | [*name.Name]
|
||||
// | "Position": Pos{Line: 3-3 Pos: 20-22}
|
||||
// | "freefloating":
|
||||
// | "Start": " "
|
||||
// | "End": " "
|
||||
// | "Parts":
|
||||
// | [*name.NamePart]
|
||||
// | "Position": Pos{Line: 3-3 Pos: 20-22}
|
||||
// | "Meta":
|
||||
// | " " before "NodeStart"
|
||||
// | "Value": "Foo"
|
||||
// | "Stmts":
|
||||
// | [*stmt.Class]
|
||||
// | "Position": Pos{Line: 4-10 Pos: 29-139}
|
||||
// | "Position": Pos{Line: 4-10 Pos: 29-140}
|
||||
// | "NamespacedName": "Foo\\Bar"
|
||||
// | "Meta":
|
||||
// | "\n\t\t\t" before "NodeStart"
|
||||
// | " " before "OpenCurlyBracesToken"
|
||||
// | "\n\t\t\t" before "CloseCurlyBracesToken"
|
||||
// | "freefloating":
|
||||
// | "Start": "\n\t\t\t"
|
||||
// | "Name": " "
|
||||
// | "Stmts": "\n\t\t\t"
|
||||
// | "PhpDocComment": ""
|
||||
// | "ClassName":
|
||||
// | [*node.Identifier]
|
||||
// | "Position": Pos{Line: 4-4 Pos: 35-37}
|
||||
// | "Meta":
|
||||
// | " " before "NodeStart"
|
||||
// | "freefloating":
|
||||
// | "Start": " "
|
||||
// | "Value": "Bar"
|
||||
// | "Stmts":
|
||||
// | [*stmt.ClassMethod]
|
||||
// | "Position": Pos{Line: 5-9 Pos: 45-134}
|
||||
// | "Meta":
|
||||
// | "\n\t\t\t\t" before "NodeStart"
|
||||
// | " " before "FunctionToken"
|
||||
// | "Position": Pos{Line: 5-9 Pos: 46-135}
|
||||
// | "freefloating":
|
||||
// | "Start": " \n\t\t\t\t"
|
||||
// | "ModifierList": " "
|
||||
// | "Function": " "
|
||||
// | "ReturnsRef": false
|
||||
// | "PhpDocComment": ""
|
||||
// | "MethodName":
|
||||
// | [*node.Identifier]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 61-72}
|
||||
// | "Meta":
|
||||
// | " " before "NodeStart"
|
||||
// | "Position": Pos{Line: 5-5 Pos: 62-73}
|
||||
// | "Value": "FunctionName"
|
||||
// | "Modifiers":
|
||||
// | [*node.Identifier]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 45-50}
|
||||
// | "Position": Pos{Line: 5-5 Pos: 46-51}
|
||||
// | "Value": "public"
|
||||
// | "Params":
|
||||
// | [*node.Parameter]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 74-89}
|
||||
// | "Meta":
|
||||
// | " " before "EqualToken"
|
||||
// | "ByRef": false
|
||||
// | "Position": Pos{Line: 5-5 Pos: 75-90}
|
||||
// | "freefloating":
|
||||
// | "OptionalType": " "
|
||||
// | "Var": " "
|
||||
// | "Variadic": false
|
||||
// | "ByRef": false
|
||||
// | "VariableType":
|
||||
// | [*name.Name]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 74-77}
|
||||
// | "Position": Pos{Line: 5-5 Pos: 75-78}
|
||||
// | "NamespacedName": "Foo\\Type"
|
||||
// | "Parts":
|
||||
// | [*name.NamePart]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 74-77}
|
||||
// | "Position": Pos{Line: 5-5 Pos: 75-78}
|
||||
// | "Value": "Type"
|
||||
// | "Variable":
|
||||
// | [*expr.Variable]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 79-82}
|
||||
// | "Meta":
|
||||
// | " " before "NodeStart"
|
||||
// | "$" before "NodeStart"
|
||||
// | "Position": Pos{Line: 5-5 Pos: 80-83}
|
||||
// | "freefloating":
|
||||
// | "Dollar": "$"
|
||||
// | "VarName":
|
||||
// | [*node.Identifier]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 79-82}
|
||||
// | "Position": Pos{Line: 5-5 Pos: 80-83}
|
||||
// | "Value": "var"
|
||||
// | "DefaultValue":
|
||||
// | [*expr.ConstFetch]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 86-89}
|
||||
// | "Meta":
|
||||
// | " " before "NodeStart"
|
||||
// | "Position": Pos{Line: 5-5 Pos: 87-90}
|
||||
// | "freefloating":
|
||||
// | "Start": " "
|
||||
// | "Constant":
|
||||
// | [*name.Name]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 86-89}
|
||||
// | "Position": Pos{Line: 5-5 Pos: 87-90}
|
||||
// | "NamespacedName": "null"
|
||||
// | "Parts":
|
||||
// | [*name.NamePart]
|
||||
// | "Position": Pos{Line: 5-5 Pos: 86-89}
|
||||
// | "Position": Pos{Line: 5-5 Pos: 87-90}
|
||||
// | "Value": "null"
|
||||
// | "Stmt":
|
||||
// | [*stmt.StmtList]
|
||||
// | "Position": Pos{Line: 6-9 Pos: 96-134}
|
||||
// | "Meta":
|
||||
// | "\n\t\t\t\t" before "NodeStart"
|
||||
// | "\n\t\t\t\t" before "CloseCurlyBracesToken"
|
||||
// | "Position": Pos{Line: 6-9 Pos: 97-135}
|
||||
// | "freefloating":
|
||||
// | "Start": "\n\t\t\t\t"
|
||||
// | "Stmts": "\n\t\t\t\t"
|
||||
// | "Stmts":
|
||||
// | [*stmt.Expression]
|
||||
// | "Position": Pos{Line: 8-8 Pos: 124-128}
|
||||
// | "Meta":
|
||||
// | "\n\t\t\t\t\t" before "NodeStart"
|
||||
// | "// some comment\n" before "NodeStart"
|
||||
// | "\t\t\t\t\t" before "NodeStart"
|
||||
// | ";" before "SemiColonToken"
|
||||
// | "Position": Pos{Line: 8-8 Pos: 125-129}
|
||||
// | "freefloating":
|
||||
// | "SemiColon": ";"
|
||||
// | "Start": "\n\t\t\t\t\t"
|
||||
// | "Start": "// some comment\n"
|
||||
// | "Start": "\t\t\t\t\t"
|
||||
// | "Expr":
|
||||
// | [*expr.Variable]
|
||||
// | "Position": Pos{Line: 8-8 Pos: 124-127}
|
||||
// | "Meta":
|
||||
// | "$" before "NodeStart"
|
||||
// | "Position": Pos{Line: 8-8 Pos: 125-128}
|
||||
// | "freefloating":
|
||||
// | "Dollar": "$"
|
||||
// | "VarName":
|
||||
// | [*node.Identifier]
|
||||
// | "Position": Pos{Line: 8-8 Pos: 124-127}
|
||||
// | "Position": Pos{Line: 8-8 Pos: 125-128}
|
||||
// | "Value": "var"
|
||||
}
|
||||
|
||||
@@ -7,10 +7,8 @@ import (
|
||||
"reflect"
|
||||
"strings"
|
||||
|
||||
"github.com/z7zmey/php-parser/meta"
|
||||
|
||||
"github.com/z7zmey/php-parser/freefloating"
|
||||
"github.com/z7zmey/php-parser/node"
|
||||
|
||||
"github.com/z7zmey/php-parser/walker"
|
||||
)
|
||||
|
||||
@@ -61,51 +59,59 @@ func (d *GoDumper) EnterNode(w walker.Walkable) bool {
|
||||
fmt.Fprint(d.Writer, "},\n")
|
||||
}
|
||||
|
||||
if mm := n.GetMeta(); len(*mm) > 0 {
|
||||
if !n.GetFreeFloating().IsEmpty() {
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprint(d.Writer, "Meta: meta.Collection{\n")
|
||||
fmt.Fprint(d.Writer, "FreeFloating: freefloating.Collection{\n")
|
||||
d.depth++
|
||||
for _, m := range *mm {
|
||||
for key, freeFloatingStrings := range *n.GetFreeFloating() {
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprint(d.Writer, "&meta.Data{\n")
|
||||
fmt.Fprintf(d.Writer, "%q: []freefloating.String{\n", key)
|
||||
d.depth++
|
||||
|
||||
printIndent(d.Writer, d.depth)
|
||||
|
||||
switch m.Type {
|
||||
case meta.CommentType:
|
||||
fmt.Fprint(d.Writer, "Type: meta.CommentType,\n")
|
||||
case meta.WhiteSpaceType:
|
||||
fmt.Fprint(d.Writer, "Type: meta.WhiteSpaceType,\n")
|
||||
case meta.TokenType:
|
||||
fmt.Fprint(d.Writer, "Type: meta.TokenType,\n")
|
||||
}
|
||||
|
||||
printIndent(d.Writer, d.depth)
|
||||
|
||||
if m.Position != nil {
|
||||
fmt.Fprint(d.Writer, "Position: &position.Position{\n")
|
||||
for _, freeFloatingString := range freeFloatingStrings {
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprint(d.Writer, "freefloating.String{\n")
|
||||
d.depth++
|
||||
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "StartLine: %d,\n", m.Position.StartLine)
|
||||
|
||||
switch freeFloatingString.StringType {
|
||||
case freefloating.CommentType:
|
||||
fmt.Fprint(d.Writer, "Type: freefloating.CommentType,\n")
|
||||
case freefloating.WhiteSpaceType:
|
||||
fmt.Fprint(d.Writer, "Type: freefloating.WhiteSpaceType,\n")
|
||||
case freefloating.TokenType:
|
||||
fmt.Fprint(d.Writer, "Type: freefloating.TokenType,\n")
|
||||
}
|
||||
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "EndLine: %d,\n", m.Position.EndLine)
|
||||
|
||||
if freeFloatingString.Position != nil {
|
||||
fmt.Fprint(d.Writer, "Position: &position.Position{\n")
|
||||
d.depth++
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "StartLine: %d,\n", freeFloatingString.Position.StartLine)
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "EndLine: %d,\n", freeFloatingString.Position.EndLine)
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "StartPos: %d,\n", freeFloatingString.Position.StartPos)
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "EndPos: %d,\n", freeFloatingString.Position.EndPos)
|
||||
d.depth--
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprint(d.Writer, "},\n")
|
||||
} else {
|
||||
fmt.Fprint(d.Writer, "Position: nil,\n")
|
||||
}
|
||||
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "StartPos: %d,\n", m.Position.StartPos)
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "EndPos: %d,\n", m.Position.EndPos)
|
||||
fmt.Fprintf(d.Writer, "Value: %q,\n", freeFloatingString.Value)
|
||||
|
||||
d.depth--
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprint(d.Writer, "},\n")
|
||||
} else {
|
||||
fmt.Fprint(d.Writer, "Position: nil,\n")
|
||||
}
|
||||
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "Value: %q,\n", m.String())
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprintf(d.Writer, "TokenName: meta.%s,\n", m.TokenName.String())
|
||||
|
||||
d.depth--
|
||||
printIndent(d.Writer, d.depth)
|
||||
fmt.Fprint(d.Writer, "},\n")
|
||||
|
||||
@@ -50,50 +50,40 @@ func ExampleGoDumper() {
|
||||
// StartPos: 10,
|
||||
// EndPos: 143,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.TokenType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 1,
|
||||
// EndLine: 1,
|
||||
// StartPos: 1,
|
||||
// EndPos: 5,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Stmts": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 10,
|
||||
// EndLine: 11,
|
||||
// StartPos: 140,
|
||||
// EndPos: 142,
|
||||
// },
|
||||
// Value: "\n\t\t",
|
||||
// },
|
||||
// Value: "<?php",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 1,
|
||||
// EndLine: 3,
|
||||
// StartPos: 6,
|
||||
// EndPos: 9,
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.TokenType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 1,
|
||||
// EndLine: 1,
|
||||
// StartPos: 1,
|
||||
// EndPos: 5,
|
||||
// },
|
||||
// Value: "<?php",
|
||||
// },
|
||||
// Value: "\n\n\t\t",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 3,
|
||||
// EndLine: 3,
|
||||
// StartPos: 23,
|
||||
// EndPos: 23,
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 1,
|
||||
// EndLine: 3,
|
||||
// StartPos: 6,
|
||||
// EndPos: 9,
|
||||
// },
|
||||
// Value: "\n\n\t\t",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.OpenCurlyBracesToken,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 10,
|
||||
// EndLine: 11,
|
||||
// StartPos: 140,
|
||||
// EndPos: 142,
|
||||
// },
|
||||
// Value: "\n\t\t",
|
||||
// TokenName: meta.CloseCurlyBracesToken,
|
||||
// },
|
||||
// },
|
||||
// NamespaceName: &name.Name{
|
||||
@@ -103,6 +93,32 @@ func ExampleGoDumper() {
|
||||
// StartPos: 20,
|
||||
// EndPos: 22,
|
||||
// },
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 3,
|
||||
// EndLine: 3,
|
||||
// StartPos: 19,
|
||||
// EndPos: 19,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// },
|
||||
// "End": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 3,
|
||||
// EndLine: 3,
|
||||
// StartPos: 23,
|
||||
// EndPos: 23,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// Parts: []node.Node{
|
||||
// &name.NamePart{
|
||||
// Position: &position.Position{
|
||||
@@ -111,19 +127,6 @@ func ExampleGoDumper() {
|
||||
// StartPos: 20,
|
||||
// EndPos: 22,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 3,
|
||||
// EndLine: 3,
|
||||
// StartPos: 19,
|
||||
// EndPos: 19,
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// },
|
||||
// Value: "Foo",
|
||||
// },
|
||||
// },
|
||||
@@ -136,39 +139,42 @@ func ExampleGoDumper() {
|
||||
// StartPos: 29,
|
||||
// EndPos: 139,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 3,
|
||||
// EndLine: 4,
|
||||
// StartPos: 25,
|
||||
// EndPos: 28,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 3,
|
||||
// EndLine: 4,
|
||||
// StartPos: 25,
|
||||
// EndPos: 28,
|
||||
// },
|
||||
// Value: "\n\t\t\t",
|
||||
// },
|
||||
// Value: "\n\t\t\t",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 4,
|
||||
// EndLine: 4,
|
||||
// StartPos: 38,
|
||||
// EndPos: 38,
|
||||
// "Name": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 4,
|
||||
// EndLine: 4,
|
||||
// StartPos: 38,
|
||||
// EndPos: 38,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.OpenCurlyBracesToken,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 9,
|
||||
// EndLine: 10,
|
||||
// StartPos: 135,
|
||||
// EndPos: 138,
|
||||
// "Stmts": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 9,
|
||||
// EndLine: 10,
|
||||
// StartPos: 135,
|
||||
// EndPos: 138,
|
||||
// },
|
||||
// Value: "\n\t\t\t",
|
||||
// },
|
||||
// Value: "\n\t\t\t",
|
||||
// TokenName: meta.CloseCurlyBracesToken,
|
||||
// },
|
||||
// },
|
||||
// PhpDocComment: "",
|
||||
@@ -179,17 +185,18 @@ func ExampleGoDumper() {
|
||||
// StartPos: 35,
|
||||
// EndPos: 37,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 4,
|
||||
// EndLine: 4,
|
||||
// StartPos: 34,
|
||||
// EndPos: 34,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 4,
|
||||
// EndLine: 4,
|
||||
// StartPos: 34,
|
||||
// EndPos: 34,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// },
|
||||
// Value: "Bar",
|
||||
@@ -202,42 +209,34 @@ func ExampleGoDumper() {
|
||||
// StartPos: 45,
|
||||
// EndPos: 134,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 4,
|
||||
// EndLine: 5,
|
||||
// StartPos: 40,
|
||||
// EndPos: 44,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 4,
|
||||
// EndLine: 5,
|
||||
// StartPos: 40,
|
||||
// EndPos: 44,
|
||||
// },
|
||||
// Value: "\n\t\t\t\t",
|
||||
// },
|
||||
// Value: "\n\t\t\t\t",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 51,
|
||||
// EndPos: 51,
|
||||
// "ModifierList": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 51,
|
||||
// EndPos: 51,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.FunctionToken,
|
||||
// },
|
||||
// },
|
||||
// PhpDocComment: "",
|
||||
// ReturnsRef: false,
|
||||
// MethodName: &node.Identifier{
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 61,
|
||||
// EndPos: 72,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// "Function": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
@@ -245,9 +244,18 @@ func ExampleGoDumper() {
|
||||
// EndPos: 60,
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// ReturnsRef: false,
|
||||
// PhpDocComment: "",
|
||||
// MethodName: &node.Identifier{
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 61,
|
||||
// EndPos: 72,
|
||||
// },
|
||||
// Value: "FunctionName",
|
||||
// },
|
||||
// Modifiers: []node.Node{
|
||||
@@ -269,17 +277,30 @@ func ExampleGoDumper() {
|
||||
// StartPos: 74,
|
||||
// EndPos: 89,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 83,
|
||||
// EndPos: 83,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "OptionalType": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 78,
|
||||
// EndPos: 78,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// },
|
||||
// "Var": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 83,
|
||||
// EndPos: 83,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.EqualToken,
|
||||
// },
|
||||
// },
|
||||
// ByRef: false,
|
||||
@@ -310,23 +331,18 @@ func ExampleGoDumper() {
|
||||
// StartPos: 79,
|
||||
// EndPos: 82,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 78,
|
||||
// EndPos: 78,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Dollar": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.TokenType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 79,
|
||||
// EndPos: 80,
|
||||
// },
|
||||
// Value: "$",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.TokenType,
|
||||
// Position: nil,
|
||||
// Value: "$",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// },
|
||||
// VarName: &node.Identifier{
|
||||
@@ -346,17 +362,18 @@ func ExampleGoDumper() {
|
||||
// StartPos: 86,
|
||||
// EndPos: 89,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 85,
|
||||
// EndPos: 85,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 5,
|
||||
// StartPos: 85,
|
||||
// EndPos: 85,
|
||||
// },
|
||||
// Value: " ",
|
||||
// },
|
||||
// Value: " ",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// },
|
||||
// Constant: &name.Name{
|
||||
@@ -388,28 +405,30 @@ func ExampleGoDumper() {
|
||||
// StartPos: 96,
|
||||
// EndPos: 134,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 6,
|
||||
// StartPos: 91,
|
||||
// EndPos: 95,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Stmts": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 9,
|
||||
// StartPos: 129,
|
||||
// EndPos: 133,
|
||||
// },
|
||||
// Value: "\n\t\t\t\t",
|
||||
// },
|
||||
// Value: "\n\t\t\t\t",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 9,
|
||||
// StartPos: 129,
|
||||
// EndPos: 133,
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 5,
|
||||
// EndLine: 6,
|
||||
// StartPos: 91,
|
||||
// EndPos: 95,
|
||||
// },
|
||||
// Value: "\n\t\t\t\t",
|
||||
// },
|
||||
// Value: "\n\t\t\t\t",
|
||||
// TokenName: meta.CloseCurlyBracesToken,
|
||||
// },
|
||||
// },
|
||||
// Stmts: []node.Node{
|
||||
@@ -420,50 +439,50 @@ func ExampleGoDumper() {
|
||||
// StartPos: 124,
|
||||
// EndPos: 128,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 6,
|
||||
// EndLine: 7,
|
||||
// StartPos: 97,
|
||||
// EndPos: 102,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Start": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 6,
|
||||
// EndLine: 7,
|
||||
// StartPos: 97,
|
||||
// EndPos: 102,
|
||||
// },
|
||||
// Value: "\n\t\t\t\t\t",
|
||||
// },
|
||||
// freefloating.String{
|
||||
// Type: freefloating.CommentType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 7,
|
||||
// EndLine: 7,
|
||||
// StartPos: 103,
|
||||
// EndPos: 118,
|
||||
// },
|
||||
// Value: "// some comment\n",
|
||||
// },
|
||||
// freefloating.String{
|
||||
// Type: freefloating.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 8,
|
||||
// StartPos: 119,
|
||||
// EndPos: 123,
|
||||
// },
|
||||
// Value: "\t\t\t\t\t",
|
||||
// },
|
||||
// Value: "\n\t\t\t\t\t",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.CommentType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 7,
|
||||
// EndLine: 7,
|
||||
// StartPos: 103,
|
||||
// EndPos: 118,
|
||||
// "SemiColon": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.TokenType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 8,
|
||||
// StartPos: 128,
|
||||
// EndPos: 128,
|
||||
// },
|
||||
// Value: ";",
|
||||
// },
|
||||
// Value: "// some comment\n",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.WhiteSpaceType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 8,
|
||||
// StartPos: 119,
|
||||
// EndPos: 123,
|
||||
// },
|
||||
// Value: "\t\t\t\t\t",
|
||||
// TokenName: meta.NodeStart,
|
||||
// },
|
||||
// &meta.Data{
|
||||
// Type: meta.TokenType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 8,
|
||||
// StartPos: 128,
|
||||
// EndPos: 128,
|
||||
// },
|
||||
// Value: ";",
|
||||
// TokenName: meta.SemiColonToken,
|
||||
// },
|
||||
// },
|
||||
// Expr: &expr.Variable{
|
||||
@@ -473,12 +492,18 @@ func ExampleGoDumper() {
|
||||
// StartPos: 124,
|
||||
// EndPos: 127,
|
||||
// },
|
||||
// Meta: meta.Collection{
|
||||
// &meta.Data{
|
||||
// Type: meta.TokenType,
|
||||
// Position: nil,
|
||||
// Value: "$",
|
||||
// TokenName: meta.NodeStart,
|
||||
// FreeFloating: freefloating.Collection{
|
||||
// "Dollar": []freefloating.String{
|
||||
// freefloating.String{
|
||||
// Type: freefloating.TokenType,
|
||||
// Position: &position.Position{
|
||||
// StartLine: 8,
|
||||
// EndLine: 8,
|
||||
// StartPos: 124,
|
||||
// EndPos: 125,
|
||||
// },
|
||||
// Value: "$",
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// VarName: &node.Identifier{
|
||||
|
||||
@@ -7,10 +7,8 @@ import (
|
||||
"reflect"
|
||||
"sort"
|
||||
|
||||
"github.com/z7zmey/php-parser/meta"
|
||||
|
||||
"github.com/z7zmey/php-parser/freefloating"
|
||||
"github.com/z7zmey/php-parser/node"
|
||||
|
||||
"github.com/z7zmey/php-parser/walker"
|
||||
)
|
||||
|
||||
@@ -43,25 +41,48 @@ func (d *JsonDumper) EnterNode(w walker.Walkable) bool {
|
||||
}
|
||||
}
|
||||
|
||||
if mm := n.GetMeta(); len(*mm) > 0 {
|
||||
fmt.Fprintf(d.Writer, ",%q:[", "meta")
|
||||
if !n.GetFreeFloating().IsEmpty() {
|
||||
fmt.Fprintf(d.Writer, ",%q:{", "freefloating")
|
||||
|
||||
for k, m := range *mm {
|
||||
if k != 0 {
|
||||
fmt.Fprint(d.Writer, ",")
|
||||
}
|
||||
|
||||
switch m.Type {
|
||||
case meta.CommentType:
|
||||
fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.CommentType", "value", m.String(), "tokenName", m.TokenName.String())
|
||||
case meta.WhiteSpaceType:
|
||||
fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.WhiteSpaceType", "value", m.String(), "tokenName", m.TokenName.String())
|
||||
case meta.TokenType:
|
||||
fmt.Fprintf(d.Writer, "{%q:%q,%q:%q,%q:%q}", "type", "*meta.TokenType", "value", m.String(), "tokenName", m.TokenName.String())
|
||||
}
|
||||
var freefloatingStringsKeys []int
|
||||
for key := range *n.GetFreeFloating() {
|
||||
freefloatingStringsKeys = append(freefloatingStringsKeys, int(key))
|
||||
}
|
||||
|
||||
fmt.Fprint(d.Writer, "]")
|
||||
sort.Ints(freefloatingStringsKeys)
|
||||
|
||||
i := 0
|
||||
for _, k := range freefloatingStringsKeys {
|
||||
key := freefloating.Position(k)
|
||||
freeFloatingStrings := (*n.GetFreeFloating())[key]
|
||||
if i != 0 {
|
||||
fmt.Fprint(d.Writer, ",")
|
||||
}
|
||||
i++
|
||||
|
||||
fmt.Fprintf(d.Writer, "%q: [", key.String())
|
||||
|
||||
j := 0
|
||||
for _, freeFloatingString := range freeFloatingStrings {
|
||||
if j != 0 {
|
||||
fmt.Fprint(d.Writer, ",")
|
||||
}
|
||||
j++
|
||||
|
||||
switch freeFloatingString.StringType {
|
||||
case freefloating.CommentType:
|
||||
fmt.Fprintf(d.Writer, "{%q:%q,%q:%q}", "type", "freefloating.CommentType", "value", freeFloatingString.Value)
|
||||
case freefloating.WhiteSpaceType:
|
||||
fmt.Fprintf(d.Writer, "{%q:%q,%q:%q}", "type", "freefloating.WhiteSpaceType", "value", freeFloatingString.Value)
|
||||
case freefloating.TokenType:
|
||||
fmt.Fprintf(d.Writer, "{%q:%q,%q:%q}", "type", "freefloating.TokenType", "value", freeFloatingString.Value)
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Fprint(d.Writer, "]")
|
||||
}
|
||||
|
||||
fmt.Fprint(d.Writer, "}")
|
||||
}
|
||||
|
||||
if a := n.Attributes(); len(a) > 0 {
|
||||
|
||||
@@ -37,5 +37,5 @@ func ExampleJsonDumper() {
|
||||
nodes.Walk(dumper)
|
||||
|
||||
// Output:
|
||||
// {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"meta":[{"type":"*meta.TokenType","value":"<?php","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":"\n\n\t\t","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"OpenCurlyBracesToken"},{"type":"*meta.WhiteSpaceType","value":"\n\t\t","tokenName":"CloseCurlyBracesToken"}],"NamespaceName":{"type":"*name.Name","position":{"startPos":20,"endPos":22,"startLine":3,"endLine":3},"Parts":[{"type":"*name.NamePart","position":{"startPos":20,"endPos":22,"startLine":3,"endLine":3},"meta":[{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"NodeStart"}],"Value":"Foo"}]},"Stmts":[{"type":"*stmt.Class","position":{"startPos":29,"endPos":162,"startLine":4,"endLine":11},"namespacedName":"Foo\\Bar","meta":[{"type":"*meta.WhiteSpaceType","value":"\n\t\t\t","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"OpenCurlyBracesToken"},{"type":"*meta.WhiteSpaceType","value":"\n\t\t\t","tokenName":"CloseCurlyBracesToken"}],"PhpDocComment":"","ClassName":{"type":"*node.Identifier","position":{"startPos":35,"endPos":37,"startLine":4,"endLine":4},"meta":[{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"NodeStart"}],"Value":"Bar"},"Stmts":[{"type":"*stmt.ClassMethod","position":{"startPos":45,"endPos":157,"startLine":5,"endLine":10},"meta":[{"type":"*meta.WhiteSpaceType","value":"\n\t\t\t\t","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"FunctionToken"}],"PhpDocComment":"","ReturnsRef":false,"MethodName":{"type":"*node.Identifier","position":{"startPos":61,"endPos":72,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"NodeStart"}],"Value":"FunctionName"},"Modifiers":[{"type":"*node.Identifier","position":{"startPos":45,"endPos":50,"startLine":5,"endLine":5},"Value":"public"}],"Params":[{"type":"*node.Parameter","position":{"startPos":74,"endPos":89,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"EqualToken"}],"ByRef":false,"Variadic":false,"VariableType":{"type":"*name.Name","position":{"startPos":74,"endPos":77,"startLine":5,"endLine":5},"namespacedName":"Foo\\Type","Parts":[{"type":"*name.NamePart","position":{"startPos":74,"endPos":77,"startLine":5,"endLine":5},"Value":"Type"}]},"Variable":{"type":"*expr.Variable","position":{"startPos":79,"endPos":82,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"NodeStart"},{"type":"*meta.TokenType","value":"$","tokenName":"NodeStart"}],"VarName":{"type":"*node.Identifier","position":{"startPos":79,"endPos":82,"startLine":5,"endLine":5},"Value":"var"}},"DefaultValue":{"type":"*expr.ConstFetch","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"meta":[{"type":"*meta.WhiteSpaceType","value":" ","tokenName":"NodeStart"}],"Constant":{"type":"*name.Name","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"namespacedName":"null","Parts":[{"type":"*name.NamePart","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"Value":"null"}]}}}],"Stmt":{"type":"*stmt.StmtList","position":{"startPos":96,"endPos":157,"startLine":6,"endLine":10},"meta":[{"type":"*meta.WhiteSpaceType","value":"\n\t\t\t\t","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":"\n\t\t\t\t","tokenName":"CloseCurlyBracesToken"}],"Stmts":[{"type":"*stmt.Expression","position":{"startPos":147,"endPos":151,"startLine":9,"endLine":9},"meta":[{"type":"*meta.WhiteSpaceType","value":"\n\t\t\t\t\t","tokenName":"NodeStart"},{"type":"*meta.CommentType","value":"// some comment\n","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":"\t\t\t\t\t","tokenName":"NodeStart"},{"type":"*meta.CommentType","value":"// second comment\n","tokenName":"NodeStart"},{"type":"*meta.WhiteSpaceType","value":"\t\t\t\t\t","tokenName":"NodeStart"},{"type":"*meta.TokenType","value":";","tokenName":"SemiColonToken"}],"Expr":{"type":"*expr.Variable","position":{"startPos":147,"endPos":150,"startLine":9,"endLine":9},"meta":[{"type":"*meta.TokenType","value":"$","tokenName":"NodeStart"}],"VarName":{"type":"*node.Identifier","position":{"startPos":147,"endPos":150,"startLine":9,"endLine":9},"Value":"var"}}}]}}]}]}]}
|
||||
// {"type":"*node.Root","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"Stmts":[{"type":"*stmt.Namespace","position":{"startPos":10,"endPos":166,"startLine":3,"endLine":12},"freefloating":{"Start": [{"type":"freefloating.TokenType","value":"<?php"},{"type":"freefloating.WhiteSpaceType","value":"\n\n\t\t"}],"Stmts": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t"}]},"NamespaceName":{"type":"*name.Name","position":{"startPos":20,"endPos":22,"startLine":3,"endLine":3},"freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":" "}],"End": [{"type":"freefloating.WhiteSpaceType","value":" "}]},"Parts":[{"type":"*name.NamePart","position":{"startPos":20,"endPos":22,"startLine":3,"endLine":3},"Value":"Foo"}]},"Stmts":[{"type":"*stmt.Class","position":{"startPos":29,"endPos":162,"startLine":4,"endLine":11},"namespacedName":"Foo\\Bar","freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t\t"}],"Name": [{"type":"freefloating.WhiteSpaceType","value":" "}],"Stmts": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t\t"}]},"PhpDocComment":"","ClassName":{"type":"*node.Identifier","position":{"startPos":35,"endPos":37,"startLine":4,"endLine":4},"freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":" "}]},"Value":"Bar"},"Stmts":[{"type":"*stmt.ClassMethod","position":{"startPos":45,"endPos":157,"startLine":5,"endLine":10},"freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t\t\t"}],"Function": [{"type":"freefloating.WhiteSpaceType","value":" "}],"ModifierList": [{"type":"freefloating.WhiteSpaceType","value":" "}]},"PhpDocComment":"","ReturnsRef":false,"MethodName":{"type":"*node.Identifier","position":{"startPos":61,"endPos":72,"startLine":5,"endLine":5},"Value":"FunctionName"},"Modifiers":[{"type":"*node.Identifier","position":{"startPos":45,"endPos":50,"startLine":5,"endLine":5},"Value":"public"}],"Params":[{"type":"*node.Parameter","position":{"startPos":74,"endPos":89,"startLine":5,"endLine":5},"freefloating":{"Var": [{"type":"freefloating.WhiteSpaceType","value":" "}],"OptionalType": [{"type":"freefloating.WhiteSpaceType","value":" "}]},"ByRef":false,"Variadic":false,"VariableType":{"type":"*name.Name","position":{"startPos":74,"endPos":77,"startLine":5,"endLine":5},"namespacedName":"Foo\\Type","Parts":[{"type":"*name.NamePart","position":{"startPos":74,"endPos":77,"startLine":5,"endLine":5},"Value":"Type"}]},"Variable":{"type":"*expr.Variable","position":{"startPos":79,"endPos":82,"startLine":5,"endLine":5},"freefloating":{"Dollar": [{"type":"freefloating.TokenType","value":"$"}]},"VarName":{"type":"*node.Identifier","position":{"startPos":79,"endPos":82,"startLine":5,"endLine":5},"Value":"var"}},"DefaultValue":{"type":"*expr.ConstFetch","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":" "}]},"Constant":{"type":"*name.Name","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"namespacedName":"null","Parts":[{"type":"*name.NamePart","position":{"startPos":86,"endPos":89,"startLine":5,"endLine":5},"Value":"null"}]}}}],"Stmt":{"type":"*stmt.StmtList","position":{"startPos":96,"endPos":157,"startLine":6,"endLine":10},"freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t\t\t"}],"Stmts": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t\t\t"}]},"Stmts":[{"type":"*stmt.Expression","position":{"startPos":147,"endPos":151,"startLine":9,"endLine":9},"freefloating":{"Start": [{"type":"freefloating.WhiteSpaceType","value":"\n\t\t\t\t\t"},{"type":"freefloating.CommentType","value":"// some comment\n"},{"type":"freefloating.WhiteSpaceType","value":"\t\t\t\t\t"},{"type":"freefloating.CommentType","value":"// second comment\n"},{"type":"freefloating.WhiteSpaceType","value":"\t\t\t\t\t"}],"SemiColon": [{"type":"freefloating.TokenType","value":";"}]},"Expr":{"type":"*expr.Variable","position":{"startPos":147,"endPos":150,"startLine":9,"endLine":9},"freefloating":{"Dollar": [{"type":"freefloating.TokenType","value":"$"}]},"VarName":{"type":"*node.Identifier","position":{"startPos":147,"endPos":150,"startLine":9,"endLine":9},"Value":"var"}}}]}}]}]}]}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"io"
|
||||
"reflect"
|
||||
|
||||
"github.com/z7zmey/php-parser/meta"
|
||||
"github.com/z7zmey/php-parser/freefloating"
|
||||
"github.com/z7zmey/php-parser/node"
|
||||
"github.com/z7zmey/php-parser/walker"
|
||||
)
|
||||
@@ -82,40 +82,57 @@ func (d *PrettyJsonDumper) EnterNode(w walker.Walkable) bool {
|
||||
}
|
||||
}
|
||||
|
||||
if mm := n.GetMeta(); len(*mm) > 0 {
|
||||
if !n.GetFreeFloating().IsEmpty() {
|
||||
fmt.Fprint(d.Writer, ",\n")
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprint(d.Writer, "\"meta\": [\n")
|
||||
fmt.Fprint(d.Writer, "\"freefloating\": {\n")
|
||||
d.depth++
|
||||
for k, m := range *mm {
|
||||
if k != 0 {
|
||||
i := 0
|
||||
for key, freeFloatingStrings := range *n.GetFreeFloating() {
|
||||
if i != 0 {
|
||||
fmt.Fprint(d.Writer, ",\n")
|
||||
}
|
||||
i++
|
||||
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprint(d.Writer, "{\n")
|
||||
fmt.Fprintf(d.Writer, "%q: [\n", key)
|
||||
d.depth++
|
||||
d.printIndent(d.Writer)
|
||||
switch m.Type {
|
||||
case meta.CommentType:
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.CommentType")
|
||||
case meta.WhiteSpaceType:
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.WhiteSpaceType")
|
||||
case meta.TokenType:
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "*meta.TokenType")
|
||||
|
||||
j := 0
|
||||
for _, freeFloatingString := range freeFloatingStrings {
|
||||
if j != 0 {
|
||||
fmt.Fprint(d.Writer, ",\n")
|
||||
}
|
||||
j++
|
||||
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprint(d.Writer, "{\n")
|
||||
d.depth++
|
||||
d.printIndent(d.Writer)
|
||||
switch freeFloatingString.StringType {
|
||||
case freefloating.CommentType:
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "freefloating.CommentType")
|
||||
case freefloating.WhiteSpaceType:
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "freefloating.WhiteSpaceType")
|
||||
case freefloating.TokenType:
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "type", "freefloating.TokenType")
|
||||
}
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprintf(d.Writer, "%q: %q\n", "value", freeFloatingString.Value)
|
||||
d.depth--
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprint(d.Writer, "}")
|
||||
}
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprintf(d.Writer, "%q: %q,\n", "value", m.String())
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprintf(d.Writer, "%q: %q\n", "tokenName", m.TokenName.String())
|
||||
|
||||
d.depth--
|
||||
fmt.Fprint(d.Writer, "\n")
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprint(d.Writer, "}")
|
||||
fmt.Fprint(d.Writer, "]")
|
||||
}
|
||||
d.depth--
|
||||
fmt.Fprint(d.Writer, "\n")
|
||||
d.printIndent(d.Writer)
|
||||
fmt.Fprint(d.Writer, "]")
|
||||
fmt.Fprint(d.Writer, "}")
|
||||
}
|
||||
|
||||
if a := n.Attributes(); len(a) > 0 {
|
||||
|
||||
@@ -47,13 +47,14 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 3,
|
||||
// "endLine": 16
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t",
|
||||
// "tokenName": "NodeEnd"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "End": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "Stmts": [
|
||||
// {
|
||||
// "type": "*stmt.Namespace",
|
||||
@@ -63,28 +64,24 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 3,
|
||||
// "endLine": 16
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.TokenType",
|
||||
// "value": "<?php",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\n\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "OpenCurlyBracesToken"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t",
|
||||
// "tokenName": "CloseCurlyBracesToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.TokenType",
|
||||
// "value": "<?php"
|
||||
// },
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\n\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "Stmts": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "NamespaceName": {
|
||||
// "type": "*name.Name",
|
||||
// "position": {
|
||||
@@ -93,6 +90,20 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 3,
|
||||
// "endLine": 3
|
||||
// },
|
||||
// "freefloating": {
|
||||
// "End": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "Parts": [
|
||||
// {
|
||||
// "type": "*name.NamePart",
|
||||
@@ -102,13 +113,6 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 3,
|
||||
// "endLine": 3
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "Value": "Foo"
|
||||
// }
|
||||
// ]
|
||||
@@ -123,23 +127,26 @@ func ExamplePrettyJsonDumper() {
|
||||
// "endLine": 11
|
||||
// },
|
||||
// "namespacedName": "Foo\\Bar",
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "OpenCurlyBracesToken"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t",
|
||||
// "tokenName": "CloseCurlyBracesToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "Name": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Stmts": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "PhpDocComment": "",
|
||||
// "ClassName": {
|
||||
// "type": "*node.Identifier",
|
||||
@@ -149,13 +156,14 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 4,
|
||||
// "endLine": 4
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "Value": "Bar"
|
||||
// },
|
||||
// "Stmts": [
|
||||
@@ -167,18 +175,32 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 5,
|
||||
// "endLine": 10
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "FunctionToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "ModifierList": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Function": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Name": [
|
||||
|
||||
// ],
|
||||
// "ParameterList": [
|
||||
|
||||
// ]
|
||||
// },
|
||||
// "ReturnsRef": false,
|
||||
// "PhpDocComment": "",
|
||||
// "MethodName": {
|
||||
@@ -189,13 +211,6 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 5,
|
||||
// "endLine": 5
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "Value": "FunctionName"
|
||||
// },
|
||||
// "Modifiers": [
|
||||
@@ -219,13 +234,29 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 5,
|
||||
// "endLine": 5
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "EqualToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Ref": [
|
||||
|
||||
// ],
|
||||
// "OptionalType": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Start": [
|
||||
|
||||
// ],
|
||||
// "Variadic": [
|
||||
|
||||
// ],
|
||||
// "Var": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "ByRef": false,
|
||||
// "Variadic": false,
|
||||
// "VariableType": {
|
||||
@@ -258,18 +289,14 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 5,
|
||||
// "endLine": 5
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.TokenType",
|
||||
// "value": "$",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Dollar": [
|
||||
// {
|
||||
// "type": "freefloating.TokenType",
|
||||
// "value": "$"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "VarName": {
|
||||
// "type": "*node.Identifier",
|
||||
// "position": {
|
||||
@@ -289,13 +316,14 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 5,
|
||||
// "endLine": 5
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "Constant": {
|
||||
// "type": "*name.Name",
|
||||
// "position": {
|
||||
@@ -329,18 +357,20 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 6,
|
||||
// "endLine": 10
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t",
|
||||
// "tokenName": "CloseCurlyBracesToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "Stmts": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "Stmts": [
|
||||
// {
|
||||
// "type": "*stmt.Expression",
|
||||
@@ -350,38 +380,39 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 9,
|
||||
// "endLine": 9
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.CommentType",
|
||||
// "value": "// some comment\n",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\t\t\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.CommentType",
|
||||
// "value": "// second comment\n",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\t\t\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.TokenType",
|
||||
// "value": ";",
|
||||
// "tokenName": "SemiColonToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t\t"
|
||||
// },
|
||||
// {
|
||||
// "type": "freefloating.CommentType",
|
||||
// "value": "// some comment\n"
|
||||
// },
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\t\t\t\t\t"
|
||||
// },
|
||||
// {
|
||||
// "type": "freefloating.CommentType",
|
||||
// "value": "// second comment\n"
|
||||
// },
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\t\t\t\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "Expr": [
|
||||
|
||||
// ],
|
||||
// "SemiColon": [
|
||||
// {
|
||||
// "type": "freefloating.TokenType",
|
||||
// "value": ";"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "Expr": {
|
||||
// "type": "*expr.Variable",
|
||||
// "position": {
|
||||
@@ -390,13 +421,17 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 9,
|
||||
// "endLine": 9
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.TokenType",
|
||||
// "value": "$",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
|
||||
// ],
|
||||
// "Dollar": [
|
||||
// {
|
||||
// "type": "freefloating.TokenType",
|
||||
// "value": "$"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "VarName": {
|
||||
// "type": "*node.Identifier",
|
||||
// "position": {
|
||||
@@ -423,23 +458,38 @@ func ExamplePrettyJsonDumper() {
|
||||
// "endLine": 15
|
||||
// },
|
||||
// "namespacedName": "Foo\\foo",
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\n\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "OpenCurlyBracesToken"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t",
|
||||
// "tokenName": "CloseCurlyBracesToken"
|
||||
// }
|
||||
// ],
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\n\t\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "Function": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Name": [
|
||||
|
||||
// ],
|
||||
// "ParamList": [
|
||||
|
||||
// ],
|
||||
// "ReturnType": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": " "
|
||||
// }
|
||||
// ],
|
||||
// "Stmts": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t"
|
||||
// }
|
||||
// ]
|
||||
// },
|
||||
// "ReturnsRef": false,
|
||||
// "PhpDocComment": "",
|
||||
// "FunctionName": {
|
||||
@@ -450,13 +500,6 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 13,
|
||||
// "endLine": 13
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": " ",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ],
|
||||
// "Value": "foo"
|
||||
// },
|
||||
// "Stmts": [
|
||||
@@ -468,18 +511,20 @@ func ExamplePrettyJsonDumper() {
|
||||
// "startLine": 14,
|
||||
// "endLine": 14
|
||||
// },
|
||||
// "meta": [
|
||||
// {
|
||||
// "type": "*meta.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t",
|
||||
// "tokenName": "NodeStart"
|
||||
// },
|
||||
// {
|
||||
// "type": "*meta.TokenType",
|
||||
// "value": ";",
|
||||
// "tokenName": "NodeStart"
|
||||
// }
|
||||
// ]
|
||||
// "freefloating": {
|
||||
// "Start": [
|
||||
// {
|
||||
// "type": "freefloating.WhiteSpaceType",
|
||||
// "value": "\n\t\t\t\t"
|
||||
// }
|
||||
// ],
|
||||
// "SemiColon": [
|
||||
// {
|
||||
// "type": "freefloating.TokenType",
|
||||
// "value": ";"
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user