php-parser/visitor/go_dumper_test.go
2018-06-19 22:56:52 +03:00

112 lines
2.3 KiB
Go

//Package visitor contains walker.visitor implementations
package visitor_test
import (
"bytes"
"os"
"github.com/z7zmey/php-parser/php7"
"github.com/z7zmey/php-parser/visitor"
)
func ExampleGoDumper() {
src := `<?php
namespace Foo {
class Bar {
public function FunctionName(Type $var = null)
{
//some comment
$var;
}
}
}`
php7parser := php7.NewParser(bytes.NewBufferString(src), "test.php")
php7parser.Parse()
nodes := php7parser.GetRootNode()
nsResolver := visitor.NewNamespaceResolver()
nodes.Walk(nsResolver)
dumper := &visitor.GoDumper{
Writer: os.Stdout,
}
nodes.Walk(dumper)
// Unordered output:
//&node.Root{
// Stmts: []node.Node{
// &stmt.Namespace{
// NamespaceName: &name.Name{
// Parts: []node.Node{
// &name.NamePart{
// Value: "Foo",
// },
// },
// },
// Stmts: []node.Node{
// &stmt.Class{
// PhpDocComment: "",
// ClassName: &node.Identifier{
// Value: "Bar",
// },
// Stmts: []node.Node{
// &stmt.ClassMethod{
// ReturnsRef: false,
// PhpDocComment: "",
// MethodName: &node.Identifier{
// Value: "FunctionName",
// },
// Modifiers: []node.Node{
// &node.Identifier{
// Value: "public",
// },
// },
// Params: []node.Node{
// &node.Parameter{
// ByRef: false,
// Variadic: false,
// VariableType: &name.Name{
// Parts: []node.Node{
// &name.NamePart{
// Value: "Type",
// },
// },
// },
// Variable: &expr.Variable{
// VarName: &node.Identifier{
// Value: "var",
// },
// },
// DefaultValue: &expr.ConstFetch{
// Constant: &name.Name{
// Parts: []node.Node{
// &name.NamePart{
// Value: "null",
// },
// },
// },
// },
// },
// },
// Stmt: &stmt.StmtList{
// Stmts: []node.Node{
// &stmt.Expression{
// Expr: &expr.Variable{
// VarName: &node.Identifier{
// Value: "var",
// },
// },
// },
// },
// },
// },
// },
// },
// },
// },
// },
//}
}