regexrules.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. module.exports = {
  2. simple : {
  3. echo : "^#echo[ \t]+(.*?)[ \t]*$",
  4. exec : "^#exec[ \t]+(\\S+)[ \t]*\\((.*)\\)[ \t]*$",
  5. include : "^(.*)#include(?!-)[ \t]+(.*?)[ \t]*$", // allow prefix characters to specify the indent level of included file
  6. 'include-static' : "^(.*)#include-static[ \t]+(.*?)[ \t]*$"
  7. },
  8. html : {
  9. echo : "<!--[ \t]*#echo[ \t]+(.*?)[ \t]*(?:-->|!>)",
  10. exec : "<!--[ \t]*#exec[ \t]+(\\S+)[ \t]*\\((.*)\\)[ \t]*(?:-->|!>)",
  11. include : "(.*)<!--[ \t]*#include(?!-)[ \t]+(.*?)[ \t]*(?:-->|!>)",
  12. 'include-static' : "(.*)<!--[ \t]*#include-static[ \t]+(.*?)[ \t]*(?:-->|!>)",
  13. exclude : {
  14. start : "[ \t]*<!--[ \t]*#exclude(?:[ \t]+(.*?))?[ \t]*(?:-->|!>)(?:[ \t]*\n+)?",
  15. end : "[ \t]*<!--[ \t]*#endexclude[ \t]*(?:-->|!>)(?:[ \t]*\n)?"
  16. },
  17. extend : {
  18. start : "[ \t]*<!--[ \t]*#extend(?!able)[ \t]+(.*?)[ \t]*(?:-->|!>)(?:[ \t]*\n+)?",
  19. end : "[ \t]*<!--[ \t]*#endextend[ \t]*(?:-->|!>)(?:[ \t]*\n)?"
  20. },
  21. extendable : "<!--[ \t]*#extendable[ \t]*(?:-->|!>)",
  22. if : {
  23. start : "[ \t]*<!--[ \t]*#(ifndef|ifdef|if)[ \t]+(.*?)[ \t]*(?:-->|!>)(?:[ \t]*\n+)?",
  24. end : "[ \t]*<!(?:--)?[ \t]*#endif[ \t]*(?:-->|!>)(?:[ \t]*\n)?"
  25. },
  26. else : "[ \t]*<!(?:--)?[ \t]*#else[ \t]*(?:-->|!>)(?:[ \t]*\n)?",
  27. foreach : {
  28. start : "[ \t]*<!--[ \t]*#foreach[ \t]+(.*?)[ \t]*(?:-->|!>)(?:[ \t]*\n+)?",
  29. end : "[ \t]*<!(?:--)?[ \t]*#endfor[ \t]*(?:-->|!>)(?:[ \t]*\n)?"
  30. }
  31. },
  32. js : {
  33. echo : [
  34. "/\\*[ \t]*#echo[ \t]+(.*?)[ \t]*\\*(?:\\*|/)",
  35. "//[ \t]*#echo[ \t]+(.*?)[ \t]*$"
  36. ],
  37. exec : "(?://|/\\*)[ \t]*#exec[ \t]+(\\S+?)[ \t]*\\((.*)\\)[ \t]*(?:\\*(?:\\*|/))?",
  38. include : [
  39. "^(.*)/\\*[ \t]*#include(?!-)[ \t]+(.*?)[ \t]*\\*(?:\\*|/)",
  40. "^(.*)//[ \t]*#include(?!-)[ \t]+(.*?)[ \t]*$"
  41. ],
  42. 'include-static': [
  43. "^(.*)/\\*[ \t]*#include-static[ \t]+(.*?)[ \t]*\\*(?:\\*|/)",
  44. "^(.*)//[ \t]*#include-static[ \t]+(.*?)[ \t]*$"
  45. ],
  46. exclude : {
  47. start : "[ \t]*(?://|/\\*)[ \t]*#exclude(?:[ \t]+([^\n*]*))?[ \t]*(?:\\*(?:\\*|/))?(?:[ \t]*\n+)?",
  48. end : "[ \t]*(?://|/\\*)[ \t]*#endexclude[ \t]*(?:\\*(?:\\*|/))?(?:[ \t]*\n)?"
  49. },
  50. extend : {
  51. start : "[ \t]*(?://|/\\*)[ \t]*#extend(?!able)[ \t]+([^\n*]*)(?:\\*(?:\\*|/))?(?:[ \t]*\n+)?",
  52. end : "[ \t]*(?://|/\\*)[ \t]*#endextend[ \t]*(?:\\*(?:\\*|/))?(?:[ \t]*\n)?"
  53. },
  54. extendable : "[ \t]*(?://|/\\*)[ \t]*#extendable[ \t]*(?:\\*/)?",
  55. if : {
  56. start : "[ \t]*(?://|/\\*)[ \t]*#(ifndef|ifdef|if)[ \t]+([^\n*]*)(?:\\*(?:\\*|/))?(?:[ \t]*\n+)?",
  57. end : "[ \t]*(?://|/\\*)[ \t]*#endif[ \t]*(?:\\*(?:\\*|/))?(?:[ \t]*\n)?"
  58. },
  59. else : "[ \t]*(?://|/\\*)[ \t]*#else[ \t]*(?:\\*(?:\\*|/))?(?:[ \t]*\n)?",
  60. foreach : {
  61. start : "[ \t]*(?://|/\\*)[ \t]*#foreach[ \t]+([^\n*]*)(?:\\*(?:\\*|/))?(?:[ \t]*\n+)?",
  62. end : "[ \t]*(?://|/\\*)[ \t]*#endfor[ \t]*(?:\\*(?:\\*|/))?(?:[ \t]*\n)?"
  63. }
  64. },
  65. coffee : {
  66. echo : [
  67. "###+[ \t]*#echo[ \t]+(.*?)[ \t]###",
  68. "#+[ \t]*#echo[ \t]+(.*?)[ \t]*$"
  69. ],
  70. exec : "#+[ \t]*#exec[ \t]+(\\S+)[ \t]*\\((.*)\\)[ \t]*$",
  71. include : "^(.*?)#+[ \t]*#include(?!-)[ \t]+(.*?)[ \t]*$",
  72. 'include-static' : "^(.*?)#+[ \t]*#include-static[ \t]+(.*?)[ \t]*$",
  73. exclude : {
  74. start : "^[ \t]*#+[ \t]*#exclude(?:[ \t]+(.*?))?[ \t]*\n+",
  75. end : "^[ \t]*#+[ \t]*#endexclude[ \t]*\n?"
  76. },
  77. extend : {
  78. start : "^[ \t]*#+[ \t]*#extend(?!able)[ \t]+(.*?)\n+",
  79. end : "^[ \t]*#+[ \t]*#endextend[ \t]*\n?"
  80. },
  81. extendable : "^[ \t]*#+[ \t]*#extendable[ \t]*$",
  82. if : {
  83. start : "^[ \t]*#+[ \t]*#(ifndef|ifdef|if)[ \t]+(.*?)[ \t]*\n+",
  84. end : "^[ \t]*#+[ \t]*#endif[ \t]*\n?"
  85. },
  86. else : "^[ \t]*#+[ \t]*#else[ \t]*\n?",
  87. foreach : {
  88. start : "^[ \t]*#+[ \t]*#foreach[ \t]+(.*?)[ \t]*\n+",
  89. end : "^[ \t]*#+[ \t]*#endfor[ \t]*\n?"
  90. }
  91. }
  92. };
  93. module.exports.xml = module.exports.html;
  94. module.exports.javascript = module.exports.js;
  95. module.exports.jsx = module.exports.js;
  96. module.exports.json = module.exports.js;
  97. module.exports.c = module.exports.js;
  98. module.exports.cc = module.exports.js;
  99. module.exports.cpp = module.exports.js;
  100. module.exports.cs = module.exports.js;
  101. module.exports.csharp = module.exports.js;
  102. module.exports.java = module.exports.js;
  103. module.exports.less = module.exports.js;
  104. module.exports.sass = module.exports.js;
  105. module.exports.scss = module.exports.js;
  106. module.exports.css = module.exports.js;
  107. module.exports.php = module.exports.js;
  108. module.exports.ts = module.exports.js;
  109. module.exports.tsx = module.exports.js;
  110. module.exports.peg = module.exports.js;
  111. module.exports.pegjs = module.exports.js;
  112. module.exports.jade = module.exports.js;
  113. module.exports.styl = module.exports.js;
  114. module.exports.go = module.exports.js;
  115. module.exports.bash = module.exports.coffee;
  116. module.exports.shell = module.exports.coffee;
  117. module.exports.sh = module.exports.coffee;