https://github.com/schmich/jisonify
A Browserify transform for Jison parsers.
https://github.com/schmich/jisonify
browser browserify javascript jison language lexer parser programming-language
Last synced: 8 months ago
JSON representation
A Browserify transform for Jison parsers.
- Host: GitHub
- URL: https://github.com/schmich/jisonify
- Owner: schmich
- License: mit
- Created: 2014-01-14T14:29:57.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2015-10-14T03:11:27.000Z (over 10 years ago)
- Last Synced: 2025-08-01T16:58:54.144Z (8 months ago)
- Topics: browser, browserify, javascript, jison, language, lexer, parser, programming-language
- Language: JavaScript
- Homepage: https://npmjs.org/package/jisonify
- Size: 252 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Jisonify
A [Browserify](https://github.com/substack/node-browserify) transform for [Jison](https://github.com/zaach/jison) parsers.
Mix Jison parsers into your JS files and Browserify projects without needing additional build steps.
[](https://npmjs.org/package/jisonify)
[](https://travis-ci.org/schmich/jisonify)
[](https://gemnasium.com/schmich/jisonify)
## Installation
```
npm install jisonify
```
## Usage
```
browserify -t jisonify main.js > bundle.js
```
## Example
```js
// calc.jison
%lex
%%
\s+ /* Skip whitespace. */
[0-9]+ return 'NUMBER'
"-" return '-'
"+" return '+'
<> 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); }
;
```
```js
// 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
```
```html
Result: –
```
### Programmatic example
```js
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](LICENSE) for details.