Have ideas to improve npm?Join in the discussion! »

    jsep
    TypeScript icon, indicating that this package has built-in type declarations

    0.4.0 • Public • Published

    jsep: A Tiny JavaScript Expression Parser

    jsep is a simple expression parser written in JavaScript. It can parse JavaScript expressions but not operations. The difference between expressions and operations is akin to the difference between a cell in an Excel spreadsheet vs. a proper JavaScript program.

    Why jsep?

    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.

    jsep's output is almost identical to esprima's, which is in turn based on SpiderMonkey's.

    Custom Build

    First, install Grunt. While in the jsep project directory, run:

    npm install .
    grunt

    The jsep built files will be in the build/ directory.

    Usage

    Client-side

    <script src="/PATH/TO/jsep.min.js" type="text/javascript"></script>
    ...
    var parse_tree = jsep("1 + 1");

    Node.JS

    First, run npm install jsep. Then, in your source file:

    var jsep = require("jsep");
    var parse_tree = jsep("1 + 1");

    Custom Operators

    // 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("~");

    Custom Identifiers

    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('@');

    License

    jsep is under the MIT license. See LICENSE file.

    Thanks

    Some parts of the latest version of jsep were adapted from the esprima parser.

    Keywords

    none

    Install

    npm i jsep

    DownloadsWeekly Downloads

    98,274

    Version

    0.4.0

    License

    MIT

    Unpacked Size

    78.7 kB

    Total Files

    13

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar