espree - An Esprima-compatible JavaScript parser

  •        32

Espree started out as a fork of Esprima v1.2.2, the last stable published released of Esprima before work on ECMAScript 6 began. Espree is now built on top of Acorn, which has a modular architecture that allows extension of core functionality. The goal of Espree is to produce output that is similar to Esprima with a similar API so that it can be used in place of Esprima. The primary goal is to produce the exact same AST structure and tokens as Esprima, and that takes precedence over anything else. (The AST structure being the ESTree API with JSX extensions.) Separate from that, Espree may deviate from what Esprima outputs in terms of where and how comments are attached, as well as what additional information is available on AST nodes. That is to say, Espree may add more things to the AST nodes than Esprima does but the overall AST structure produced will be the same.


acorn : ^5.6.0
acorn-jsx : ^4.1.1
eslint-visitor-keys : ^1.0.0



Related Projects

typescript-eslint-parser - An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code

  •    Javascript

An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code. There is sometimes an incorrect assumption that the parser itself is what does everything necessary to facilitate the use of ESLint with TypeScript. In actuality, it is the combination of the parser and one or more plugins which allow you to maximize your usage of ESLint with TypeScript.

eslint - A fully pluggable tool for identifying and reporting on patterns in JavaScript

  •    Javascript

Prerequisites: Node.js (>=6.14), npm version 3+. There are two ways to install ESLint: globally and locally.

esprima - ECMAScript parsing infrastructure for multipurpose analysis

  •    TypeScript

Esprima (, BSD license) is a high performance, standard-compliant ECMAScript parser written in ECMAScript (also popularly known as JavaScript). Esprima is created and maintained by Ariya Hidayat, with the help of many contributors. Esprima can be used to perform lexical analysis (tokenization) or syntactic analysis (parsing) of a JavaScript program.

proposal-binary-ast - Binary AST proposal for ECMAScript


This is the explainer document for a proposed new binary AST format for JS. Performance of applications on the web platform is becoming increasingly bottlenecked by startup (load) time. Larger amounts of JS code are transferred over the wire by more sophisticated web properties. While caching helps, these properties regularly release new code, and cold load times are very important.

node-falafel - transform the ast on a recursive walk

  •    Javascript

Transform the ast on a recursive walk.This modules uses acorn to create an AST from source code.

ast-types - Esprima-compatible implementation of the Mozilla JS Parser API

  •    Javascript

This module provides an efficient, modular, Esprima-compatible implementation of the abstract syntax tree type hierarchy pioneered by the Mozilla Parser API. Because it understands the AST type system so thoroughly, this library is able to provide excellent node iteration and traversal mechanisms.

csstree - A tool set for working with CSS including fast detailed parser, walker, generator and lexer based on W3C specs and browser implementations

  •    Javascript

CSSTree is a tool set to work with CSS, including fast detailed parser (string->AST), walker (AST traversal), generator (AST->string) and lexer (validation and matching) based on knowledge of spec and browser implementations. The main goal is to be efficient and W3C spec compliant, with focus on CSS analyzing and source-to-source transforming tasks. NOTE: The project is in alpha stage since some parts need further improvements, AST format and API are subjects to change. However it's stable enough and used by packages like CSSO (CSS minifier) and SVGO (SVG optimizer) in production.

tolerant-php-parser - An early-stage PHP parser designed for IDE usage scenarios.

  •    PHP

This is an early-stage PHP parser designed, from the beginning, for IDE usage scenarios (see Design Goals for more details). There is still a ton of work to be done, so at this point, this repo mostly serves as an experiment and the start of a conversation.After you've configured your machine, you can use the parser to generate and work with the Abstract Syntax Tree (AST) via a friendly API.

eslint-plugin-jsx-a11y - Static AST checker for a11y rules on JSX elements.

  •    Javascript

Static AST checker for accessibility rules on JSX elements. Ryan Florence built out this awesome runtime-analysis tool called react-a11y. It is super useful. However, since you're probably already using linting in your project, this plugin comes for free and closer to the actual development process. Pairing this plugin with an editor lint plugin, you can bake accessibility standards into your application in real-time.

eslint-plugin-react - React specific linting rules for ESLint

  •    Javascript

Install ESLint either locally or globally. If you installed ESLint globally, you have to install React plugin globally too. Otherwise, install it locally.

babel-eslint - :tokyo_tower: ESLint using Babel as the parser.

  •    Javascript

babel-eslint allows you to lint ALL valid Babel code with the fantastic ESLint.You only need to use babel-eslint if you are using types (Flow) or experimental features not supported in ESLint itself yet. Otherwise try the default parser (you don't have to use it just because you are using Babel).

eslint-plugin-node - Additional ESLint's rules for Node.js

  •    Javascript

Note: It recommends a use of the "engines" field of package.json. The "engines" field is used by node/no-unsupported-features/* rules. eslint-plugin-node follows semantic versioning and ESLint's Semantic Versioning Policy.

acorn-jsx - Alternative, faster React.js JSX parser

  •    Javascript

This is plugin for Acorn - a tiny, fast JavaScript parser, written completely in JavaScript. It was created as an experimental alternative, faster React.js JSX parser.

jsx - The JSX specification is a XML-like syntax extension to ECMAScript.


JSX is a XML-like syntax extension to ECMAScript without any defined semantics. It's NOT intended to be implemented by engines or browsers. It's NOT a proposal to incorporate JSX into the ECMAScript spec itself. It's intended to be used by various preprocessors (transpilers) to transform these tokens into standard ECMAScript.The purpose of this specification is to define a concise and familiar syntax for defining tree structures with attributes. A generic but well defined syntax enables a community of independent parsers and syntax highlighters to conform to a single specification.

eslint-plugin-import - ESLint plugin with rules that help validate proper imports.

  •    Javascript

This plugin intends to support linting of ES2015+ (ES6+) import/export syntax, and prevent issues with misspelling of file paths and import names. All the goodness that the ES2015+ static module syntax intends to provide, marked up in your editor. IF YOU ARE USING THIS WITH SUBLIME: see the bottom section for important info.

cppast - Library to parse and work with the C++ AST

  •    C++

Library interface to the C++ AST — parse source files, synthesize entities, get documentation comments and generate code. If you're writing a tool that needs access to the C++ AST (i.e. documentation generator, reflection library, …), your only option apart from writing your own parser is to use clang. It offers three interfaces for tools, but the only one that really works for standalone applications is libclang. However, libclang has various limitations and does not expose the entire AST.

linter-eslint - ESLint plugin for Atom Linter

  •    Javascript

This linter plugin for Linter provides an interface to eslint. It will be used with files that have the "JavaScript" syntax. linter-eslint will look for a version of eslint local to your project and use it if it's available. If none is found it will fall back to the version it ships with.

recast - JavaScript syntax tree transformer, nondestructive pretty-printer, and automatic source map generator

  •    Javascript

In less poetic terms, Recast exposes two essential interfaces, one for parsing JavaScript code (require("recast").parse) and the other for reprinting modified syntax trees (require("recast").print). See ast-types (especially the def/core.js) module for a thorough overview of the ast api.

php-parser - PHP parser written in Go

  •    Go

This project uses goyacc and golex libraries to parse PHP sources into AST. It can be used to write static analysis, refactoring, metrics, code style formatting tools. Dump AST to stdout.

We have large collection of open source products. Follow the tags from Tag Cloud >>

Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.