2018-02-20 17:20:32 +00:00
|
|
|
/*
|
|
|
|
|
2018-02-20 17:33:03 +00:00
|
|
|
A Parser for PHP written in Go
|
|
|
|
|
|
|
|
Features:
|
2018-02-20 17:20:32 +00:00
|
|
|
|
2018-02-20 17:37:42 +00:00
|
|
|
* Fully support PHP5 and PHP7 syntax
|
|
|
|
* Abstract syntax tree representation
|
|
|
|
* Traversing AST
|
2018-02-20 17:36:44 +00:00
|
|
|
|
2018-02-20 17:37:42 +00:00
|
|
|
Install:
|
2018-02-20 17:20:32 +00:00
|
|
|
|
|
|
|
go get github.com/z7zmey/php-parser
|
|
|
|
|
2018-02-20 17:37:42 +00:00
|
|
|
CLI dumper:
|
2018-02-20 17:33:03 +00:00
|
|
|
|
|
|
|
$GOPATH/bin/php-parser -php5 /path/to/file/or/dir
|
|
|
|
|
2018-02-20 17:37:42 +00:00
|
|
|
Package usage example:
|
2018-02-20 17:20:32 +00:00
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
|
|
|
|
"github.com/z7zmey/php-parser/php7"
|
|
|
|
"github.com/z7zmey/php-parser/visitor"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
src := bytes.NewBufferString(`<? echo "Hello world";`)
|
|
|
|
nodes, comments, positions := php7.Parse(src, "example.php")
|
|
|
|
|
|
|
|
visitor := visitor.Dumper{
|
|
|
|
Indent: "",
|
|
|
|
Comments: comments,
|
|
|
|
Positions: positions,
|
|
|
|
}
|
|
|
|
nodes.Walk(visitor)
|
|
|
|
}
|
|
|
|
*/
|
|
|
|
package main // import "github.com/z7zmey/php-parser"
|