Skip to content
forked from mck89/peast

JavaScript parser written in PHP that generates AST from your code according to ECMAScript specification

License

Notifications You must be signed in to change notification settings

skilld-labs/peast

 
 

Repository files navigation

Peast

Latest Stable Version Total Downloads License Build Status

Peast (PHP ECMAScript Abstract Syntax Tree) is a PHP 5.4+ library that parses JavaScript code, according to ECMAScript specification, and generates an abstract syntax tree following the ESTree standard.

Installation

Include the following requirement to your composer.json:

{
	"require": {
		"mck89/peast": "dev-master"
	}
}

Run composer install to install the package.

Then in your script include the autoloader and you can start using Peast:

require_once "vendor/autoload.php";

$source = "var a = 1"; // Your JavaScript code
$ast = Peast\Peast::latest($source, $options)->parse(); // Parse it!

Known issues

When Xdebug is enabled and Peast is used to scan code that contains deeply nested functions, this fatal error can appear:

PHP Fatal error:  Maximum function nesting level of '512' reached, aborting!

or

PHP Warning:  Uncaught Error: Xdebug has detected a possible infinite loop, and aborted your script with a stack depth of '256' frames

To prevent this you can set xdebug.max_nesting_level to a higher value, such as 512.

Documentation

Read the documentation for more examples and explanations:

  1. AST generation and tokenization
  2. Tree Traversing
  3. Querying By Selector
  4. Rendering

Changelog

About

JavaScript parser written in PHP that generates AST from your code according to ECMAScript specification

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 97.1%
  • JavaScript 2.9%