func PHPEval(p phpast.Node) goast.Expr { buf := &bytes.Buffer{} pr := printer.NewPrinter(buf) pr.PrintNode(p) return &goast.CallExpr{ Fun: goast.NewIdent("PHPEval"), Args: []goast.Expr{ &goast.BasicLit{Kind: token.STRING, Value: strconv.Quote(buf.String())}, }, } }
func main() { flag.Parse() for _, arg := range flag.Args() { fmt.Println(arg) fmt.Println() src, err := ioutil.ReadFile(arg) if err != nil { fmt.Println(err) continue } p := printer.NewPrinter(os.Stdout) file, err := parser.NewParser().Parse("test.php", string(src)) if err != nil { log.Fatal(err) } for _, node := range file.Nodes { p.PrintNode(node) } } }