esprima VS astexplorer

Compare esprima vs astexplorer and see what are their differences.

esprima

ECMAScript parsing infrastructure for multipurpose analysis (by jquery)

astexplorer

A web tool to explore the ASTs generated by various parsers. (by fkling)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
esprima astexplorer
8 43
6,962 5,953
0.0% -
0.0 6.0
about 1 year ago 8 days ago
TypeScript JavaScript
BSD 2-clause "Simplified" License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

esprima

Posts with mentions or reviews of esprima. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-07.
  • ESLint: under the hood
    4 projects | dev.to | 7 Nov 2023
    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.
  • Why you don’t need TypeScript
    1 project | /r/typescript | 19 May 2023
    For TypeScript we have used AST transforms from their compiler API, and for plain JavaScript we did a similar thing using ESPrima. This helped us implement some simple optimizations like stream fusion (combining .filter and .map into a single operation) or avoiding extra object allocations in vector math, which led to nice performance improvements in code that does heavy computation (we process large amounts of data on the server and store results of physics simulations).
  • Algorithm to simplify a 100-variable Boolean expression?
    1 project | /r/algorithms | 4 Jun 2022
    I used ESPrima, but any parser would do in this case. I then wrote a simple function to extract all "atomic" non-boolean expressions from it.
  • How to make your own programming language in JavaScript
    6 projects | dev.to | 7 May 2022
    AST is an acronym for Abstract Syntax Tree. It's the way to represent code in a format that tools can understand. Usually in form of tree data structure. We will use AST in the format of an Esprima, which is a JavaScript parser that outputs AST.
  • What the heck is an Abstract Syntax Tree (AST) ?
    5 projects | dev.to | 23 Apr 2022
    esprima
  • Abstract Syntax Trees: They're Actually Used Everywhere -- But What Are They?
    4 projects | dev.to | 17 Nov 2021
    Create an AST: Esprima
  • We Switched from Webpack to Vite
    15 projects | news.ycombinator.com | 28 Apr 2021
    The thread was originally about CRA vs Vite size on disk (or implicitly, if we're applying it to real world applications, network cost in CI job startup times). And like I said, surrogate pairs don't apply to ASCII.

    See this[0] for reference. Note how the first byte must fall within a certain range in order to signal being a surrogate pair. This fact is taken advantage of by JS parsers to make parsing of ASCII code faster by special casing that range, since checking for a valid character in the entire unicode range is quite a bit more expensive[1].

    [0] https://github.com/jquery/esprima/blob/0911ad869928fd218371b...

    [1] https://github.com/jquery/esprima/blob/0911ad869928fd218371b...

  • How to create your own language that compile to JavaScript
    3 projects | /r/javascript | 15 Apr 2021
    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.

astexplorer

Posts with mentions or reviews of astexplorer. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-06.
  • Understanding Code Structure: A Beginner's Guide to Tree-sitter
    2 projects | dev.to | 6 Apr 2024
    You can play with your code here, and visualise ASTs for the same.
  • What is an Abstract Syntax Tree in Programming?
    13 projects | dev.to | 5 Apr 2024
    Website
  • How to create your own Eslint rule with tests, boosting the DX, and code-review
    2 projects | dev.to | 27 Mar 2024
    To understand this syntax, I recommend exploring AST Explorer. You will have a better view of how the AST of JavaScript works and how to correlate it with the Eslint syntaxy:
  • Programming from Top to Bottom - Parsing
    2 projects | dev.to | 18 Mar 2024
    You can never mistake type_declaration with an identifier, otherwise the program will not work. Aside from that constraint, you are free to name them whatever you like, there is no one standard, and each parser has it own naming conventions, unless you are planning to use something like LLVM. If you are interested, you can see examples of naming in different language parsers in the AST Explorer.
  • ESLint: under the hood
    4 projects | dev.to | 7 Nov 2023
    The rule that I want to write will be called not-allows-underscore: the idea is to abolish the use of underscores when declaring variables or functions. It's a real dummy rule, but it should be enough to see in action the concepts that we have discussed earlier. The first thing that I would do is to go to AST Explorer, write down a code that declares variables and functions (both standard and arrows one) and take a look at what type of node is the one that encodes the identifier. Doing that, I found out that the node type of my interest is Identifier, what a surprise! 🤣. In particular, the structure of the node holds the string used as identifier in the name property.
  • 😱 ESlint over Conventions - You have Not unlocked the power of ESlint 😱
    2 projects | dev.to | 29 Sep 2023
    All the information about the API, AST node names, AST Explorer, etc. you can read in the official documentation. I’m just going to show examples of how to automate the check-up of our created conventions.
  • AST Exploret
    1 project | news.ycombinator.com | 5 Sep 2023
  • 200 Web-Based, Must-Try Web Design and Development Tools
    13 projects | dev.to | 8 Aug 2023
    AST Viewer
  • Building a JSON Parser from scratch with JS 🤯
    7 projects | dev.to | 1 Aug 2023
    If you want to see how the AST of popular languages looks, I recommend the AST Explorer. It supports various languages, and you can view the complete AST and navigate through the nodes. If you want to go further, you can try to copy some logic from an existing parser and implement it in your own, such as calculating an expression according to precedence order, for example: 1 + 2 * 3 (which is 7, not 9).
  • Creating my own typescript compiler
    2 projects | /r/typescript | 1 Jul 2023
    https://astexplorer.net/ is a good resource/playground for understanding ASTs and transpilers.

What are some alternatives?

When comparing esprima and astexplorer you can also consider the following projects:

estree - The ESTree Spec

deno_swc - The SWC compiler for Deno.

babel-handbook - :blue_book: A guided handbook on how to use Babel and how to create plugins for Babel.

gogocode - GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.

estraverse - ECMAScript JS AST traversal functions

vscode-language-tree - VSCode tree format support

esbuild-loader - Webpack loader for esbuild: Speed up your build ⚡️

ChakraCore - ChakraCore is an open source Javascript engine with a C API.

escodegen - ECMAScript code generator

Acorn - A small, fast, JavaScript-based JavaScript parser

vite-plugin-vue2 - Vue2 plugin for Vite

proposal-type-annotations - ECMAScript proposal for type syntax that is erased - Stage 1