Documentation ¶
Overview ¶
A Parser for PHP written in Go
Features:
- Fully support PHP5 and PHP7 syntax
- Abstract syntax tree representation
- Traversing AST
- Namespace resolver
Install:
go get github.com/i582/php2go/src/php
CLI dumper:
$GOPATH/bin/php-parser -php5 /path/to/file/or/dir
Package usage example:
package main import ( "fmt" "bytes" "os" "github.com/i582/php2go/src/php/php7" "github.com/i582/php2go/src/php/visitor" ) func main() { src := bytes.NewBufferString(`<? echo "Hello world";`) parser := php7.NewParser(src, "example.php") parser.Parse() for _, e := range parser.GetErrors() { fmt.Println(e) } visitor := visitor.Dumper{ Writer: os.Stdout, Indent: "", Comments: parser.GetComments(), Positions: parser.GetPositions(), } rootNode := parser.GetRootNode() rootNode.Walk(visitor) }
Directories ¶
Path | Synopsis |
---|---|
line php5/php5.y:2
|
line php5/php5.y:2 |
line php7/php7.y:2
|
line php7/php7.y:2 |
line scanner/scanner.rl:1
|
line scanner/scanner.rl:1 |
Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations
|
Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations Package visitor contains walker.visitor implementations |
Package walker declares walking behavior
|
Package walker declares walking behavior |
Click to show internal directories.
Click to hide internal directories.