jisonify

1.0.4 • Public • Published

Jisonify

A Browserify transform for Jison parsers.

Mix Jison parsers into your JS files and Browserify projects without needing additional build steps.

NPM version Build Status Dependency Status

Installation

npm install jisonify

Usage

browserify -t jisonify main.js > bundle.js

Example

// calc.jison
%lex
%%
 
\s+                   /* Skip whitespace. */
[0-9]+                return 'NUMBER'
"-"                   return '-'
"+"                   return '+'
<<EOF>>               return 'EOF'
.                     return 'INVALID'
 
/lex
 
%left '+' '-'
%start expressions
%%
 
expressions
  : expr EOF        { return $1; }
  ;
 
expr
  : expr '+' expr   { $$ = $1 + $3; }
  | expr '-' expr   { $$ = $1 - $3; }
  | NUMBER          { $$ = Number(yytext); }
  ;
// main.js
var parser = require('./calc.jison').parser;
 
exports = run = function() {
  var input = document.getElementById('input');
  var output = document.getElementById('output');
  output.innerText = parser.parse(input.value);
};
browserify -t jisonify main.js > bundle.js
<!-- calc.html --->
<!DOCTYPE html>
<html>
  <head>
    <script src="bundle.js"></script>
  </head>
  <body>
    <form onsubmit="run(); return false;">
      <input type="text" id="input" value="50 + 2 - 10" />
      <input type="submit" />
      Result: <span id="output">&ndash;</span>
    </form>
  </body>
</html>

Programmatic example

var browserify = require('browserify');
var jisonify = require('jisonify');
 
var b = browserify();
b.add('./main.js');
b.transform(jisonify);
b.bundle(function(err, src) {
  // ...
});

License

Copyright © 2014 Chris Schmich
MIT License, See LICENSE for details.

Readme

Keywords

Package Sidebar

Install

npm i jisonify

Weekly Downloads

0

Version

1.0.4

License

MIT

Last publish

Collaborators

  • schmich