I wanted a lightweight, tiny parser to be included in one of my other libraries. esprima and other parsers are great, but had more power than I need and were way too large to be included in a library that I wanted to keep relatively small.
First, install Grunt. While in the jsep project directory, run:
npm install . grunt
The jsep built files will be in the build/ directory.
npm install jsep. Then, in your source file:
var jsep = require("jsep"); var parse_tree = jsep("1 + 1");
// Add a custom ^ binary operator with precedence 10 jsep.addBinaryOp("^", 10); // Add a custom @ unary operator jsep.addUnaryOp('@'); // Remove a binary operator jsep.removeBinaryOp(">>>"); // Remove a unary operator jsep.removeUnaryOp("~");
You can add or remove additional valid identifier chars. ('_' and '$' are already treated like this.)
// Add a custom @ identifier jsep.addIdentifierChar("@"); // Removes a custom @ identifier jsep.removeIdentifierChar('@');
jsep is under the MIT license. See LICENSE file.
Some parts of the latest version of jsep were adapted from the esprima parser.