c03616eff2f2504da77623a2459ea4bc.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  1. ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
  2. var oop = require("../lib/oop");
  3. var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
  4. var DocCommentHighlightRules = function () {
  5. this.$rules = {
  6. "start": [
  7. {
  8. token: "comment.doc.tag",
  9. regex: "@\\w+(?=\\s|$)"
  10. }, DocCommentHighlightRules.getTagRule(), {
  11. defaultToken: "comment.doc.body",
  12. caseInsensitive: true
  13. }
  14. ]
  15. };
  16. };
  17. oop.inherits(DocCommentHighlightRules, TextHighlightRules);
  18. DocCommentHighlightRules.getTagRule = function (start) {
  19. return {
  20. token: "comment.doc.tag.storage.type",
  21. regex: "\\b(?:TODO|FIXME|XXX|HACK)\\b"
  22. };
  23. };
  24. DocCommentHighlightRules.getStartRule = function (start) {
  25. return {
  26. token: "comment.doc", // doc comment
  27. regex: /\/\*\*(?!\/)/,
  28. next: start
  29. };
  30. };
  31. DocCommentHighlightRules.getEndRule = function (start) {
  32. return {
  33. token: "comment.doc", // closing comment
  34. regex: "\\*\\/",
  35. next: start
  36. };
  37. };
  38. exports.DocCommentHighlightRules = DocCommentHighlightRules;
  39. });
  40. ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module){"use strict";
  41. var oop = require("../lib/oop");
  42. var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
  43. var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
  44. var JavaHighlightRules = function () {
  45. var identifierRe = "[a-zA-Z_$][a-zA-Z0-9_$]*";
  46. var keywords = ("abstract|continue|for|new|switch|" +
  47. "assert|default|goto|package|synchronized|" +
  48. "boolean|do|if|private|this|" +
  49. "break|double|implements|protected|throw|" +
  50. "byte|else|import|public|throws|" +
  51. "case|enum|instanceof|return|transient|" +
  52. "catch|extends|int|short|try|" +
  53. "char|final|interface|static|void|" +
  54. "class|finally|long|strictfp|volatile|" +
  55. "const|float|native|super|while|" +
  56. "yield|when|record|var|" +
  57. "permits|(?:non\\-)?sealed");
  58. var buildinConstants = ("null|Infinity|NaN|undefined");
  59. var langClasses = ("AbstractMethodError|AssertionError|ClassCircularityError|" +
  60. "ClassFormatError|Deprecated|EnumConstantNotPresentException|" +
  61. "ExceptionInInitializerError|IllegalAccessError|" +
  62. "IllegalThreadStateException|InstantiationError|InternalError|" +
  63. "NegativeArraySizeException|NoSuchFieldError|Override|Process|" +
  64. "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|" +
  65. "SuppressWarnings|TypeNotPresentException|UnknownError|" +
  66. "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|" +
  67. "InstantiationException|IndexOutOfBoundsException|" +
  68. "ArrayIndexOutOfBoundsException|CloneNotSupportedException|" +
  69. "NoSuchFieldException|IllegalArgumentException|NumberFormatException|" +
  70. "SecurityException|Void|InheritableThreadLocal|IllegalStateException|" +
  71. "InterruptedException|NoSuchMethodException|IllegalAccessException|" +
  72. "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|" +
  73. "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|" +
  74. "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|" +
  75. "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|" +
  76. "Character|Boolean|StackTraceElement|Appendable|StringBuffer|" +
  77. "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|" +
  78. "StackOverflowError|OutOfMemoryError|VirtualMachineError|" +
  79. "ArrayStoreException|ClassCastException|LinkageError|" +
  80. "NoClassDefFoundError|ClassNotFoundException|RuntimeException|" +
  81. "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|" +
  82. "Cloneable|Class|CharSequence|Comparable|String|Object");
  83. var keywordMapper = this.createKeywordMapper({
  84. "variable.language": "this",
  85. "constant.language": buildinConstants,
  86. "support.function": langClasses
  87. }, "identifier");
  88. this.$rules = {
  89. "start": [
  90. { include: "comments" },
  91. { include: "multiline-strings" },
  92. { include: "strings" },
  93. { include: "constants" },
  94. {
  95. regex: "(open(?:\\s+))?module(?=\\s*\\w)",
  96. token: "keyword",
  97. next: [{
  98. regex: "{",
  99. token: "paren.lparen",
  100. push: [
  101. {
  102. regex: "}",
  103. token: "paren.rparen",
  104. next: "pop"
  105. },
  106. { include: "comments" },
  107. {
  108. regex: "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",
  109. token: "keyword"
  110. }
  111. ]
  112. }, {
  113. token: "text",
  114. regex: "\\s+"
  115. }, {
  116. token: "identifier",
  117. regex: "\\w+"
  118. }, {
  119. token: "punctuation.operator",
  120. regex: "."
  121. }, {
  122. token: "text",
  123. regex: "\\s+"
  124. }, {
  125. regex: "", // exit if there is anything else
  126. next: "start"
  127. }]
  128. },
  129. { include: "statements" }
  130. ],
  131. "comments": [
  132. {
  133. token: "comment",
  134. regex: "\\/\\/.*$"
  135. },
  136. {
  137. token: "comment.doc", // doc comment
  138. regex: /\/\*\*(?!\/)/,
  139. push: "doc-start"
  140. },
  141. {
  142. token: "comment", // multi line comment
  143. regex: "\\/\\*",
  144. push: [
  145. {
  146. token: "comment", // closing comment
  147. regex: "\\*\\/",
  148. next: "pop"
  149. }, {
  150. defaultToken: "comment"
  151. }
  152. ]
  153. },
  154. ],
  155. "strings": [
  156. {
  157. token: ["punctuation", "string"],
  158. regex: /(\.)(")/,
  159. push: [
  160. {
  161. token: "lparen",
  162. regex: /\\\{/,
  163. push: [
  164. {
  165. token: "text",
  166. regex: /$/,
  167. next: "start"
  168. }, {
  169. token: "rparen",
  170. regex: /}/,
  171. next: "pop"
  172. }, {
  173. include: "strings"
  174. }, {
  175. include: "constants"
  176. }, {
  177. include: "statements"
  178. }
  179. ]
  180. }, {
  181. token: "string",
  182. regex: /"/,
  183. next: "pop"
  184. }, {
  185. defaultToken: "string"
  186. }
  187. ]
  188. }, {
  189. token: "string", // single line
  190. regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
  191. }, {
  192. token: "string", // single line
  193. regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
  194. }
  195. ],
  196. "multiline-strings": [
  197. {
  198. token: ["punctuation", "string"],
  199. regex: /(\.)(""")/,
  200. push: [
  201. {
  202. token: "string",
  203. regex: '"""',
  204. next: "pop"
  205. }, {
  206. token: "lparen",
  207. regex: /\\\{/,
  208. push: [
  209. {
  210. token: "text",
  211. regex: /$/,
  212. next: "start"
  213. }, {
  214. token: "rparen",
  215. regex: /}/,
  216. next: "pop"
  217. }, {
  218. include: "multiline-strings"
  219. }, {
  220. include: "strings"
  221. }, {
  222. include: "constants"
  223. }, {
  224. include: "statements"
  225. }
  226. ]
  227. }, {
  228. token: "constant.language.escape",
  229. regex: /\\./
  230. }, {
  231. defaultToken: "string"
  232. }
  233. ]
  234. },
  235. {
  236. token: "string",
  237. regex: '"""',
  238. push: [
  239. {
  240. token: "string",
  241. regex: '"""',
  242. next: "pop"
  243. }, {
  244. token: "constant.language.escape",
  245. regex: /\\./
  246. }, {
  247. defaultToken: "string"
  248. }
  249. ]
  250. }
  251. ],
  252. "constants": [
  253. {
  254. token: "constant.numeric", // hex
  255. regex: /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/
  256. }, {
  257. token: "constant.numeric", // float
  258. regex: /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/
  259. }, {
  260. token: "constant.language.boolean",
  261. regex: "(?:true|false)\\b"
  262. }
  263. ],
  264. "statements": [
  265. {
  266. token: ["keyword", "text", "identifier"],
  267. regex: "(record)(\\s+)(" + identifierRe + ")\\b"
  268. },
  269. {
  270. token: "keyword",
  271. regex: "(?:" + keywords + ")\\b"
  272. }, {
  273. token: "storage.type.annotation",
  274. regex: "@" + identifierRe + "\\b"
  275. }, {
  276. token: "entity.name.function",
  277. regex: identifierRe + "(?=\\()"
  278. }, {
  279. token: keywordMapper, // TODO: Unicode escape sequences
  280. regex: identifierRe + "\\b"
  281. }, {
  282. token: "keyword.operator",
  283. regex: "!|\\$|%|&|\\||\\^|\\*|\\/|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?|\\:|\\*=|\\/=|%=|\\+=|\\-=|&=|\\|=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"
  284. }, {
  285. token: "lparen",
  286. regex: "[[({]"
  287. }, {
  288. token: "rparen",
  289. regex: "[\\])}]"
  290. }, {
  291. token: "text",
  292. regex: "\\s+"
  293. }
  294. ]
  295. };
  296. this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("pop")]);
  297. this.normalizeRules();
  298. };
  299. oop.inherits(JavaHighlightRules, TextHighlightRules);
  300. exports.JavaHighlightRules = JavaHighlightRules;
  301. });
  302. ace.define("ace/mode/drools_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/java_highlight_rules","ace/mode/doc_comment_highlight_rules"], function(require, exports, module){"use strict";
  303. var oop = require("../lib/oop");
  304. var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
  305. var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules;
  306. var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
  307. var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
  308. var packageIdentifierRe = "[a-zA-Z\\$_\u00a1-\uffff][\\.a-zA-Z\\d\\$_\u00a1-\uffff]*";
  309. var DroolsHighlightRules = function () {
  310. var keywords = ("date|effective|expires|lock|on|active|no|loop|auto|focus" +
  311. "|activation|group|agenda|ruleflow|duration|timer|calendars|refract|direct" +
  312. "|dialect|salience|enabled|attributes|extends|template" +
  313. "|function|contains|matches|eval|excludes|soundslike" +
  314. "|memberof|not|in|or|and|exists|forall|over|from|entry|point|accumulate|acc|collect" +
  315. "|action|reverse|result|end|init|instanceof|extends|super|boolean|char|byte|short" +
  316. "|int|long|float|double|this|void|class|new|case|final|if|else|for|while|do" +
  317. "|default|try|catch|finally|switch|synchronized|return|throw|break|continue|assert" +
  318. "|modify|static|public|protected|private|abstract|native|transient|volatile" +
  319. "|strictfp|throws|interface|enum|implements|type|window|trait|no-loop|str");
  320. var langClasses = ("AbstractMethodError|AssertionError|ClassCircularityError|" +
  321. "ClassFormatError|Deprecated|EnumConstantNotPresentException|" +
  322. "ExceptionInInitializerError|IllegalAccessError|" +
  323. "IllegalThreadStateException|InstantiationError|InternalError|" +
  324. "NegativeArraySizeException|NoSuchFieldError|Override|Process|" +
  325. "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|" +
  326. "SuppressWarnings|TypeNotPresentException|UnknownError|" +
  327. "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|" +
  328. "InstantiationException|IndexOutOfBoundsException|" +
  329. "ArrayIndexOutOfBoundsException|CloneNotSupportedException|" +
  330. "NoSuchFieldException|IllegalArgumentException|NumberFormatException|" +
  331. "SecurityException|Void|InheritableThreadLocal|IllegalStateException|" +
  332. "InterruptedException|NoSuchMethodException|IllegalAccessException|" +
  333. "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|" +
  334. "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|" +
  335. "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|" +
  336. "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|" +
  337. "Character|Boolean|StackTraceElement|Appendable|StringBuffer|" +
  338. "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|" +
  339. "StackOverflowError|OutOfMemoryError|VirtualMachineError|" +
  340. "ArrayStoreException|ClassCastException|LinkageError|" +
  341. "NoClassDefFoundError|ClassNotFoundException|RuntimeException|" +
  342. "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|" +
  343. "Cloneable|Class|CharSequence|Comparable|String|Object");
  344. var keywordMapper = this.createKeywordMapper({
  345. "variable.language": "this",
  346. "keyword": keywords,
  347. "constant.language": "null",
  348. "support.class": langClasses,
  349. "support.function": "retract|update|modify|insert"
  350. }, "identifier");
  351. var stringRules = function () {
  352. return [{
  353. token: "string", // single line
  354. regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
  355. }, {
  356. token: "string", // single line
  357. regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
  358. }];
  359. };
  360. var basicPreRules = function (blockCommentRules) {
  361. return [{
  362. token: "comment",
  363. regex: "\\/\\/.*$"
  364. },
  365. DocCommentHighlightRules.getStartRule("doc-start"),
  366. {
  367. token: "comment", // multi line comment
  368. regex: "\\/\\*",
  369. next: blockCommentRules
  370. }, {
  371. token: "constant.numeric", // hex
  372. regex: "0[xX][0-9a-fA-F]+\\b"
  373. }, {
  374. token: "constant.numeric", // float
  375. regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
  376. }, {
  377. token: "constant.language.boolean",
  378. regex: "(?:true|false)\\b"
  379. }];
  380. };
  381. var blockCommentRules = function (returnRule) {
  382. return [
  383. {
  384. token: "comment.block", // closing comment
  385. regex: "\\*\\/",
  386. next: returnRule
  387. }, {
  388. defaultToken: "comment.block"
  389. }
  390. ];
  391. };
  392. var basicPostRules = function () {
  393. return [{
  394. token: keywordMapper,
  395. regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
  396. }, {
  397. token: "keyword.operator",
  398. regex: "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"
  399. }, {
  400. token: "lparen",
  401. regex: "[[({]"
  402. }, {
  403. token: "rparen",
  404. regex: "[\\])}]"
  405. }, {
  406. token: "text",
  407. regex: "\\s+"
  408. }];
  409. };
  410. this.$rules = {
  411. "start": [].concat(basicPreRules("block.comment"), [
  412. {
  413. token: "entity.name.type",
  414. regex: "@[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
  415. }, {
  416. token: ["keyword", "text", "entity.name.type"],
  417. regex: "(package)(\\s+)(" + packageIdentifierRe + ")"
  418. }, {
  419. token: ["keyword", "text", "keyword", "text", "entity.name.type"],
  420. regex: "(import)(\\s+)(function)(\\s+)(" + packageIdentifierRe + ")"
  421. }, {
  422. token: ["keyword", "text", "entity.name.type"],
  423. regex: "(import)(\\s+)(" + packageIdentifierRe + ")"
  424. }, {
  425. token: ["keyword", "text", "entity.name.type", "text", "variable"],
  426. regex: "(global)(\\s+)(" + packageIdentifierRe + ")(\\s+)(" + identifierRe + ")"
  427. }, {
  428. token: ["keyword", "text", "keyword", "text", "entity.name.type"],
  429. regex: "(declare)(\\s+)(trait)(\\s+)(" + identifierRe + ")"
  430. }, {
  431. token: ["keyword", "text", "entity.name.type"],
  432. regex: "(declare)(\\s+)(" + identifierRe + ")"
  433. }, {
  434. token: ["keyword", "text", "entity.name.type"],
  435. regex: "(extends)(\\s+)(" + packageIdentifierRe + ")"
  436. }, {
  437. token: ["keyword", "text"],
  438. regex: "(rule)(\\s+)",
  439. next: "asset.name"
  440. }
  441. ], stringRules(), [{
  442. token: ["variable.other", "text", "text"],
  443. regex: "(" + identifierRe + ")(\\s*)(:)"
  444. }, {
  445. token: ["keyword", "text"],
  446. regex: "(query)(\\s+)",
  447. next: "asset.name"
  448. }, {
  449. token: ["keyword", "text"],
  450. regex: "(when)(\\s*)"
  451. }, {
  452. token: ["keyword", "text"],
  453. regex: "(then)(\\s*)",
  454. next: "java-start"
  455. }, {
  456. token: "paren.lparen",
  457. regex: /[\[({]/
  458. }, {
  459. token: "paren.rparen",
  460. regex: /[\])}]/
  461. }], basicPostRules()),
  462. "block.comment": blockCommentRules("start"),
  463. "asset.name": [
  464. {
  465. token: "entity.name",
  466. regex: '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
  467. }, {
  468. token: "entity.name",
  469. regex: "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
  470. }, {
  471. token: "entity.name",
  472. regex: identifierRe
  473. }, {
  474. regex: "",
  475. token: "empty",
  476. next: "start"
  477. }
  478. ]
  479. };
  480. this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("start")]);
  481. this.embedRules(JavaHighlightRules, "java-", [
  482. {
  483. token: "support.function",
  484. regex: "\\b(insert|modify|retract|update)\\b"
  485. }, {
  486. token: "keyword",
  487. regex: "\\bend\\b",
  488. next: "start"
  489. }
  490. ]);
  491. };
  492. oop.inherits(DroolsHighlightRules, TextHighlightRules);
  493. exports.DroolsHighlightRules = DroolsHighlightRules;
  494. });
  495. ace.define("ace/mode/folding/drools",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"], function(require, exports, module){"use strict";
  496. var oop = require("../../lib/oop");
  497. var Range = require("../../range").Range;
  498. var BaseFoldMode = require("./fold_mode").FoldMode;
  499. var TokenIterator = require("../../token_iterator").TokenIterator;
  500. var FoldMode = exports.FoldMode = function () { };
  501. oop.inherits(FoldMode, BaseFoldMode);
  502. (function () {
  503. this.foldingStartMarker = /\b(rule|declare|query|when|then)\b/;
  504. this.foldingStopMarker = /\bend\b/;
  505. this.getFoldWidgetRange = function (session, foldStyle, row) {
  506. var line = session.getLine(row);
  507. var match = line.match(this.foldingStartMarker);
  508. if (match) {
  509. var i = match.index;
  510. if (match[1]) {
  511. var position = { row: row, column: line.length };
  512. var iterator = new TokenIterator(session, position.row, position.column);
  513. var seek = "end";
  514. var token = iterator.getCurrentToken();
  515. if (token.value == "when") {
  516. seek = "then";
  517. }
  518. while (token) {
  519. if (token.value == seek) {
  520. return Range.fromPoints(position, {
  521. row: iterator.getCurrentTokenRow(),
  522. column: iterator.getCurrentTokenColumn()
  523. });
  524. }
  525. token = iterator.stepForward();
  526. }
  527. }
  528. }
  529. };
  530. }).call(FoldMode.prototype);
  531. });
  532. ace.define("ace/mode/drools",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/drools_highlight_rules","ace/mode/folding/drools"], function(require, exports, module){"use strict";
  533. var oop = require("../lib/oop");
  534. var TextMode = require("./text").Mode;
  535. var DroolsHighlightRules = require("./drools_highlight_rules").DroolsHighlightRules;
  536. var DroolsFoldMode = require("./folding/drools").FoldMode;
  537. var Mode = function () {
  538. this.HighlightRules = DroolsHighlightRules;
  539. this.foldingRules = new DroolsFoldMode();
  540. this.$behaviour = this.$defaultBehaviour;
  541. };
  542. oop.inherits(Mode, TextMode);
  543. (function () {
  544. this.lineCommentStart = "//";
  545. this.$id = "ace/mode/drools";
  546. this.snippetFileId = "ace/snippets/drools";
  547. }).call(Mode.prototype);
  548. exports.Mode = Mode;
  549. }); (function() {
  550. ace.require(["ace/mode/drools"], function(m) {
  551. if (typeof module == "object" && typeof exports == "object" && module) {
  552. module.exports = m;
  553. }
  554. });
  555. })();