var Utils = require('src/utils') , AST = require('src/ast') ; /** * Assembles the AST into Javascript * @class Assembler * @param {Object} opts - The assembler options */ var Assembler = module.exports = function Assembler(opts) { if(!(this instanceof Assembler)) return new Assembler(opts); var opts = Utils.defaults({}, opts); } Assembler.prototype.assemble = function (ast) { var ret = ''; ret += this._assembleNodes(ast); return ret; }; Assembler.prototype._assembleNodes = function (ast) { var ret = ''; for( var i=0, ii=ast.length; i<ii; i++ ) { var node = ast[i]; switch(node.constructor) { case AST.TagDirective: ret += this._tagDirective(node); break; case AST.Tag: ret += this._tag(node); break; case AST.Text: ret += this._text(node); break; default: throw new Error('Bad node type in syntax tree'); } } return ret; }; Assembler.prototype._assembleAttribs = function (node) { }; Assembler.prototype._attribDirective = function () { }; Assembler.prototype._attrib = function () { }; Assembler.prototype._interpolatorExpression = function () { }; Assembler.prototype._interpolatorString = function () { }; Assembler.prototype._interpolator = function () { }; Assembler.prototype._tagDirective = function (node) { }; Assembler.prototype._tag = function (node) { }; Assembler.prototype._text = function (node) { };