Skip to content

Instantly share code, notes, and snippets.

@mashihua
Created June 15, 2012 09:59
Show Gist options
  • Save mashihua/2935701 to your computer and use it in GitHub Desktop.
Save mashihua/2935701 to your computer and use it in GitHub Desktop.
Practice BFN
<syntax> ::= <expression> | <expression> <crlf> <syntax>
<crlf> ::= <_crlf> | <_wsp> <_crlf> | ";" <_crlf> | <_wsp> ";" <_crlf> | ";" <_wsp> <_crlf>
<expression> ::= <codekitcode> | <javascript>
<codekitcode> ::= <statements> <files> <semicolons>
<files> ::= <file> | <file> "," <file>
<file> ::= <_wsp> <_literal>
<semicolons> ::= "" | ";"
<statements> ::= "@codekit-append" | "@codekit-prepend"
<javascript> ::= ""
@codekit-prepend "someFile.js"
@codekit-append "someFile.js"
@codekit-append "someFile.js";
@codekit-append "someFile.js", "a.js";
#!/usr/bin/env node
var events = { "files":function( token ){
var files = token.text;
files && console.log(files);
} };
var parser = null;
var Compiler = require('bnf').Compiler;
var compiler = new Compiler();
compiler.CompileScript( __dirname + "/codekit.bnf", "codekit", function( interpreter ){
var parser = compiler.CreateParser( interpreter, events );
parser.ParseScript( __dirname + "/codekit.js" );
} );
{
"name" : "PracticeBFN"
, "version" : "0.0.1"
, "description" : "My BFN exercises"
, "dependencies": {
"nodebnf" : "git://github.com/navstev0/nodebnf.git"
}
, "bin" : "./index.js"
, "engines" : { "node" : ">=0.6.0" }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment