All Projects → stephens2424 → Php

stephens2424 / Php

Licence: bsd-3-clause
Parser for PHP written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Php

Omnifocus
Scripts for OmniFocus
Stars: ✭ 316 (-38.76%)
Mutual labels:  parse
Parse Sdk Flutter
A Dart or Flutter plugin for Parse Server... Enjoy!
Stars: ✭ 407 (-21.12%)
Mutual labels:  parse
Yauaa
Yet Another UserAgent Analyzer
Stars: ✭ 472 (-8.53%)
Mutual labels:  parse
Js Quantities
JavaScript library for quantity calculation and unit conversion
Stars: ✭ 335 (-35.08%)
Mutual labels:  parse
Nlp
[UNMANTEINED] Extract values from strings and fill your structs with nlp.
Stars: ✭ 367 (-28.88%)
Mutual labels:  parse
Breakdance
It's time for your markup to get down! HTML to markdown converter. Breakdance is a highly pluggable, flexible and easy to use.
Stars: ✭ 418 (-18.99%)
Mutual labels:  parse
Demoinfocs Golang
High performance CS:GO demo parser for Go (demoinfo)
Stars: ✭ 288 (-44.19%)
Mutual labels:  parse
Argdown
a simple syntax for complex argumentation
Stars: ✭ 508 (-1.55%)
Mutual labels:  parse
Args
Toolkit for building command line interfaces
Stars: ✭ 399 (-22.67%)
Mutual labels:  parse
Pidgin
C#'s fastest parser combinator library
Stars: ✭ 469 (-9.11%)
Mutual labels:  parse
Instagram
A simple imitation of Instagram  app .
Stars: ✭ 346 (-32.95%)
Mutual labels:  parse
Human Interval
Human readable time distances for javascript
Stars: ✭ 360 (-30.23%)
Mutual labels:  parse
Probablepeople
👪 a python library for parsing unstructured western names into name components.
Stars: ✭ 427 (-17.25%)
Mutual labels:  parse
Parse Torrent
Parse a torrent identifier (magnet uri, .torrent file, info hash)
Stars: ✭ 325 (-37.02%)
Mutual labels:  parse
Nginxparser
Parses nginx configuration with Pyparsing — Used in Letsencrypt
Stars: ✭ 489 (-5.23%)
Mutual labels:  parse
Graph Viz D3 Js
Graphviz web D3.js renderer
Stars: ✭ 297 (-42.44%)
Mutual labels:  parse
Gographviz
Parses the Graphviz DOT language in golang
Stars: ✭ 416 (-19.38%)
Mutual labels:  parse
Parsepy
A relatively up-to-date fork of ParsePy, the Python wrapper for the Parse.com API. Originally maintained by @dgrtwo
Stars: ✭ 509 (-1.36%)
Mutual labels:  parse
Schm
Composable schemas for JavaScript and Node.js
Stars: ✭ 498 (-3.49%)
Mutual labels:  parse
Fullstack Javascript
Source code for the Fullstack JavaScript book
Stars: ✭ 456 (-11.63%)
Mutual labels:  parse

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].