jison2dart 0.7.0 copy "jison2dart: ^0.7.0" to clipboard
jison2dart: ^0.7.0 copied to clipboard

Generate Dart parsers using Jison (Bison in JavaScript)

jison2dart #

Generate Dart parsers using Jison - Bison/Yacc in JavaScript.

Getting Started #

First, you have to prepare Nodejs for your environment, and install jison.

git clone git@github.com:rikulo/jison2dart.git
cd jison2dart/lib/js
npm install

Then, you can compile a Jison file to a Dart parser. For example,

cd example
node ../lib/js/jison2dart.js calculator.jison

For more options, please run

node bison.js --help

The Dart file will contain a class depending on the jison filename. For example,

class Caculator extends DefaultJisonParser {

  Object parse() {
...

To use the Dart parser in your application, you have to put jison2dart to your pubspec.yaml.

Then, you can use the parser. For example,

print(Caculator().parse("2 * 3"));

Special Extensions #

%library #

Optional. Generates the library statement in the Dart pasrer.

%library my.lib

%class #

Optional. Specfies the name of the Dart pasrer.

%class CalcParser

If you'd like to override it, say, for different platforms, you can specify abstract too:

%class abstract ParserBase

%extends #

If you'd like to extend from your custom class, you can specify it as follows:

%extends MyGenericParser

Note: Your implementation must implement JisonParser, or extends DefaultJisonParser.

%case-sensitive #

By default, the lexer is case senstive. You can turn off as follows:

%case-sensitive false

The prologue: %{ and %} #

Optional. If you'd like to import other libraries or embed Dart codes, you can put the code between %{ and %}.

%{
  import "super/foo.dart";

  String camelize(String text) {
    ...
  }
}%

Note: unlike Bison's prologue, you can put at most one prologue.

Resources #

Who Uses #

  • Quire - a simple, collaborative, multi-level task management tool.
  • Keikai - a sophisticated spreadsheet for big data
1
likes
130
points
63
downloads

Publisher

verified publisherquire.io

Weekly Downloads

Generate Dart parsers using Jison (Bison in JavaScript)

Repository (GitHub)

Documentation

API reference

License

MIT (license)

More

Packages that depend on jison2dart