@ull-esit-pl/peg-stack

    1.1.6 • Public • Published

    PEGStack

    A minimal node module providing utility methods to work with PEG.js semantic predicates

    Installation

      npm install @ull-esit-pl/peg-stack --save

    Example of use

    {
      var PEGStack = require('@ull-esit-pl/peg-stack');
      var stack = new PEGStack();
      var action = function() {
        var [val1, op, val2] = stack.pop(3);
        stack.log('Action!: '+`${val1} ${op} ${val2}`); 
        stack.push(eval(`${val1} ${op} ${val2}`)); 
      }
    }
     
    sum     = first:product &{ return stack.push(first); } 
              (op:[+-] product:product 
                &{ stack.push(op, product); return stack.make(action); })* 
                 { return stack.pop(); } 
    product = first:value &{ return stack.push(first); } 
              (op:[*/] value:value 
                &{ stack.push(op, value); return stack.make(action); })* 
                 { return stack.pop(); } 
    value   = number:$[0-9]+                     { return parseInt(number,10); }
            / '(' sum:sum ')'                    { return sum; }

    Tests

       npm test

    API Documents

    See Documentation at https://ull-esit-pl.github.io/peg-stack/

    To generate the docs we use documentation.js:

       npm run doc

    Install $ npm install -g documentation

    Contributing

    In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code.

    Release History

    • 1.0.0 Initial release

    Install

    npm i @ull-esit-pl/peg-stack

    DownloadsWeekly Downloads

    17

    Version

    1.1.6

    License

    none

    Last publish

    Collaborators

    • casiano
    • crguezl