UNPKG

bobflux-gen

Version:

Generator for monkey files in bobflux application.

44 lines (43 loc) 1.92 kB
"use strict"; function __export(m) { for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; } var cv = require("./classDeclarationVisitor"); var iv = require("./interfaceDeclarationVisitor"); var pdv = require("./propertyDeclarationVisitor"); var psv = require("./propertySignatureVisitor"); var edv = require("./enumDeclarationVisitor"); var tadv = require("./typeAliasDeclarationVisitor"); var inv = require("./importDeclarionVisitor"); var sfv = require("./sourceFileVisitor"); __export(require("./nodeVisitor")); function createAllBfgVisitors(saveCallback) { return createBfgVisitor(edv.create(function (e) { return saveCallback().enums.push(e); }), tadv.create(function (t) { return saveCallback().customTypes.push(t); }), cv.create(function (s) { return saveCallback().states.push(s); }), iv.create(function (s) { return saveCallback().states.push(s); }), pdv.create(function (f) { var data = saveCallback(); data.states[data.states.length - 1].fields.push(f); }), psv.create(function (f) { var data = saveCallback(); data.states[data.states.length - 1].fields.push(f); }), inv.create(function (i) { return saveCallback().imports.push(i); }), sfv.create(function (sf) { var data = saveCallback(); data.fileName = sf.fileName; data.filePath = sf.filePath; })); } exports.createAllBfgVisitors = createAllBfgVisitors; function createBfgVisitor() { var visitors = []; for (var _i = 0; _i < arguments.length; _i++) { visitors[_i] = arguments[_i]; } var _visitors = visitors || []; return { accept: function (n) { return _visitors.filter(function (v) { return v.accept(n); }).length > 0; }, visit: function (n) { var acceptedVisitor = _visitors.filter(function (v) { return v.accept(n); })[0]; acceptedVisitor.visit(n); } }; }