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
43
downloads

Publisher

verified publisherquire.io

Weekly Downloads

Generate Dart parsers using Jison (Bison in JavaScript)

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

More

Packages that depend on jison2dart