Merge pull request #124 from z7zmey/issue-120

[#120] move dog.go from root folder
This commit is contained in:
Vadym Slizov 2021-02-13 22:18:29 +02:00 committed by GitHub
commit 15e7237b45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 86 additions and 79 deletions

View File

@ -37,30 +37,44 @@ Usage example
package main
import (
"fmt"
"log"
"os"
"github.com/z7zmey/php-parser/php7"
"github.com/z7zmey/php-parser/visitor"
"github.com/z7zmey/php-parser/pkg/cfg"
"github.com/z7zmey/php-parser/pkg/errors"
"github.com/z7zmey/php-parser/pkg/parser"
"github.com/z7zmey/php-parser/pkg/version"
"github.com/z7zmey/php-parser/pkg/visitor/dumper"
)
func main() {
src := []byte(`<? echo "Hello world";`)
parser := php7.NewParser(src, "7.4")
parser.Parse()
// Error handler
for _, e := range parser.GetErrors() {
fmt.Println(e)
var parserErrors []*errors.Error
errorHandler := func(e *errors.Error) {
parserErrors = append(parserErrors, e)
}
visitor := visitor.Dumper{
Writer: os.Stdout,
Indent: "",
// Parse
rootNode, err := parser.Parse(src, cfg.Config{
Version: &version.Version{Major: 5, Minor: 6},
ErrorHandlerFunc: errorHandler,
})
if err != nil {
log.Fatal("Error:" + err.Error())
}
rootNode := parser.GetRootNode()
rootNode.Walk(&visitor)
// Dump
goDumper := dumper.NewDumper(os.Stdout).
WithTokens().
WithPositions()
rootNode.Accept(goDumper)
}
```
@ -68,14 +82,13 @@ Roadmap
-------
- Control Flow Graph (CFG)
- PhpDocComment parser
- Stabilize api
- PHP8
Install
-------
```
go get github.com/z7zmey/php-parser
go get github.com/z7zmey/php-parser/cmd/php-parser
```
CLI
@ -86,15 +99,13 @@ php-parser [flags] <path> ...
```
| flag | type | description |
|-------|------|----------------------------------------------|
| ------- | ------ | --------------------------------- |
| -p | bool | print filepath |
| -d |string| dump format: [custom, go, json, pretty-json] |
| -e | bool | print errors |
| -d | bool | dump in golang format |
| -r | bool | resolve names |
| -ff | bool | parse and show free floating strings |
| -prof | string | start profiler: [cpu, mem, trace] |
| -php5 | bool | parse as PHP5 |
Dump AST to stdout.
| -phpver | string | php version (default: 7.4) |
Namespace resolver
------------------

54
doc.go
View File

@ -1,54 +0,0 @@
/*
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/z7zmey/php-parser
CLI dumper:
$GOPATH/bin/php-parser -php5 /path/to/file/or/dir
Package usage example:
package main
import (
"fmt"
"bytes"
"os"
"github.com/z7zmey/php-parser/php7"
"github.com/z7zmey/php-parser/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)
}
*/
package main // import "github.com/z7zmey/php-parser"

50
pkg/parser/doc.go Normal file
View File

@ -0,0 +1,50 @@
/*
A Parser for PHP written in Go
Package usage example:
package main
import (
"log"
"os"
"github.com/z7zmey/php-parser/pkg/cfg"
"github.com/z7zmey/php-parser/pkg/errors"
"github.com/z7zmey/php-parser/pkg/parser"
"github.com/z7zmey/php-parser/pkg/version"
"github.com/z7zmey/php-parser/pkg/visitor/dumper"
)
func main() {
src := []byte(`<? echo "Hello world";`)
// Error handler
var parserErrors []*errors.Error
errorHandler := func(e *errors.Error) {
parserErrors = append(parserErrors, e)
}
// Parse
rootNode, err := parser.Parse(src, cfg.Config{
Version: &version.Version{Major: 5, Minor: 6},
ErrorHandlerFunc: errorHandler,
})
if err != nil {
log.Fatal("Error:" + err.Error())
}
// Dump
goDumper := dumper.NewDumper(os.Stdout).
WithTokens().
WithPositions()
rootNode.Accept(goDumper)
}
*/
package parser