/** * Created by jackyanjiaqi on 16/6/27. */ import utils = require("./utils"); import exmlParser = require("./eui/parser/EXMLParser"); var parser = new exmlParser.EXMLParser(); import file = require("./file"); var module_template = "var {module};\n"+ "(function ({module}) {\n"+ "{definition}\n" + "})({module} || ({module} = {}));"; export function parse(exmlPath:string){ var xmlString = file.read(exmlPath); var classText = parser.parse(xmlString); //获得类名和模块名 //var className = parser.getClassNameOfNode(parser.topNode); var className = parser.className; var moduleName; var index = className.lastIndexOf("."); if(index != -1){ moduleName = className.substring(0,index); className = className.substring(index+1); } //配置类名声明 classText = "var "+className+"="+classText; //配置模块声明 var jstext = "{definition}";//初始模块为入口载入模版 if (moduleName) { var indent:number = -1; moduleName.split(".").forEach(module=>{ //模版添加缩进 indent += 1; var template = utils.addIndents(indent,module_template); //var template = utils.IndentAdder.getInstance().addIndents(indent,module_template); //注入模块名加载模版 template = utils.inject(template,{module:module}); // jstext = utils.inject(jstext,{definition:template}); }); //在最里层添加类定义 var indentedClass = utils.addIndents(indent+1,classText); //var indentedClass = utils.IndentAdder.getInstance().addIndents(indent+1,classText); jstext = utils.inject(jstext,{definition:indentedClass}); //jstext = utils.IndentAdder.getInstance().commit(jstext); }else{ jstext = classText; } console.log(jstext); //var relativeEXMLPath = file.getRelativePath(egret.args.projectDir,exmlPath); //var relativeTSPath = relativeEXMLPath.substring(0,relativeEXMLPath.lastIndexOf(".")).concat(".ts"); //var tspath = file.joinPath(egret.args.srcDir,"gen",relativeTSPath); //file.save(tspath,jstext); //console.log(tspath); //var jspath = exmlPath.substring(0,exmlPath.lastIndexOf(".")).concat(".ts"); //file.save(jspath,jstext); } console.log("test");