php-parser/main.go

46 lines
766 B
Go
Raw Normal View History

2017-12-01 13:29:23 +00:00
package main
import (
2017-12-01 16:04:31 +00:00
"flag"
"fmt"
"log"
2017-12-01 13:29:23 +00:00
"os"
2018-01-09 22:03:53 +00:00
"path/filepath"
2017-12-01 13:29:23 +00:00
2017-12-01 16:04:31 +00:00
"github.com/yookoala/realpath"
2017-12-04 10:40:36 +00:00
"github.com/z7zmey/php-parser/parser"
2017-12-01 16:04:31 +00:00
)
2017-12-01 13:29:23 +00:00
func main() {
2017-12-01 16:04:31 +00:00
flag.Parse()
for _, path := range flag.Args() {
real, err := realpath.Realpath(path)
checkErr(err)
2018-01-09 22:03:53 +00:00
err = filepath.Walk(real, func(path string, f os.FileInfo, err error) error {
if !f.IsDir() && filepath.Ext(path) == ".php" {
fmt.Printf("==> %s\n", path)
2017-12-18 22:55:57 +00:00
2018-01-09 22:03:53 +00:00
src, _ := os.Open(string(path))
nodes, comments, positions := parser.Parse(src, path)
2018-01-17 16:58:45 +00:00
visitor := Dumper{
2018-01-12 08:04:31 +00:00
Indent: " | ",
Comments: comments,
Positions: positions,
}
2018-01-09 22:03:53 +00:00
nodes.Walk(visitor)
}
return nil
})
checkErr(err)
2017-12-01 14:04:53 +00:00
}
2017-12-01 16:04:31 +00:00
}
func checkErr(err error) {
if err != nil {
log.Fatal(err)
2017-12-01 14:04:53 +00:00
}
}