PHP BSD-3-Clause

peast

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

M

mck89

Dernière activité 29 sept. 2026
mck89/peast

194

étoiles

28

forks

1

issues ouvertes

ast-generationecmascriptjavasciptjavascriptparserparsingphpsyntax-treetokenizertraversevalidator

Ce README est souvent en anglais.

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

Projets similaires

A PHP parser written in PHP

PHPastparserphp
Nnikic
17,5 k étoiles1,1 k

NodeJS PHP Parser - extract AST or tokens

JavaScriptastdevelopmentjavascript
Gglayzzle
565 étoiles75

The ESTree Spec

astestreejavascript
Eestree
5,4 k étoiles366