1.1.0 • Published 7 years ago

shunt.js v1.1.0

Weekly downloads
2
License
ISC
Repository
github
Last release
7 years ago

shunt.js

An extensible shunting yard algorithm implemented in JavaScript

Here's an example.

let simple = new ShuntingYard([
    new ShuntingOperator({
        name: "+",
        precedence: 2,
        variants: [2],
        associativity: "left",
    }),
    new ShuntingOperator({
        name: "-",
        precedence: 2,
        variants: [1, 2],
        associativity: "left",
    }),
    new ShuntingOperator({
        name: "*",
        precedence: 3,
        variants: [2],
        associativity: "left",
    }),
    new ShuntingOperator({
        name: "/",
        precedence: 3,
        variants: [2],
        associativity: "left",
    }),
    new ShuntingOperator({
        name: "^",
        precedence: 4,
        variants: [2],
        associativity: "right",
    }),
]);

simple.parse(["3", "/", "(", "4", "+", "-", "3", ")"]);