zoukankan      html  css  js  c++  java
  • 根据EXML文件,生成组件声明代码

    工作中时常需要把EXML代码中声明的组件编写到ts文件中,耗时耗力。

    因此编写一个小工具,自动生成组件声明代码。


     


    工具代码如下:

    1. var fs = require("fs")
    2. var readline = require('readline');
    3. var rl = readline.createInterface(process.stdin, process.stdout);
    4. var input = "";
    5. rl.question("输入EXML代码:", function () { });
    6. rl.on('line', function (line) {
    7. input += " " + line;
    8. });
    9. rl.on('close', function () {
    10. parseEXML(input);
    11. process.exit(0);
    12. });
    13. //解析EXML
    14. var parseEXML = function (str) {
    15. var fileStr = "";
    16. var linePattern = / /g;//获得每一行代码
    17. var arr = str.split(linePattern)
    18. for (var i in arr) {
    19. var lineStr = arr[i];
    20. var idParrern = / id="(.*?)"/i;//匹配ID
    21. var idResult = lineStr.match(idParrern);
    22. if (idResult) {
    23. var idStr = idResult[1]
    24. if (idStr.match(/^d/)) continue;//数字开头的ID跳过
    25. var classNameParrern = /:(.*?) /i;//匹配类名
    26. var classNameResult = lineStr.match(classNameParrern);
    27. if (classNameResult[1] == "Config") continue;//Config跳过
    28. var classNameStr = classNameResult[1];
    29. var nameSpaceParrern = /<(.*?):/i;//匹配命名空间
    30. var nameSapceResult = lineStr.match(nameSpaceParrern);
    31. var nameSpaceStr = nameSapceResult[1] == "e" ? "eui" : nameSapceResult[1];
    32. fileStr += " private " + idStr + ": " + nameSpaceStr + "." + classNameStr + "; ";
    33. }
    34. }
    35. console.log(" 生成组件声明代码: ")
    36. console.log(fileStr);
    37. }






  • 相关阅读:
    HDU 5247
    HDU 4965
    CodeForces 445B
    HDU 5835
    CodeForces 731C
    HDU 5783
    CodeForces 660D
    POJ 1631
    HDU 6112
    HDU 5860
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/7220146.html
Copyright © 2011-2022 走看看