espree
babel-handbook
espree | babel-handbook | |
---|---|---|
5 | 7 | |
2,244 | 11,938 | |
1.2% | - | |
6.2 | 0.0 | |
6 days ago | 3 months ago | |
JavaScript | ||
BSD 2-clause "Simplified" License | Creative Commons Attribution 4.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
espree
-
ESLint: under the hood
Focusing again on ESLint, the parser used by the linter is called Espree. This is an in-house parser built by the ESLint folks to fully support ECMAScript 6 and JSX on top of the already existing Esprima. The Espree module provide APIs for both tokenization and parsing that you can easily test out.
-
Abstract Syntax Trees and Practical Applications in JavaScript
Why do we then have other JavaScript parsers like babel parser, swc parser, acorn, espree and the likes since JavaScript engines have their own internal parsers?
-
Quick start with ESLint
How does ESLint work? ESLint uses Espree for Javascript parsing. It uses an AST to evaluate patterns in code. It does all this before runtime.. meaning, without running your Javascript code it will find the bugs, syntax and stylistic errors.
-
Gentle Introduction To ESLint Rules
ESLint doesn't process the code into the compiler phases, rather it provides an option to let you specify a Parser. By default, ESLint uses Espree which essentially converts JS source code to AST data structure, so in case you want to write a rule targeting TypeScript source code, you'll need to specify a different parser in your .eslintrc.json configuration file, same applies for different file extension, for HTML you might use this or creating your own parser!
- Show HN: Monocle – bidirectional code generation library
babel-handbook
-
Abstract Syntax Trees and Practical Applications in JavaScript
For more information about building Babel plugins, check the Kent's Babel Handbook or this awesome Babel handbook by Jamie.
- babel-handbook: A guided handbook on how to use Babel and how to create plugins for Babel.
-
Getting Started With Babel - Transpiling Javascript
Babel does this by compiling down JavaScript code written with the latest standards into a version that will work everywhere today. This process is known as source-to-source compiling, also known as transpiring. Source: Jamie Kyle
-
11 JavaScript Examples to Source Code That Reveal Design Patterns In Use
I'll be honest, my approach to getting used to working with ASTs is a bit weird, but it worked for me. For some reason the thought of working with the TypeScript AST sounds really attractive to me. I'm sure most people recommend to start deep diving into babel first before getting used to working with an AST with the TypeScript compiler, but I started it the other way around. There is a great library called ts-morph that focuses on making it easier for developers to work with the TypeScript compiler. Learning hands on with ts-morph while getting used to their compiler api made babel much easier to understand without ever touching babel.
-
A tale of knowledge building
Those videos gave me a base for the task but I needed more sources to achieve it, so I read a lot of source code for other libraries built with babel-plugin-macros, read the plugin's authoring documentation and Jamie Kyle's Babel Handbook.
-
How to create your own language that compile to JavaScript
If you want to learn more about parsing, reading the code of an actual recursive parser might be a better idea. Esprima is a decent place to start if you're interested in JS grammar. Then you can look at the babel handbook to learn more about AST transformations. From there, the literature gets quite a bit more heavy. If you get this far and are willing to push further, you'll probably want to grab yourself a copy of the dragon book at a minimum.
-
Revealing the magic of AST by writing babel plugins
Babel handbook
What are some alternatives?
escodegen - ECMAScript code generator
esprima - ECMAScript parsing infrastructure for multipurpose analysis
recast - JavaScript syntax tree transformer, nondestructive pretty-printer, and automatic source map generator
super-expressive - 🦜 Super Expressive is a zero-dependency JavaScript library for building regular expressions in (almost) natural language
Babel (Formerly 6to5) - 🐠 Babel is a compiler for writing next generation JavaScript.
estree - The ESTree Spec
Acorn - A small, fast, JavaScript-based JavaScript parser
babel-plugin-macros - 🎣 Allows you to build simple compile-time libraries
super-expressive.macro - 🎣 A macro to generate Regular Expressions (RegExp) at build-time with super-expressive.
babel-plugin-handbook - How to create Babel plugins
picoc - A very small C interpreter