Skip to content

Commit

Permalink
Merge pull request #1 from GabrielRatener/master
Browse files Browse the repository at this point in the history
Added support for ES2015 module generation
  • Loading branch information
Alex authored Jul 5, 2016
2 parents 7653842 + 2668d7e commit fd06089
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions lib/jison.js
Original file line number Diff line number Diff line change
Expand Up @@ -939,6 +939,9 @@ lrGeneratorMixin.generate = function parser_generate (opt) {
case "amd":
code = this.generateAMDModule(opt);
break;
case "es":
code = this.generateESModule(opt);
break;
default:
code = this.generateCommonJSModule(opt);
break;
Expand All @@ -962,6 +965,25 @@ lrGeneratorMixin.generateAMDModule = function generateAMDModule(opt){
return out;
};

lrGeneratorMixin.generateESModule = function generateESModule(opt){
opt = typal.mix.call({}, this.options, opt);
var module = this.generateModule_();
var out = module.commonCode
+ '\nvar parser = '+ module.moduleCode
+ "\n"+this.moduleInclude
+ (this.lexer && this.lexer.generateModule ?
'\n' + this.lexer.generateModule() +
'\nparser.lexer = lexer;' : '')
+ '\nfunction Parser() { this.yy = {} };'
+ '\nParser.prototype = parser;'
+ '\nparser.Parser = Parser;'
+ '\nexport {parser, Parser};'
;

return out;
};


lrGeneratorMixin.generateCommonJSModule = function generateCommonJSModule (opt) {
opt = typal.mix.call({}, this.options, opt);
var moduleName = opt.moduleName || "parser";
Expand Down

0 comments on commit fd06089

Please sign in to comment.