php

Parser for PHP written in Go

  • Owner: stephens2424/php
  • Platform:
  • License:: BSD 3-Clause "New" or "Revised" License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

php

Parser for PHP written in Go

See this post for an introduction.

Build Status GoDoc

Test console:

console

Project Status

This project is under heavy development, though some pieces are more or less stable. Listed here are components that in progress or are ideas for future development

Feature, Status
------------------------------, ------
Lexer and Parser, mostly complete. there are probably a few gaps still
Scoping, complete for simple cases. probably some gaps still, most notably that conditional definitions are treated as if they are always defined
Code search and symbol lookup, basic idea implemented, many many details missing
Code formatting, basic idea implemented, formatting needs to narrow down to PSR-2
Transpilation to Go, basic idea implemented, need follow through with more node types
Type inferencing, not begun
Dead code analysis, basic idea implemented, but only for some types of code. Also, this suffers from the same caveats as scoping

Project Components

Directory, Description
------------------------------, ------
php/ast, (abstract syntax tree) describes the nodes in PHP as parsed by the parser
php/ast/printer, prints an ast back to source code
php/cmd, a tool used to debug the parser
php/lexer, reads a stream of tokens from source code
php/parser, the core parser
php/passes, tools and packages related to modifying or analyzing PHP code (heavily a work in progress)
php/passes/togo, transpiler
php/passes/deadcode, dead code analyzer
php/query, tools and packages related to analyzing and finding things in PHP code (heavily a work in progress)
php/testdata, simple examples of PHP that must parse with no errors for tests to pass
php/token, describes the tokens read by the lexer

Main metrics

Overview
Name With Ownerstephens2424/php
Primary LanguageGo
Program languageGo (Language Count: 2)
Platform
License:BSD 3-Clause "New" or "Revised" License
所有者活动
Created At2014-07-27 18:53:24
Pushed At2022-10-16 01:54:12
Last Commit At2022-10-15 21:54:11
Release Count0
用户参与
Stargazers Count527
Watchers Count38
Fork Count75
Commits Count439
Has Issues Enabled
Issues Count28
Issue Open Count15
Pull Requests Count10
Pull Requests Open Count0
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private