1.0.4 • Published 10 years ago

jisonify v1.0.4

Weekly downloads
2
License
MIT
Repository
github
Last release
10 years ago

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.

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago