50

GitHub - samthor/prsr: fast? JavaScript parser in C

 5 years ago
source link: https://github.com/samthor/prsr
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

A fast, permissive JavaScript tokenizer and parser in C.

This is not a polished or documented product. It's intended to be used with Web Assembly.

Goals

This parser will not identify all problems with your code, but it will operate correctly on correct code. It's ideal for a backend to a compiler or tool which might transform your code.

Stages

  1. a raw JavaScript tokenizer, which understands UTF-8 bytes and generates simple tokens

  2. a simple parser, which deals with JS' nuances and outputs marked up tokens

Caveats

JavaScript has a single ambiguity which can only be resolved after-the-fact. Here's an example:

// this is a function call
async(/*anything can go here*/) {}

// this is the value of an arrow function
async(/*anything can go here*/) => {}

This parser announces what async is once it encouters an arrow function (or not). Note that async param => {} is not ambiguous, as it cannot be a function call.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK