Projekt

Obecné

Profil

Stáhnout (121 KB) Statistiky
| Větev: | Tag: | Revize:
1
ace.define("ace/mode/csound_preprocessor_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
"use strict";
3

    
4
var oop = require("../lib/oop");
5

    
6
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
7

    
8
var CsoundPreprocessorHighlightRules = function(embeddedRulePrefix) {
9

    
10
    this.embeddedRulePrefix = embeddedRulePrefix === undefined ? "" : embeddedRulePrefix;
11

    
12
    this.semicolonComments = {
13
        token : "comment.line.semicolon.csound",
14
        regex : ";.*$"
15
    };
16

    
17
    this.comments = [
18
        {
19
            token : "punctuation.definition.comment.begin.csound",
20
            regex : "/\\*",
21
            push  : [
22
                {
23
                    token : "punctuation.definition.comment.end.csound",
24
                    regex : "\\*/",
25
                    next  : "pop"
26
                }, {
27
                    defaultToken: "comment.block.csound"
28
                }
29
            ]
30
        }, {
31
            token : "comment.line.double-slash.csound",
32
            regex : "//.*$"
33
        },
34
        this.semicolonComments
35
    ];
36

    
37
    this.macroUses = [
38
        {
39
            token : ["entity.name.function.preprocessor.csound", "punctuation.definition.macro-parameter-value-list.begin.csound"],
40
            regex : /(\$[A-Z_a-z]\w*\.?)(\()/,
41
            next  : "macro parameter value list"
42
        }, {
43
            token : "entity.name.function.preprocessor.csound",
44
            regex : /\$[A-Z_a-z]\w*(?:\.|\b)/
45
        }
46
    ];
47

    
48
    this.numbers = [
49
        {
50
            token : "constant.numeric.float.csound",
51
            regex : /(?:\d+[Ee][+-]?\d+)|(?:\d+\.\d*|\d*\.\d+)(?:[Ee][+-]?\d+)?/
52
        }, {
53
            token : ["storage.type.number.csound", "constant.numeric.integer.hexadecimal.csound"],
54
            regex : /(0[Xx])([0-9A-Fa-f]+)/
55
        }, {
56
            token : "constant.numeric.integer.decimal.csound",
57
            regex : /\d+/
58
        }
59
    ];
60

    
61
    this.bracedStringContents = [
62
        {
63
            token : "constant.character.escape.csound",
64
            regex : /\\(?:[\\abnrt"]|[0-7]{1,3})/
65
        },
66
        {
67
            token : "constant.character.placeholder.csound",
68
            regex : /%[#0\- +]*\d*(?:\.\d+)?[diuoxXfFeEgGaAcs]/
69
        }, {
70
            token : "constant.character.escape.csound",
71
            regex : /%%/
72
        }
73
    ];
74

    
75
    this.quotedStringContents = [
76
        this.macroUses,
77
        this.bracedStringContents
78
    ];
79

    
80
    var start = [
81
        this.comments,
82

    
83
        {
84
            token : "keyword.preprocessor.csound",
85
            regex : /#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+/
86
        }, {
87
            token : "keyword.preprocessor.csound",
88
            regex : /#include/,
89
            push  : [
90
                this.comments,
91
                {
92
                    token : "string.csound",
93
                    regex : /([^ \t])(?:.*?\1)/,
94
                    next  : "pop"
95
                }
96
            ]
97
        }, {
98
            token : "keyword.preprocessor.csound",
99
            regex : /#includestr/,
100
            push  : [
101
                this.comments,
102
                {
103
                    token : "string.csound",
104
                    regex : /([^ \t])(?:.*?\1)/,
105
                    next  : "pop"
106
                }
107
            ]
108
        }, {
109
            token : "keyword.preprocessor.csound",
110
            regex : /#[ \t]*define/,
111
            next  : "define directive"
112
        }, {
113
            token : "keyword.preprocessor.csound",
114
            regex : /#(?:ifn?def|undef)\b/,
115
            next  : "macro directive"
116
        },
117

    
118
        this.macroUses
119
    ];
120

    
121
    this.$rules = {
122
        "start": start,
123

    
124
        "define directive": [
125
            this.comments,
126
            {
127
                token : "entity.name.function.preprocessor.csound",
128
                regex : /[A-Z_a-z]\w*/
129
            }, {
130
                token : "punctuation.definition.macro-parameter-name-list.begin.csound",
131
                regex : /\(/,
132
                next  : "macro parameter name list"
133
            }, {
134
                token : "punctuation.definition.macro.begin.csound",
135
                regex : /#/,
136
                next  : "macro body"
137
            }
138
        ],
139
        "macro parameter name list": [
140
            {
141
                token : "variable.parameter.preprocessor.csound",
142
                regex : /[A-Z_a-z]\w*/
143
            }, {
144
                token : "punctuation.definition.macro-parameter-name-list.end.csound",
145
                regex : /\)/,
146
                next  : "define directive"
147
            }
148
        ],
149
        "macro body": [
150
            {
151
                token : "constant.character.escape.csound",
152
                regex : /\\#/
153
            }, {
154
                token : "punctuation.definition.macro.end.csound",
155
                regex : /#/,
156
                next  : "start"
157
            },
158
            start
159
        ],
160

    
161
        "macro directive": [
162
            this.comments,
163
            {
164
                token : "entity.name.function.preprocessor.csound",
165
                regex : /[A-Z_a-z]\w*/,
166
                next  : "start"
167
            }
168
        ],
169

    
170
        "macro parameter value list": [
171
            {
172
                token : "punctuation.definition.macro-parameter-value-list.end.csound",
173
                regex : /\)/,
174
                next  : "start"
175
            }, {
176
                token : "punctuation.definition.string.begin.csound",
177
                regex : /"/,
178
                next  : "macro parameter value quoted string"
179
            }, this.pushRule({
180
                token : "punctuation.macro-parameter-value-parenthetical.begin.csound",
181
                regex : /\(/,
182
                next  : "macro parameter value parenthetical"
183
            }), {
184
                token : "punctuation.macro-parameter-value-separator.csound",
185
                regex : "[#']"
186
            }
187
        ],
188
        "macro parameter value quoted string": [
189
            {
190
                token : "constant.character.escape.csound",
191
                regex : /\\[#'()]/
192
            }, {
193
                token : "invalid.illegal.csound",
194
                regex : /[#'()]/
195
            }, {
196
                token : "punctuation.definition.string.end.csound",
197
                regex : /"/,
198
                next  : "macro parameter value list"
199
            },
200
            this.quotedStringContents,
201
            {
202
                defaultToken: "string.quoted.csound"
203
            }
204
        ],
205
        "macro parameter value parenthetical": [
206
            {
207
                token : "constant.character.escape.csound",
208
                regex : /\\\)/
209
            }, this.popRule({
210
                token : "punctuation.macro-parameter-value-parenthetical.end.csound",
211
                regex : /\)/
212
            }), this.pushRule({
213
                token : "punctuation.macro-parameter-value-parenthetical.begin.csound",
214
                regex : /\(/,
215
                next  : "macro parameter value parenthetical"
216
            }),
217
            start
218
        ]
219
    };
220
};
221

    
222
oop.inherits(CsoundPreprocessorHighlightRules, TextHighlightRules);
223

    
224
(function() {
225

    
226
    this.pushRule = function(params) {
227
        if (Array.isArray(params.next)) {
228
            for (var i = 0; i < params.next.length; i++) {
229
                params.next[i] = this.embeddedRulePrefix + params.next[i];
230
            }
231
        }
232

    
233
        return {
234
            regex : params.regex, onMatch: function(value, currentState, stack, line) {
235
                if (stack.length === 0)
236
                    stack.push(currentState);
237
                if (Array.isArray(params.next)) {
238
                    for (var i = 0; i < params.next.length; i++) {
239
                        stack.push(params.next[i]);
240
                    }
241
                } else {
242
                    stack.push(params.next);
243
                }
244
                this.next = stack[stack.length - 1];
245
                return params.token;
246
            },
247

    
248
            get next() { return Array.isArray(params.next) ? params.next[params.next.length - 1] : params.next; },
249
            set next(next) {
250
                if (!Array.isArray(params.next)) {
251
                    params.next = next;
252
                }
253
            },
254

    
255
            get token() { return params.token; }
256
        };
257
    };
258

    
259
    this.popRule = function(params) {
260
        if (params.next) {
261
            params.next = this.embeddedRulePrefix + params.next;
262
        }
263

    
264
        return {
265
            regex : params.regex, onMatch: function(value, currentState, stack, line) {
266
                stack.pop();
267
                if (params.next) {
268
                    stack.push(params.next);
269
                    this.next = stack[stack.length - 1];
270
                } else {
271
                    this.next = stack.length > 1 ? stack[stack.length - 1] : stack.pop();
272
                }
273
                return params.token;
274
            }
275
        };
276
    };
277

    
278
}).call(CsoundPreprocessorHighlightRules.prototype);
279

    
280
exports.CsoundPreprocessorHighlightRules = CsoundPreprocessorHighlightRules;
281
});
282

    
283
ace.define("ace/mode/csound_score_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/csound_preprocessor_highlight_rules"], function(require, exports, module) {
284
"use strict";
285

    
286
var oop = require("../lib/oop");
287

    
288
var CsoundPreprocessorHighlightRules = require("./csound_preprocessor_highlight_rules").CsoundPreprocessorHighlightRules;
289

    
290
var CsoundScoreHighlightRules = function(embeddedRulePrefix) {
291

    
292
    CsoundPreprocessorHighlightRules.call(this, embeddedRulePrefix);
293

    
294
    this.quotedStringContents.push({
295
        token : "invalid.illegal.csound-score",
296
        regex : /[^"]*$/
297
    });
298

    
299
    var start = this.$rules.start;
300
    start.push(
301
        {
302
            token : "keyword.control.csound-score",
303
            regex : /[abCdefiqstvxy]/
304
        }, {
305
            token : "invalid.illegal.csound-score",
306
            regex : /w/
307
        }, {
308
            token : "constant.numeric.language.csound-score",
309
            regex : /z/
310
        }, {
311
            token : ["keyword.control.csound-score", "constant.numeric.integer.decimal.csound-score"],
312
            regex : /([nNpP][pP])(\d+)/
313
        }, {
314
            token : "keyword.other.csound-score",
315
            regex : /[mn]/,
316
            push  : [
317
                {
318
                    token : "empty",
319
                    regex : /$/,
320
                    next  : "pop"
321
                },
322
                this.comments,
323
                {
324
                    token : "entity.name.label.csound-score",
325
                    regex : /[A-Z_a-z]\w*/
326
                }
327
            ]
328
        }, {
329
            token : "keyword.preprocessor.csound-score",
330
            regex : /r\b/,
331
            next  : "repeat section"
332
        },
333

    
334
        this.numbers,
335

    
336
        {
337
            token : "keyword.operator.csound-score",
338
            regex : "[!+\\-*/^%&|<>#~.]"
339
        },
340

    
341
        this.pushRule({
342
            token : "punctuation.definition.string.begin.csound-score",
343
            regex : /"/,
344
            next  : "quoted string"
345
        }),
346

    
347
        this.pushRule({
348
            token : "punctuation.braced-loop.begin.csound-score",
349
            regex : /{/,
350
            next  : "loop after left brace"
351
        })
352
    );
353

    
354
    this.addRules({
355
        "repeat section": [
356
            {
357
                token : "empty",
358
                regex : /$/,
359
                next  : "start"
360
            },
361
            this.comments,
362
            {
363
                token : "constant.numeric.integer.decimal.csound-score",
364
                regex : /\d+/,
365
                next  : "repeat section before label"
366
            }
367
        ],
368
        "repeat section before label": [
369
            {
370
                token : "empty",
371
                regex : /$/,
372
                next  : "start"
373
            },
374
            this.comments,
375
            {
376
                token : "entity.name.label.csound-score",
377
                regex : /[A-Z_a-z]\w*/,
378
                next  : "start"
379
            }
380
        ],
381

    
382
        "quoted string": [
383
            this.popRule({
384
                token : "punctuation.definition.string.end.csound-score",
385
                regex : /"/
386
            }),
387
            this.quotedStringContents,
388
            {
389
                defaultToken: "string.quoted.csound-score"
390
            }
391
        ],
392

    
393
        "loop after left brace": [
394
            this.popRule({
395
                token : "constant.numeric.integer.decimal.csound-score",
396
                regex : /\d+/,
397
                next  : "loop after repeat count"
398
            }),
399
            this.comments,
400
            {
401
                token : "invalid.illegal.csound",
402
                regex : /\S.*/
403
            }
404
        ],
405
        "loop after repeat count": [
406
            this.popRule({
407
                token : "entity.name.function.preprocessor.csound-score",
408
                regex : /[A-Z_a-z]\w*\b/,
409
                next  : "loop after macro name"
410
            }),
411
            this.comments,
412
            {
413
                token : "invalid.illegal.csound",
414
                regex : /\S.*/
415
            }
416
        ],
417
        "loop after macro name": [
418
            start,
419
            this.popRule({
420
                token : "punctuation.braced-loop.end.csound-score",
421
                regex : /}/
422
            })
423
        ]
424
    });
425

    
426
    this.normalizeRules();
427
};
428

    
429
oop.inherits(CsoundScoreHighlightRules, CsoundPreprocessorHighlightRules);
430

    
431
exports.CsoundScoreHighlightRules = CsoundScoreHighlightRules;
432
});
433

    
434
ace.define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
435
"use strict";
436

    
437
var oop = require("../lib/oop");
438
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
439

    
440
var LuaHighlightRules = function() {
441

    
442
    var keywords = (
443
        "break|do|else|elseif|end|for|function|if|in|local|repeat|"+
444
         "return|then|until|while|or|and|not"
445
    );
446

    
447
    var builtinConstants = ("true|false|nil|_G|_VERSION");
448

    
449
    var functions = (
450
        "string|xpcall|package|tostring|print|os|unpack|require|"+
451
        "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+
452
        "collectgarbage|getmetatable|module|rawset|math|debug|"+
453
        "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+
454
        "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+
455
        "load|error|loadfile|"+
456

    
457
        "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+
458
        "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+
459
        "loaders|cpath|config|path|seeall|exit|setlocale|date|"+
460
        "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+
461
        "lines|write|close|flush|open|output|type|read|stderr|"+
462
        "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+
463
        "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+
464
        "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+
465
        "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+
466
        "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+
467
        "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+
468
        "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+
469
        "status|wrap|create|running|"+
470
        "__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+
471
         "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber"
472
    );
473

    
474
    var stdLibaries = ("string|package|os|io|math|debug|table|coroutine");
475

    
476
    var deprecatedIn5152 = ("setn|foreach|foreachi|gcinfo|log10|maxn");
477

    
478
    var keywordMapper = this.createKeywordMapper({
479
        "keyword": keywords,
480
        "support.function": functions,
481
        "keyword.deprecated": deprecatedIn5152,
482
        "constant.library": stdLibaries,
483
        "constant.language": builtinConstants,
484
        "variable.language": "self"
485
    }, "identifier");
486

    
487
    var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
488
    var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
489
    var integer = "(?:" + decimalInteger + "|" + hexInteger + ")";
490

    
491
    var fraction = "(?:\\.\\d+)";
492
    var intPart = "(?:\\d+)";
493
    var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
494
    var floatNumber = "(?:" + pointFloat + ")";
495

    
496
    this.$rules = {
497
        "start" : [{
498
            stateName: "bracketedComment",
499
            onMatch : function(value, currentState, stack){
500
                stack.unshift(this.next, value.length - 2, currentState);
501
                return "comment";
502
            },
503
            regex : /\-\-\[=*\[/,
504
            next  : [
505
                {
506
                    onMatch : function(value, currentState, stack) {
507
                        if (value.length == stack[1]) {
508
                            stack.shift();
509
                            stack.shift();
510
                            this.next = stack.shift();
511
                        } else {
512
                            this.next = "";
513
                        }
514
                        return "comment";
515
                    },
516
                    regex : /\]=*\]/,
517
                    next  : "start"
518
                }, {
519
                    defaultToken : "comment"
520
                }
521
            ]
522
        },
523

    
524
        {
525
            token : "comment",
526
            regex : "\\-\\-.*$"
527
        },
528
        {
529
            stateName: "bracketedString",
530
            onMatch : function(value, currentState, stack){
531
                stack.unshift(this.next, value.length, currentState);
532
                return "string.start";
533
            },
534
            regex : /\[=*\[/,
535
            next  : [
536
                {
537
                    onMatch : function(value, currentState, stack) {
538
                        if (value.length == stack[1]) {
539
                            stack.shift();
540
                            stack.shift();
541
                            this.next = stack.shift();
542
                        } else {
543
                            this.next = "";
544
                        }
545
                        return "string.end";
546
                    },
547
                    
548
                    regex : /\]=*\]/,
549
                    next  : "start"
550
                }, {
551
                    defaultToken : "string"
552
                }
553
            ]
554
        },
555
        {
556
            token : "string",           // " string
557
            regex : '"(?:[^\\\\]|\\\\.)*?"'
558
        }, {
559
            token : "string",           // ' string
560
            regex : "'(?:[^\\\\]|\\\\.)*?'"
561
        }, {
562
            token : "constant.numeric", // float
563
            regex : floatNumber
564
        }, {
565
            token : "constant.numeric", // integer
566
            regex : integer + "\\b"
567
        }, {
568
            token : keywordMapper,
569
            regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
570
        }, {
571
            token : "keyword.operator",
572
            regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\."
573
        }, {
574
            token : "paren.lparen",
575
            regex : "[\\[\\(\\{]"
576
        }, {
577
            token : "paren.rparen",
578
            regex : "[\\]\\)\\}]"
579
        }, {
580
            token : "text",
581
            regex : "\\s+|\\w+"
582
        } ]
583
    };
584
    
585
    this.normalizeRules();
586
};
587

    
588
oop.inherits(LuaHighlightRules, TextHighlightRules);
589

    
590
exports.LuaHighlightRules = LuaHighlightRules;
591
});
592

    
593
ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
594
"use strict";
595

    
596
var oop = require("../lib/oop");
597
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
598

    
599
var PythonHighlightRules = function() {
600

    
601
    var keywords = (
602
        "and|as|assert|break|class|continue|def|del|elif|else|except|exec|" +
603
        "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" +
604
        "raise|return|try|while|with|yield|async|await|nonlocal"
605
    );
606

    
607
    var builtinConstants = (
608
        "True|False|None|NotImplemented|Ellipsis|__debug__"
609
    );
610

    
611
    var builtinFunctions = (
612
        "abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" +
613
        "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" +
614
        "binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|" +
615
        "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" +
616
        "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" +
617
        "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" +
618
        "__import__|complex|hash|min|apply|delattr|help|next|setattr|set|" +
619
        "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|" +
620
        "ascii|breakpoint|bytes"
621
    );
622
    var keywordMapper = this.createKeywordMapper({
623
        "invalid.deprecated": "debugger",
624
        "support.function": builtinFunctions,
625
        "variable.language": "self|cls",
626
        "constant.language": builtinConstants,
627
        "keyword": keywords
628
    }, "identifier");
629

    
630
    var strPre = "[uU]?";
631
    var strRawPre = "[rR]";
632
    var strFormatPre = "[fF]";
633
    var strRawFormatPre = "(?:[rR][fF]|[fF][rR])";
634
    var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))";
635
    var octInteger = "(?:0[oO]?[0-7]+)";
636
    var hexInteger = "(?:0[xX][\\dA-Fa-f]+)";
637
    var binInteger = "(?:0[bB][01]+)";
638
    var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")";
639

    
640
    var exponent = "(?:[eE][+-]?\\d+)";
641
    var fraction = "(?:\\.\\d+)";
642
    var intPart = "(?:\\d+)";
643
    var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))";
644
    var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")";
645
    var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")";
646

    
647
    var stringEscape = "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";
648

    
649
    this.$rules = {
650
        "start" : [ {
651
            token : "comment",
652
            regex : "#.*$"
653
        }, {
654
            token : "string",           // multi line """ string start
655
            regex : strPre + '"{3}',
656
            next : "qqstring3"
657
        }, {
658
            token : "string",           // " string
659
            regex : strPre + '"(?=.)',
660
            next : "qqstring"
661
        }, {
662
            token : "string",           // multi line ''' string start
663
            regex : strPre + "'{3}",
664
            next : "qstring3"
665
        }, {
666
            token : "string",           // ' string
667
            regex : strPre + "'(?=.)",
668
            next : "qstring"
669
        }, {
670
            token: "string",
671
            regex: strRawPre + '"{3}',
672
            next: "rawqqstring3"
673
        }, {
674
            token: "string", 
675
            regex: strRawPre + '"(?=.)',
676
            next: "rawqqstring"
677
        }, {
678
            token: "string",
679
            regex: strRawPre + "'{3}",
680
            next: "rawqstring3"
681
        }, {
682
            token: "string",
683
            regex: strRawPre + "'(?=.)",
684
            next: "rawqstring"
685
        }, {
686
            token: "string",
687
            regex: strFormatPre + '"{3}',
688
            next: "fqqstring3"
689
        }, {
690
            token: "string",
691
            regex: strFormatPre + '"(?=.)',
692
            next: "fqqstring"
693
        }, {
694
            token: "string",
695
            regex: strFormatPre + "'{3}",
696
            next: "fqstring3"
697
        }, {
698
            token: "string",
699
            regex: strFormatPre + "'(?=.)",
700
            next: "fqstring"
701
        },{
702
            token: "string",
703
            regex: strRawFormatPre + '"{3}',
704
            next: "rfqqstring3"
705
        }, {
706
            token: "string",
707
            regex: strRawFormatPre + '"(?=.)',
708
            next: "rfqqstring"
709
        }, {
710
            token: "string",
711
            regex: strRawFormatPre + "'{3}",
712
            next: "rfqstring3"
713
        }, {
714
            token: "string",
715
            regex: strRawFormatPre + "'(?=.)",
716
            next: "rfqstring"
717
        }, {
718
            token: "keyword.operator",
719
            regex: "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="
720
        }, {
721
            token: "punctuation",
722
            regex: ",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="
723
        }, {
724
            token: "paren.lparen",
725
            regex: "[\\[\\(\\{]"
726
        }, {
727
            token: "paren.rparen",
728
            regex: "[\\]\\)\\}]"
729
        }, {
730
            token: "text",
731
            regex: "\\s+"
732
        }, {
733
            include: "constants"
734
        }],
735
        "qqstring3": [{
736
            token: "constant.language.escape",
737
            regex: stringEscape
738
        }, {
739
            token: "string", // multi line """ string end
740
            regex: '"{3}',
741
            next: "start"
742
        }, {
743
            defaultToken: "string"
744
        }],
745
        "qstring3": [{
746
            token: "constant.language.escape",
747
            regex: stringEscape
748
        }, {
749
            token: "string",  // multi line ''' string end
750
            regex: "'{3}",
751
            next: "start"
752
        }, {
753
            defaultToken: "string"
754
        }],
755
        "qqstring": [{
756
            token: "constant.language.escape",
757
            regex: stringEscape
758
        }, {
759
            token: "string",
760
            regex: "\\\\$",
761
            next: "qqstring"
762
        }, {
763
            token: "string",
764
            regex: '"|$',
765
            next: "start"
766
        }, {
767
            defaultToken: "string"
768
        }],
769
        "qstring": [{
770
            token: "constant.language.escape",
771
            regex: stringEscape
772
        }, {
773
            token: "string",
774
            regex: "\\\\$",
775
            next: "qstring"
776
        }, {
777
            token: "string",
778
            regex: "'|$",
779
            next: "start"
780
        }, {
781
            defaultToken: "string"
782
        }],
783
        "rawqqstring3": [{
784
            token: "string", // multi line """ string end
785
            regex: '"{3}',
786
            next: "start"
787
        }, {
788
            defaultToken: "string"
789
        }],
790
        "rawqstring3": [{
791
            token: "string",  // multi line ''' string end
792
            regex: "'{3}",
793
            next: "start"
794
        }, {
795
            defaultToken: "string"
796
        }],
797
        "rawqqstring": [{
798
            token: "string",
799
            regex: "\\\\$",
800
            next: "rawqqstring"
801
        }, {
802
            token: "string",
803
            regex: '"|$',
804
            next: "start"
805
        }, {
806
            defaultToken: "string"
807
        }],
808
        "rawqstring": [{
809
            token: "string",
810
            regex: "\\\\$",
811
            next: "rawqstring"
812
        }, {
813
            token: "string",
814
            regex: "'|$",
815
            next: "start"
816
        }, {
817
            defaultToken: "string"
818
        }],
819
        "fqqstring3": [{
820
            token: "constant.language.escape",
821
            regex: stringEscape
822
        }, {
823
            token: "string", // multi line """ string end
824
            regex: '"{3}',
825
            next: "start"
826
        }, {
827
            token: "paren.lparen",
828
            regex: "{",
829
            push: "fqstringParRules"
830
        }, {
831
            defaultToken: "string"
832
        }],
833
        "fqstring3": [{
834
            token: "constant.language.escape",
835
            regex: stringEscape
836
        }, {
837
            token: "string",  // multi line ''' string end
838
            regex: "'{3}",
839
            next: "start"
840
        }, {
841
            token: "paren.lparen",
842
            regex: "{",
843
            push: "fqstringParRules"
844
        }, {
845
            defaultToken: "string"
846
        }],
847
        "fqqstring": [{
848
            token: "constant.language.escape",
849
            regex: stringEscape
850
        }, {
851
            token: "string",
852
            regex: "\\\\$",
853
            next: "fqqstring"
854
        }, {
855
            token: "string",
856
            regex: '"|$',
857
            next: "start"
858
        }, {
859
            token: "paren.lparen",
860
            regex: "{",
861
            push: "fqstringParRules"
862
        }, {
863
            defaultToken: "string"
864
        }],
865
        "fqstring": [{
866
            token: "constant.language.escape",
867
            regex: stringEscape
868
        }, {
869
            token: "string",
870
            regex: "'|$",
871
            next: "start"
872
        }, {
873
            token: "paren.lparen",
874
            regex: "{",
875
            push: "fqstringParRules"
876
        }, {
877
            defaultToken: "string"
878
        }],
879
        "rfqqstring3": [{
880
            token: "string", // multi line """ string end
881
            regex: '"{3}',
882
            next: "start"
883
        }, {
884
            token: "paren.lparen",
885
            regex: "{",
886
            push: "fqstringParRules"
887
        }, {
888
            defaultToken: "string"
889
        }],
890
        "rfqstring3": [{
891
            token: "string",  // multi line ''' string end
892
            regex: "'{3}",
893
            next: "start"
894
        }, {
895
            token: "paren.lparen",
896
            regex: "{",
897
            push: "fqstringParRules"
898
        }, {
899
            defaultToken: "string"
900
        }],
901
        "rfqqstring": [{
902
            token: "string",
903
            regex: "\\\\$",
904
            next: "rfqqstring"
905
        }, {
906
            token: "string",
907
            regex: '"|$',
908
            next: "start"
909
        }, {
910
            token: "paren.lparen",
911
            regex: "{",
912
            push: "fqstringParRules"
913
        }, {
914
            defaultToken: "string"
915
        }],
916
        "rfqstring": [{
917
            token: "string",
918
            regex: "'|$",
919
            next: "start"
920
        }, {
921
            token: "paren.lparen",
922
            regex: "{",
923
            push: "fqstringParRules"
924
        }, {
925
            defaultToken: "string"
926
        }],
927
        "fqstringParRules": [{//TODO: nested {}
928
            token: "paren.lparen",
929
            regex: "[\\[\\(]"
930
        }, {
931
            token: "paren.rparen",
932
            regex: "[\\]\\)]"
933
        }, {
934
            token: "string",
935
            regex: "\\s+"
936
        }, {
937
            token: "string",
938
            regex: "'(.)*'"
939
        }, {
940
            token: "string",
941
            regex: '"(.)*"'
942
        }, {
943
            token: "function.support",
944
            regex: "(!s|!r|!a)"
945
        }, {
946
            include: "constants"
947
        },{
948
            token: 'paren.rparen',
949
            regex: "}",
950
            next: 'pop'
951
        },{
952
            token: 'paren.lparen',
953
            regex: "{",
954
            push: "fqstringParRules"
955
        }],
956
        "constants": [{
957
            token: "constant.numeric", // imaginary
958
            regex: "(?:" + floatNumber + "|\\d+)[jJ]\\b"
959
        }, {
960
            token: "constant.numeric", // float
961
            regex: floatNumber
962
        }, {
963
            token: "constant.numeric", // long integer
964
            regex: integer + "[lL]\\b"
965
        }, {
966
            token: "constant.numeric", // integer
967
            regex: integer + "\\b"
968
        }, {
969
            token: ["punctuation", "function.support"],// method
970
            regex: "(\\.)([a-zA-Z_]+)\\b"
971
        }, {
972
            token: keywordMapper,
973
            regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
974
        }]
975
    };
976
    this.normalizeRules();
977
};
978

    
979
oop.inherits(PythonHighlightRules, TextHighlightRules);
980

    
981
exports.PythonHighlightRules = PythonHighlightRules;
982
});
983

    
984
ace.define("ace/mode/csound_orchestra_highlight_rules",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/mode/csound_preprocessor_highlight_rules","ace/mode/csound_score_highlight_rules","ace/mode/lua_highlight_rules","ace/mode/python_highlight_rules"], function(require, exports, module) {
985
"use strict";
986

    
987
var lang = require("../lib/lang");
988
var oop = require("../lib/oop");
989

    
990
var CsoundPreprocessorHighlightRules = require("./csound_preprocessor_highlight_rules").CsoundPreprocessorHighlightRules;
991
var CsoundScoreHighlightRules = require("./csound_score_highlight_rules").CsoundScoreHighlightRules;
992
var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules;
993
var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules;
994

    
995
var CsoundOrchestraHighlightRules = function(embeddedRulePrefix) {
996

    
997
    CsoundPreprocessorHighlightRules.call(this, embeddedRulePrefix);
998
    var opcodes = [
999
        "ATSadd",
1000
        "ATSaddnz",
1001
        "ATSbufread",
1002
        "ATScross",
1003
        "ATSinfo",
1004
        "ATSinterpread",
1005
        "ATSpartialtap",
1006
        "ATSread",
1007
        "ATSreadnz",
1008
        "ATSsinnoi",
1009
        "FLbox",
1010
        "FLbutBank",
1011
        "FLbutton",
1012
        "FLcloseButton",
1013
        "FLcolor",
1014
        "FLcolor2",
1015
        "FLcount",
1016
        "FLexecButton",
1017
        "FLgetsnap",
1018
        "FLgroup",
1019
        "FLgroupEnd",
1020
        "FLgroup_end",
1021
        "FLhide",
1022
        "FLhvsBox",
1023
        "FLhvsBoxSetValue",
1024
        "FLjoy",
1025
        "FLkeyIn",
1026
        "FLknob",
1027
        "FLlabel",
1028
        "FLloadsnap",
1029
        "FLmouse",
1030
        "FLpack",
1031
        "FLpackEnd",
1032
        "FLpack_end",
1033
        "FLpanel",
1034
        "FLpanelEnd",
1035
        "FLpanel_end",
1036
        "FLprintk",
1037
        "FLprintk2",
1038
        "FLroller",
1039
        "FLrun",
1040
        "FLsavesnap",
1041
        "FLscroll",
1042
        "FLscrollEnd",
1043
        "FLscroll_end",
1044
        "FLsetAlign",
1045
        "FLsetBox",
1046
        "FLsetColor",
1047
        "FLsetColor2",
1048
        "FLsetFont",
1049
        "FLsetPosition",
1050
        "FLsetSize",
1051
        "FLsetSnapGroup",
1052
        "FLsetText",
1053
        "FLsetTextColor",
1054
        "FLsetTextSize",
1055
        "FLsetTextType",
1056
        "FLsetVal",
1057
        "FLsetVal_i",
1058
        "FLsetVali",
1059
        "FLsetsnap",
1060
        "FLshow",
1061
        "FLslidBnk",
1062
        "FLslidBnk2",
1063
        "FLslidBnk2Set",
1064
        "FLslidBnk2Setk",
1065
        "FLslidBnkGetHandle",
1066
        "FLslidBnkSet",
1067
        "FLslidBnkSetk",
1068
        "FLslider",
1069
        "FLtabs",
1070
        "FLtabsEnd",
1071
        "FLtabs_end",
1072
        "FLtext",
1073
        "FLupdate",
1074
        "FLvalue",
1075
        "FLvkeybd",
1076
        "FLvslidBnk",
1077
        "FLvslidBnk2",
1078
        "FLxyin",
1079
        "JackoAudioIn",
1080
        "JackoAudioInConnect",
1081
        "JackoAudioOut",
1082
        "JackoAudioOutConnect",
1083
        "JackoFreewheel",
1084
        "JackoInfo",
1085
        "JackoInit",
1086
        "JackoMidiInConnect",
1087
        "JackoMidiOut",
1088
        "JackoMidiOutConnect",
1089
        "JackoNoteOut",
1090
        "JackoOn",
1091
        "JackoTransport",
1092
        "K35_hpf",
1093
        "K35_lpf",
1094
        "MixerClear",
1095
        "MixerGetLevel",
1096
        "MixerReceive",
1097
        "MixerSend",
1098
        "MixerSetLevel",
1099
        "MixerSetLevel_i",
1100
        "OSCbundle",
1101
        "OSCcount",
1102
        "OSCinit",
1103
        "OSCinitM",
1104
        "OSClisten",
1105
        "OSCraw",
1106
        "OSCsend",
1107
        "OSCsend_lo",
1108
        "S",
1109
        "STKBandedWG",
1110
        "STKBeeThree",
1111
        "STKBlowBotl",
1112
        "STKBlowHole",
1113
        "STKBowed",
1114
        "STKBrass",
1115
        "STKClarinet",
1116
        "STKDrummer",
1117
        "STKFMVoices",
1118
        "STKFlute",
1119
        "STKHevyMetl",
1120
        "STKMandolin",
1121
        "STKModalBar",
1122
        "STKMoog",
1123
        "STKPercFlut",
1124
        "STKPlucked",
1125
        "STKResonate",
1126
        "STKRhodey",
1127
        "STKSaxofony",
1128
        "STKShakers",
1129
        "STKSimple",
1130
        "STKSitar",
1131
        "STKStifKarp",
1132
        "STKTubeBell",
1133
        "STKVoicForm",
1134
        "STKWhistle",
1135
        "STKWurley",
1136
        "a",
1137
        "abs",
1138
        "active",
1139
        "adsr",
1140
        "adsyn",
1141
        "adsynt",
1142
        "adsynt2",
1143
        "aftouch",
1144
        "alpass",
1145
        "alwayson",
1146
        "ampdb",
1147
        "ampdbfs",
1148
        "ampmidi",
1149
        "ampmidicurve",
1150
        "ampmidid",
1151
        "areson",
1152
        "aresonk",
1153
        "atone",
1154
        "atonek",
1155
        "atonex",
1156
        "babo",
1157
        "balance",
1158
        "balance2",
1159
        "bamboo",
1160
        "barmodel",
1161
        "bbcutm",
1162
        "bbcuts",
1163
        "beadsynt",
1164
        "beosc",
1165
        "betarand",
1166
        "bexprnd",
1167
        "bformdec1",
1168
        "bformenc1",
1169
        "binit",
1170
        "biquad",
1171
        "biquada",
1172
        "birnd",
1173
        "bpf",
1174
        "bpfcos",
1175
        "bqrez",
1176
        "butbp",
1177
        "butbr",
1178
        "buthp",
1179
        "butlp",
1180
        "butterbp",
1181
        "butterbr",
1182
        "butterhp",
1183
        "butterlp",
1184
        "button",
1185
        "buzz",
1186
        "c2r",
1187
        "cabasa",
1188
        "cauchy",
1189
        "cauchyi",
1190
        "cbrt",
1191
        "ceil",
1192
        "cell",
1193
        "cent",
1194
        "centroid",
1195
        "ceps",
1196
        "cepsinv",
1197
        "chanctrl",
1198
        "changed2",
1199
        "chani",
1200
        "chano",
1201
        "chebyshevpoly",
1202
        "checkbox",
1203
        "chn_S",
1204
        "chn_a",
1205
        "chn_k",
1206
        "chnclear",
1207
        "chnexport",
1208
        "chnget",
1209
        "chngeta",
1210
        "chngeti",
1211
        "chngetk",
1212
        "chngetks",
1213
        "chngets",
1214
        "chnmix",
1215
        "chnparams",
1216
        "chnset",
1217
        "chnseta",
1218
        "chnseti",
1219
        "chnsetk",
1220
        "chnsetks",
1221
        "chnsets",
1222
        "chuap",
1223
        "clear",
1224
        "clfilt",
1225
        "clip",
1226
        "clockoff",
1227
        "clockon",
1228
        "cmp",
1229
        "cmplxprod",
1230
        "comb",
1231
        "combinv",
1232
        "compilecsd",
1233
        "compileorc",
1234
        "compilestr",
1235
        "compress",
1236
        "compress2",
1237
        "connect",
1238
        "control",
1239
        "convle",
1240
        "convolve",
1241
        "copya2ftab",
1242
        "copyf2array",
1243
        "cos",
1244
        "cosh",
1245
        "cosinv",
1246
        "cosseg",
1247
        "cossegb",
1248
        "cossegr",
1249
        "cps2pch",
1250
        "cpsmidi",
1251
        "cpsmidib",
1252
        "cpsmidinn",
1253
        "cpsoct",
1254
        "cpspch",
1255
        "cpstmid",
1256
        "cpstun",
1257
        "cpstuni",
1258
        "cpsxpch",
1259
        "cpumeter",
1260
        "cpuprc",
1261
        "cross2",
1262
        "crossfm",
1263
        "crossfmi",
1264
        "crossfmpm",
1265
        "crossfmpmi",
1266
        "crosspm",
1267
        "crosspmi",
1268
        "crunch",
1269
        "ctlchn",
1270
        "ctrl14",
1271
        "ctrl21",
1272
        "ctrl7",
1273
        "ctrlinit",
1274
        "cuserrnd",
1275
        "dam",
1276
        "date",
1277
        "dates",
1278
        "db",
1279
        "dbamp",
1280
        "dbfsamp",
1281
        "dcblock",
1282
        "dcblock2",
1283
        "dconv",
1284
        "dct",
1285
        "dctinv",
1286
        "deinterleave",
1287
        "delay",
1288
        "delay1",
1289
        "delayk",
1290
        "delayr",
1291
        "delayw",
1292
        "deltap",
1293
        "deltap3",
1294
        "deltapi",
1295
        "deltapn",
1296
        "deltapx",
1297
        "deltapxw",
1298
        "denorm",
1299
        "diff",
1300
        "diode_ladder",
1301
        "directory",
1302
        "diskgrain",
1303
        "diskin",
1304
        "diskin2",
1305
        "dispfft",
1306
        "display",
1307
        "distort",
1308
        "distort1",
1309
        "divz",
1310
        "doppler",
1311
        "dot",
1312
        "downsamp",
1313
        "dripwater",
1314
        "dssiactivate",
1315
        "dssiaudio",
1316
        "dssictls",
1317
        "dssiinit",
1318
        "dssilist",
1319
        "dumpk",
1320
        "dumpk2",
1321
        "dumpk3",
1322
        "dumpk4",
1323
        "duserrnd",
1324
        "dust",
1325
        "dust2",
1326
        "envlpx",
1327
        "envlpxr",
1328
        "ephasor",
1329
        "eqfil",
1330
        "evalstr",
1331
        "event",
1332
        "event_i",
1333
        "exciter",
1334
        "exitnow",
1335
        "exp",
1336
        "expcurve",
1337
        "expon",
1338
        "exprand",
1339
        "exprandi",
1340
        "expseg",
1341
        "expsega",
1342
        "expsegb",
1343
        "expsegba",
1344
        "expsegr",
1345
        "fareylen",
1346
        "fareyleni",
1347
        "faustaudio",
1348
        "faustcompile",
1349
        "faustctl",
1350
        "faustdsp",
1351
        "faustgen",
1352
        "faustplay",
1353
        "fft",
1354
        "fftinv",
1355
        "ficlose",
1356
        "filebit",
1357
        "filelen",
1358
        "filenchnls",
1359
        "filepeak",
1360
        "filescal",
1361
        "filesr",
1362
        "filevalid",
1363
        "fillarray",
1364
        "filter2",
1365
        "fin",
1366
        "fini",
1367
        "fink",
1368
        "fiopen",
1369
        "flanger",
1370
        "flashtxt",
1371
        "flooper",
1372
        "flooper2",
1373
        "floor",
1374
        "fluidAllOut",
1375
        "fluidCCi",
1376
        "fluidCCk",
1377
        "fluidControl",
1378
        "fluidEngine",
1379
        "fluidInfo",
1380
        "fluidLoad",
1381
        "fluidNote",
1382
        "fluidOut",
1383
        "fluidProgramSelect",
1384
        "fluidSetInterpMethod",
1385
        "fmanal",
1386
        "fmax",
1387
        "fmb3",
1388
        "fmbell",
1389
        "fmin",
1390
        "fmmetal",
1391
        "fmod",
1392
        "fmpercfl",
1393
        "fmrhode",
1394
        "fmvoice",
1395
        "fmwurlie",
1396
        "fof",
1397
        "fof2",
1398
        "fofilter",
1399
        "fog",
1400
        "fold",
1401
        "follow",
1402
        "follow2",
1403
        "foscil",
1404
        "foscili",
1405
        "fout",
1406
        "fouti",
1407
        "foutir",
1408
        "foutk",
1409
        "fprintks",
1410
        "fprints",
1411
        "frac",
1412
        "fractalnoise",
1413
        "framebuffer",
1414
        "freeverb",
1415
        "ftaudio",
1416
        "ftchnls",
1417
        "ftconv",
1418
        "ftcps",
1419
        "ftexists",
1420
        "ftfree",
1421
        "ftgen",
1422
        "ftgenonce",
1423
        "ftgentmp",
1424
        "ftlen",
1425
        "ftload",
1426
        "ftloadk",
1427
        "ftlptim",
1428
        "ftmorf",
1429
        "ftom",
1430
        "ftprint",
1431
        "ftresize",
1432
        "ftresizei",
1433
        "ftsamplebank",
1434
        "ftsave",
1435
        "ftsavek",
1436
        "ftslice",
1437
        "ftsr",
1438
        "gain",
1439
        "gainslider",
1440
        "gauss",
1441
        "gaussi",
1442
        "gausstrig",
1443
        "gbuzz",
1444
        "genarray",
1445
        "genarray_i",
1446
        "gendy",
1447
        "gendyc",
1448
        "gendyx",
1449
        "getcfg",
1450
        "getcol",
1451
        "getftargs",
1452
        "getrow",
1453
        "getrowlin",
1454
        "getseed",
1455
        "gogobel",
1456
        "grain",
1457
        "grain2",
1458
        "grain3",
1459
        "granule",
1460
        "gtf",
1461
        "guiro",
1462
        "harmon",
1463
        "harmon2",
1464
        "harmon3",
1465
        "harmon4",
1466
        "hdf5read",
1467
        "hdf5write",
1468
        "hilbert",
1469
        "hilbert2",
1470
        "hrtfearly",
1471
        "hrtfmove",
1472
        "hrtfmove2",
1473
        "hrtfreverb",
1474
        "hrtfstat",
1475
        "hsboscil",
1476
        "hvs1",
1477
        "hvs2",
1478
        "hvs3",
1479
        "hypot",
1480
        "i",
1481
        "ihold",
1482
        "imagecreate",
1483
        "imagefree",
1484
        "imagegetpixel",
1485
        "imageload",
1486
        "imagesave",
1487
        "imagesetpixel",
1488
        "imagesize",
1489
        "in",
1490
        "in32",
1491
        "inch",
1492
        "inh",
1493
        "init",
1494
        "initc14",
1495
        "initc21",
1496
        "initc7",
1497
        "inleta",
1498
        "inletf",
1499
        "inletk",
1500
        "inletkid",
1501
        "inletv",
1502
        "ino",
1503
        "inq",
1504
        "inrg",
1505
        "ins",
1506
        "insglobal",
1507
        "insremot",
1508
        "int",
1509
        "integ",
1510
        "interleave",
1511
        "interp",
1512
        "invalue",
1513
        "inx",
1514
        "inz",
1515
        "jacktransport",
1516
        "jitter",
1517
        "jitter2",
1518
        "joystick",
1519
        "jspline",
1520
        "k",
1521
        "la_i_add_mc",
1522
        "la_i_add_mr",
1523
        "la_i_add_vc",
1524
        "la_i_add_vr",
1525
        "la_i_assign_mc",
1526
        "la_i_assign_mr",
1527
        "la_i_assign_t",
1528
        "la_i_assign_vc",
1529
        "la_i_assign_vr",
1530
        "la_i_conjugate_mc",
1531
        "la_i_conjugate_mr",
1532
        "la_i_conjugate_vc",
1533
        "la_i_conjugate_vr",
1534
        "la_i_distance_vc",
1535
        "la_i_distance_vr",
1536
        "la_i_divide_mc",
1537
        "la_i_divide_mr",
1538
        "la_i_divide_vc",
1539
        "la_i_divide_vr",
1540
        "la_i_dot_mc",
1541
        "la_i_dot_mc_vc",
1542
        "la_i_dot_mr",
1543
        "la_i_dot_mr_vr",
1544
        "la_i_dot_vc",
1545
        "la_i_dot_vr",
1546
        "la_i_get_mc",
1547
        "la_i_get_mr",
1548
        "la_i_get_vc",
1549
        "la_i_get_vr",
1550
        "la_i_invert_mc",
1551
        "la_i_invert_mr",
1552
        "la_i_lower_solve_mc",
1553
        "la_i_lower_solve_mr",
1554
        "la_i_lu_det_mc",
1555
        "la_i_lu_det_mr",
1556
        "la_i_lu_factor_mc",
1557
        "la_i_lu_factor_mr",
1558
        "la_i_lu_solve_mc",
1559
        "la_i_lu_solve_mr",
1560
        "la_i_mc_create",
1561
        "la_i_mc_set",
1562
        "la_i_mr_create",
1563
        "la_i_mr_set",
1564
        "la_i_multiply_mc",
1565
        "la_i_multiply_mr",
1566
        "la_i_multiply_vc",
1567
        "la_i_multiply_vr",
1568
        "la_i_norm1_mc",
1569
        "la_i_norm1_mr",
1570
        "la_i_norm1_vc",
1571
        "la_i_norm1_vr",
1572
        "la_i_norm_euclid_mc",
1573
        "la_i_norm_euclid_mr",
1574
        "la_i_norm_euclid_vc",
1575
        "la_i_norm_euclid_vr",
1576
        "la_i_norm_inf_mc",
1577
        "la_i_norm_inf_mr",
1578
        "la_i_norm_inf_vc",
1579
        "la_i_norm_inf_vr",
1580
        "la_i_norm_max_mc",
1581
        "la_i_norm_max_mr",
1582
        "la_i_print_mc",
1583
        "la_i_print_mr",
1584
        "la_i_print_vc",
1585
        "la_i_print_vr",
1586
        "la_i_qr_eigen_mc",
1587
        "la_i_qr_eigen_mr",
1588
        "la_i_qr_factor_mc",
1589
        "la_i_qr_factor_mr",
1590
        "la_i_qr_sym_eigen_mc",
1591
        "la_i_qr_sym_eigen_mr",
1592
        "la_i_random_mc",
1593
        "la_i_random_mr",
1594
        "la_i_random_vc",
1595
        "la_i_random_vr",
1596
        "la_i_size_mc",
1597
        "la_i_size_mr",
1598
        "la_i_size_vc",
1599
        "la_i_size_vr",
1600
        "la_i_subtract_mc",
1601
        "la_i_subtract_mr",
1602
        "la_i_subtract_vc",
1603
        "la_i_subtract_vr",
1604
        "la_i_t_assign",
1605
        "la_i_trace_mc",
1606
        "la_i_trace_mr",
1607
        "la_i_transpose_mc",
1608
        "la_i_transpose_mr",
1609
        "la_i_upper_solve_mc",
1610
        "la_i_upper_solve_mr",
1611
        "la_i_vc_create",
1612
        "la_i_vc_set",
1613
        "la_i_vr_create",
1614
        "la_i_vr_set",
1615
        "la_k_a_assign",
1616
        "la_k_add_mc",
1617
        "la_k_add_mr",
1618
        "la_k_add_vc",
1619
        "la_k_add_vr",
1620
        "la_k_assign_a",
1621
        "la_k_assign_f",
1622
        "la_k_assign_mc",
1623
        "la_k_assign_mr",
1624
        "la_k_assign_t",
1625
        "la_k_assign_vc",
1626
        "la_k_assign_vr",
1627
        "la_k_conjugate_mc",
1628
        "la_k_conjugate_mr",
1629
        "la_k_conjugate_vc",
1630
        "la_k_conjugate_vr",
1631
        "la_k_current_f",
1632
        "la_k_current_vr",
1633
        "la_k_distance_vc",
1634
        "la_k_distance_vr",
1635
        "la_k_divide_mc",
1636
        "la_k_divide_mr",
1637
        "la_k_divide_vc",
1638
        "la_k_divide_vr",
1639
        "la_k_dot_mc",
1640
        "la_k_dot_mc_vc",
1641
        "la_k_dot_mr",
1642
        "la_k_dot_mr_vr",
1643
        "la_k_dot_vc",
1644
        "la_k_dot_vr",
1645
        "la_k_f_assign",
1646
        "la_k_get_mc",
1647
        "la_k_get_mr",
1648
        "la_k_get_vc",
1649
        "la_k_get_vr",
1650
        "la_k_invert_mc",
1651
        "la_k_invert_mr",
1652
        "la_k_lower_solve_mc",
1653
        "la_k_lower_solve_mr",
1654
        "la_k_lu_det_mc",
1655
        "la_k_lu_det_mr",
1656
        "la_k_lu_factor_mc",
1657
        "la_k_lu_factor_mr",
1658
        "la_k_lu_solve_mc",
1659
        "la_k_lu_solve_mr",
1660
        "la_k_mc_set",
1661
        "la_k_mr_set",
1662
        "la_k_multiply_mc",
1663
        "la_k_multiply_mr",
1664
        "la_k_multiply_vc",
1665
        "la_k_multiply_vr",
1666
        "la_k_norm1_mc",
1667
        "la_k_norm1_mr",
1668
        "la_k_norm1_vc",
1669
        "la_k_norm1_vr",
1670
        "la_k_norm_euclid_mc",
1671
        "la_k_norm_euclid_mr",
1672
        "la_k_norm_euclid_vc",
1673
        "la_k_norm_euclid_vr",
1674
        "la_k_norm_inf_mc",
1675
        "la_k_norm_inf_mr",
1676
        "la_k_norm_inf_vc",
1677
        "la_k_norm_inf_vr",
1678
        "la_k_norm_max_mc",
1679
        "la_k_norm_max_mr",
1680
        "la_k_qr_eigen_mc",
1681
        "la_k_qr_eigen_mr",
1682
        "la_k_qr_factor_mc",
1683
        "la_k_qr_factor_mr",
1684
        "la_k_qr_sym_eigen_mc",
1685
        "la_k_qr_sym_eigen_mr",
1686
        "la_k_random_mc",
1687
        "la_k_random_mr",
1688
        "la_k_random_vc",
1689
        "la_k_random_vr",
1690
        "la_k_subtract_mc",
1691
        "la_k_subtract_mr",
1692
        "la_k_subtract_vc",
1693
        "la_k_subtract_vr",
1694
        "la_k_t_assign",
1695
        "la_k_trace_mc",
1696
        "la_k_trace_mr",
1697
        "la_k_upper_solve_mc",
1698
        "la_k_upper_solve_mr",
1699
        "la_k_vc_set",
1700
        "la_k_vr_set",
1701
        "lastcycle",
1702
        "lenarray",
1703
        "lfo",
1704
        "limit",
1705
        "limit1",
1706
        "lincos",
1707
        "line",
1708
        "linen",
1709
        "linenr",
1710
        "lineto",
1711
        "link_beat_force",
1712
        "link_beat_get",
1713
        "link_beat_request",
1714
        "link_create",
1715
        "link_enable",
1716
        "link_is_enabled",
1717
        "link_metro",
1718
        "link_peers",
1719
        "link_tempo_get",
1720
        "link_tempo_set",
1721
        "linlin",
1722
        "linrand",
1723
        "linseg",
1724
        "linsegb",
1725
        "linsegr",
1726
        "liveconv",
1727
        "locsend",
1728
        "locsig",
1729
        "log",
1730
        "log10",
1731
        "log2",
1732
        "logbtwo",
1733
        "logcurve",
1734
        "loopseg",
1735
        "loopsegp",
1736
        "looptseg",
1737
        "loopxseg",
1738
        "lorenz",
1739
        "loscil",
1740
        "loscil3",
1741
        "loscil3phs",
1742
        "loscilphs",
1743
        "loscilx",
1744
        "lowpass2",
1745
        "lowres",
1746
        "lowresx",
1747
        "lpf18",
1748
        "lpform",
1749
        "lpfreson",
1750
        "lphasor",
1751
        "lpinterp",
1752
        "lposcil",
1753
        "lposcil3",
1754
        "lposcila",
1755
        "lposcilsa",
1756
        "lposcilsa2",
1757
        "lpread",
1758
        "lpreson",
1759
        "lpshold",
1760
        "lpsholdp",
1761
        "lpslot",
1762
        "lua_exec",
1763
        "lua_iaopcall",
1764
        "lua_iaopcall_off",
1765
        "lua_ikopcall",
1766
        "lua_ikopcall_off",
1767
        "lua_iopcall",
1768
        "lua_iopcall_off",
1769
        "lua_opdef",
1770
        "mac",
1771
        "maca",
1772
        "madsr",
1773
        "mags",
1774
        "mandel",
1775
        "mandol",
1776
        "maparray",
1777
        "maparray_i",
1778
        "marimba",
1779
        "massign",
1780
        "max",
1781
        "max_k",
1782
        "maxabs",
1783
        "maxabsaccum",
1784
        "maxaccum",
1785
        "maxalloc",
1786
        "maxarray",
1787
        "mclock",
1788
        "mdelay",
1789
        "median",
1790
        "mediank",
1791
        "metro",
1792
        "metro2",
1793
        "mfb",
1794
        "midglobal",
1795
        "midiarp",
1796
        "midic14",
1797
        "midic21",
1798
        "midic7",
1799
        "midichannelaftertouch",
1800
        "midichn",
1801
        "midicontrolchange",
1802
        "midictrl",
1803
        "mididefault",
1804
        "midifilestatus",
1805
        "midiin",
1806
        "midinoteoff",
1807
        "midinoteoncps",
1808
        "midinoteonkey",
1809
        "midinoteonoct",
1810
        "midinoteonpch",
1811
        "midion",
1812
        "midion2",
1813
        "midiout",
1814
        "midiout_i",
1815
        "midipgm",
1816
        "midipitchbend",
1817
        "midipolyaftertouch",
1818
        "midiprogramchange",
1819
        "miditempo",
1820
        "midremot",
1821
        "min",
1822
        "minabs",
1823
        "minabsaccum",
1824
        "minaccum",
1825
        "minarray",
1826
        "mincer",
1827
        "mirror",
1828
        "mode",
1829
        "modmatrix",
1830
        "monitor",
1831
        "moog",
1832
        "moogladder",
1833
        "moogladder2",
1834
        "moogvcf",
1835
        "moogvcf2",
1836
        "moscil",
1837
        "mp3bitrate",
1838
        "mp3in",
1839
        "mp3len",
1840
        "mp3nchnls",
1841
        "mp3scal",
1842
        "mp3sr",
1843
        "mpulse",
1844
        "mrtmsg",
1845
        "mtof",
1846
        "mton",
1847
        "multitap",
1848
        "mute",
1849
        "mvchpf",
1850
        "mvclpf1",
1851
        "mvclpf2",
1852
        "mvclpf3",
1853
        "mvclpf4",
1854
        "mxadsr",
1855
        "nchnls_hw",
1856
        "nestedap",
1857
        "nlalp",
1858
        "nlfilt",
1859
        "nlfilt2",
1860
        "noise",
1861
        "noteoff",
1862
        "noteon",
1863
        "noteondur",
1864
        "noteondur2",
1865
        "notnum",
1866
        "nreverb",
1867
        "nrpn",
1868
        "nsamp",
1869
        "nstance",
1870
        "nstrnum",
1871
        "nstrstr",
1872
        "ntof",
1873
        "ntom",
1874
        "ntrpol",
1875
        "nxtpow2",
1876
        "octave",
1877
        "octcps",
1878
        "octmidi",
1879
        "octmidib",
1880
        "octmidinn",
1881
        "octpch",
1882
        "olabuffer",
1883
        "oscbnk",
1884
        "oscil",
1885
        "oscil1",
1886
        "oscil1i",
1887
        "oscil3",
1888
        "oscili",
1889
        "oscilikt",
1890
        "osciliktp",
1891
        "oscilikts",
1892
        "osciln",
1893
        "oscils",
1894
        "oscilx",
1895
        "out",
1896
        "out32",
1897
        "outc",
1898
        "outch",
1899
        "outh",
1900
        "outiat",
1901
        "outic",
1902
        "outic14",
1903
        "outipat",
1904
        "outipb",
1905
        "outipc",
1906
        "outkat",
1907
        "outkc",
1908
        "outkc14",
1909
        "outkpat",
1910
        "outkpb",
1911
        "outkpc",
1912
        "outleta",
1913
        "outletf",
1914
        "outletk",
1915
        "outletkid",
1916
        "outletv",
1917
        "outo",
1918
        "outq",
1919
        "outq1",
1920
        "outq2",
1921
        "outq3",
1922
        "outq4",
1923
        "outrg",
1924
        "outs",
1925
        "outs1",
1926
        "outs2",
1927
        "outvalue",
1928
        "outx",
1929
        "outz",
1930
        "p",
1931
        "p5gconnect",
1932
        "p5gdata",
1933
        "pan",
1934
        "pan2",
1935
        "pareq",
1936
        "part2txt",
1937
        "partials",
1938
        "partikkel",
1939
        "partikkelget",
1940
        "partikkelset",
1941
        "partikkelsync",
1942
        "passign",
1943
        "paulstretch",
1944
        "pcauchy",
1945
        "pchbend",
1946
        "pchmidi",
1947
        "pchmidib",
1948
        "pchmidinn",
1949
        "pchoct",
1950
        "pchtom",
1951
        "pconvolve",
1952
        "pcount",
1953
        "pdclip",
1954
        "pdhalf",
1955
        "pdhalfy",
1956
        "peak",
1957
        "pgmassign",
1958
        "pgmchn",
1959
        "phaser1",
1960
        "phaser2",
1961
        "phasor",
1962
        "phasorbnk",
1963
        "phs",
1964
        "pindex",
1965
        "pinker",
1966
        "pinkish",
1967
        "pitch",
1968
        "pitchac",
1969
        "pitchamdf",
1970
        "planet",
1971
        "platerev",
1972
        "plltrack",
1973
        "pluck",
1974
        "poisson",
1975
        "pol2rect",
1976
        "polyaft",
1977
        "polynomial",
1978
        "port",
1979
        "portk",
1980
        "poscil",
1981
        "poscil3",
1982
        "pow",
1983
        "powershape",
1984
        "powoftwo",
1985
        "pows",
1986
        "prealloc",
1987
        "prepiano",
1988
        "print",
1989
        "print_type",
1990
        "printarray",
1991
        "printf",
1992
        "printf_i",
1993
        "printk",
1994
        "printk2",
1995
        "printks",
1996
        "printks2",
1997
        "prints",
1998
        "product",
1999
        "pset",
2000
        "ptable",
2001
        "ptable3",
2002
        "ptablei",
2003
        "ptablew",
2004
        "ptrack",
2005
        "puts",
2006
        "pvadd",
2007
        "pvbufread",
2008
        "pvcross",
2009
        "pvinterp",
2010
        "pvoc",
2011
        "pvread",
2012
        "pvs2array",
2013
        "pvs2tab",
2014
        "pvsadsyn",
2015
        "pvsanal",
2016
        "pvsarp",
2017
        "pvsbandp",
2018
        "pvsbandr",
2019
        "pvsbin",
2020
        "pvsblur",
2021
        "pvsbuffer",
2022
        "pvsbufread",
2023
        "pvsbufread2",
2024
        "pvscale",
2025
        "pvscent",
2026
        "pvsceps",
2027
        "pvscross",
2028
        "pvsdemix",
2029
        "pvsdiskin",
2030
        "pvsdisp",
2031
        "pvsenvftw",
2032
        "pvsfilter",
2033
        "pvsfread",
2034
        "pvsfreeze",
2035
        "pvsfromarray",
2036
        "pvsftr",
2037
        "pvsftw",
2038
        "pvsfwrite",
2039
        "pvsgain",
2040
        "pvshift",
2041
        "pvsifd",
2042
        "pvsin",
2043
        "pvsinfo",
2044
        "pvsinit",
2045
        "pvslock",
2046
        "pvsmaska",
2047
        "pvsmix",
2048
        "pvsmooth",
2049
        "pvsmorph",
2050
        "pvsosc",
2051
        "pvsout",
2052
        "pvspitch",
2053
        "pvstanal",
2054
        "pvstencil",
2055
        "pvstrace",
2056
        "pvsvoc",
2057
        "pvswarp",
2058
        "pvsynth",
2059
        "pwd",
2060
        "pyassign",
2061
        "pyassigni",
2062
        "pyassignt",
2063
        "pycall",
2064
        "pycall1",
2065
        "pycall1i",
2066
        "pycall1t",
2067
        "pycall2",
2068
        "pycall2i",
2069
        "pycall2t",
2070
        "pycall3",
2071
        "pycall3i",
2072
        "pycall3t",
2073
        "pycall4",
2074
        "pycall4i",
2075
        "pycall4t",
2076
        "pycall5",
2077
        "pycall5i",
2078
        "pycall5t",
2079
        "pycall6",
2080
        "pycall6i",
2081
        "pycall6t",
2082
        "pycall7",
2083
        "pycall7i",
2084
        "pycall7t",
2085
        "pycall8",
2086
        "pycall8i",
2087
        "pycall8t",
2088
        "pycalli",
2089
        "pycalln",
2090
        "pycallni",
2091
        "pycallt",
2092
        "pyeval",
2093
        "pyevali",
2094
        "pyevalt",
2095
        "pyexec",
2096
        "pyexeci",
2097
        "pyexect",
2098
        "pyinit",
2099
        "pylassign",
2100
        "pylassigni",
2101
        "pylassignt",
2102
        "pylcall",
2103
        "pylcall1",
2104
        "pylcall1i",
2105
        "pylcall1t",
2106
        "pylcall2",
2107
        "pylcall2i",
2108
        "pylcall2t",
2109
        "pylcall3",
2110
        "pylcall3i",
2111
        "pylcall3t",
2112
        "pylcall4",
2113
        "pylcall4i",
2114
        "pylcall4t",
2115
        "pylcall5",
2116
        "pylcall5i",
2117
        "pylcall5t",
2118
        "pylcall6",
2119
        "pylcall6i",
2120
        "pylcall6t",
2121
        "pylcall7",
2122
        "pylcall7i",
2123
        "pylcall7t",
2124
        "pylcall8",
2125
        "pylcall8i",
2126
        "pylcall8t",
2127
        "pylcalli",
2128
        "pylcalln",
2129
        "pylcallni",
2130
        "pylcallt",
2131
        "pyleval",
2132
        "pylevali",
2133
        "pylevalt",
2134
        "pylexec",
2135
        "pylexeci",
2136
        "pylexect",
2137
        "pylrun",
2138
        "pylruni",
2139
        "pylrunt",
2140
        "pyrun",
2141
        "pyruni",
2142
        "pyrunt",
2143
        "qinf",
2144
        "qnan",
2145
        "r2c",
2146
        "rand",
2147
        "randc",
2148
        "randh",
2149
        "randi",
2150
        "random",
2151
        "randomh",
2152
        "randomi",
2153
        "rbjeq",
2154
        "readclock",
2155
        "readf",
2156
        "readfi",
2157
        "readk",
2158
        "readk2",
2159
        "readk3",
2160
        "readk4",
2161
        "readks",
2162
        "readscore",
2163
        "readscratch",
2164
        "rect2pol",
2165
        "release",
2166
        "remoteport",
2167
        "remove",
2168
        "repluck",
2169
        "reshapearray",
2170
        "reson",
2171
        "resonk",
2172
        "resonr",
2173
        "resonx",
2174
        "resonxk",
2175
        "resony",
2176
        "resonz",
2177
        "resyn",
2178
        "reverb",
2179
        "reverb2",
2180
        "reverbsc",
2181
        "rewindscore",
2182
        "rezzy",
2183
        "rfft",
2184
        "rifft",
2185
        "rms",
2186
        "rnd",
2187
        "rnd31",
2188
        "round",
2189
        "rspline",
2190
        "rtclock",
2191
        "s16b14",
2192
        "s32b14",
2193
        "samphold",
2194
        "sandpaper",
2195
        "sc_lag",
2196
        "sc_lagud",
2197
        "sc_phasor",
2198
        "sc_trig",
2199
        "scale",
2200
        "scalearray",
2201
        "scanhammer",
2202
        "scans",
2203
        "scantable",
2204
        "scanu",
2205
        "schedkwhen",
2206
        "schedkwhennamed",
2207
        "schedule",
2208
        "schedulek",
2209
        "schedwhen",
2210
        "scoreline",
2211
        "scoreline_i",
2212
        "seed",
2213
        "sekere",
2214
        "select",
2215
        "semitone",
2216
        "sense",
2217
        "sensekey",
2218
        "seqtime",
2219
        "seqtime2",
2220
        "serialBegin",
2221
        "serialEnd",
2222
        "serialFlush",
2223
        "serialPrint",
2224
        "serialRead",
2225
        "serialWrite",
2226
        "serialWrite_i",
2227
        "setcol",
2228
        "setctrl",
2229
        "setksmps",
2230
        "setrow",
2231
        "setscorepos",
2232
        "sfilist",
2233
        "sfinstr",
2234
        "sfinstr3",
2235
        "sfinstr3m",
2236
        "sfinstrm",
2237
        "sfload",
2238
        "sflooper",
2239
        "sfpassign",
2240
        "sfplay",
2241
        "sfplay3",
2242
        "sfplay3m",
2243
        "sfplaym",
2244
        "sfplist",
2245
        "sfpreset",
2246
        "shaker",
2247
        "shiftin",
2248
        "shiftout",
2249
        "signum",
2250
        "sin",
2251
        "sinh",
2252
        "sininv",
2253
        "sinsyn",
2254
        "sleighbells",
2255
        "slicearray",
2256
        "slicearray_i",
2257
        "slider16",
2258
        "slider16f",
2259
        "slider16table",
2260
        "slider16tablef",
2261
        "slider32",
2262
        "slider32f",
2263
        "slider32table",
2264
        "slider32tablef",
2265
        "slider64",
2266
        "slider64f",
2267
        "slider64table",
2268
        "slider64tablef",
2269
        "slider8",
2270
        "slider8f",
2271
        "slider8table",
2272
        "slider8tablef",
2273
        "sliderKawai",
2274
        "sndloop",
2275
        "sndwarp",
2276
        "sndwarpst",
2277
        "sockrecv",
2278
        "sockrecvs",
2279
        "socksend",
2280
        "socksends",
2281
        "sorta",
2282
        "sortd",
2283
        "soundin",
2284
        "space",
2285
        "spat3d",
2286
        "spat3di",
2287
        "spat3dt",
2288
        "spdist",
2289
        "splitrig",
2290
        "sprintf",
2291
        "sprintfk",
2292
        "spsend",
2293
        "sqrt",
2294
        "squinewave",
2295
        "statevar",
2296
        "stix",
2297
        "strcat",
2298
        "strcatk",
2299
        "strchar",
2300
        "strchark",
2301
        "strcmp",
2302
        "strcmpk",
2303
        "strcpy",
2304
        "strcpyk",
2305
        "strecv",
2306
        "streson",
2307
        "strfromurl",
2308
        "strget",
2309
        "strindex",
2310
        "strindexk",
2311
        "string2array",
2312
        "strlen",
2313
        "strlenk",
2314
        "strlower",
2315
        "strlowerk",
2316
        "strrindex",
2317
        "strrindexk",
2318
        "strset",
2319
        "strstrip",
2320
        "strsub",
2321
        "strsubk",
2322
        "strtod",
2323
        "strtodk",
2324
        "strtol",
2325
        "strtolk",
2326
        "strupper",
2327
        "strupperk",
2328
        "stsend",
2329
        "subinstr",
2330
        "subinstrinit",
2331
        "sum",
2332
        "sumarray",
2333
        "svfilter",
2334
        "syncgrain",
2335
        "syncloop",
2336
        "syncphasor",
2337
        "system",
2338
        "system_i",
2339
        "tab",
2340
        "tab2array",
2341
        "tab2pvs",
2342
        "tab_i",
2343
        "tabifd",
2344
        "table",
2345
        "table3",
2346
        "table3kt",
2347
        "tablecopy",
2348
        "tablefilter",
2349
        "tablefilteri",
2350
        "tablegpw",
2351
        "tablei",
2352
        "tableicopy",
2353
        "tableigpw",
2354
        "tableikt",
2355
        "tableimix",
2356
        "tablekt",
2357
        "tablemix",
2358
        "tableng",
2359
        "tablera",
2360
        "tableseg",
2361
        "tableshuffle",
2362
        "tableshufflei",
2363
        "tablew",
2364
        "tablewa",
2365
        "tablewkt",
2366
        "tablexkt",
2367
        "tablexseg",
2368
        "tabmorph",
2369
        "tabmorpha",
2370
        "tabmorphak",
2371
        "tabmorphi",
2372
        "tabplay",
2373
        "tabrec",
2374
        "tabrowlin",
2375
        "tabsum",
2376
        "tabw",
2377
        "tabw_i",
2378
        "tambourine",
2379
        "tan",
2380
        "tanh",
2381
        "taninv",
2382
        "taninv2",
2383
        "tbvcf",
2384
        "tempest",
2385
        "tempo",
2386
        "temposcal",
2387
        "tempoval",
2388
        "timedseq",
2389
        "timeinstk",
2390
        "timeinsts",
2391
        "timek",
2392
        "times",
2393
        "tival",
2394
        "tlineto",
2395
        "tone",
2396
        "tonek",
2397
        "tonex",
2398
        "tradsyn",
2399
        "trandom",
2400
        "transeg",
2401
        "transegb",
2402
        "transegr",
2403
        "trcross",
2404
        "trfilter",
2405
        "trhighest",
2406
        "trigger",
2407
        "trigseq",
2408
        "trim",
2409
        "trim_i",
2410
        "trirand",
2411
        "trlowest",
2412
        "trmix",
2413
        "trscale",
2414
        "trshift",
2415
        "trsplit",
2416
        "turnoff",
2417
        "turnoff2",
2418
        "turnon",
2419
        "tvconv",
2420
        "unirand",
2421
        "unwrap",
2422
        "upsamp",
2423
        "urandom",
2424
        "urd",
2425
        "vactrol",
2426
        "vadd",
2427
        "vadd_i",
2428
        "vaddv",
2429
        "vaddv_i",
2430
        "vaget",
2431
        "valpass",
2432
        "vaset",
2433
        "vbap",
2434
        "vbapg",
2435
        "vbapgmove",
2436
        "vbaplsinit",
2437
        "vbapmove",
2438
        "vbapz",
2439
        "vbapzmove",
2440
        "vcella",
2441
        "vco",
2442
        "vco2",
2443
        "vco2ft",
2444
        "vco2ift",
2445
        "vco2init",
2446
        "vcomb",
2447
        "vcopy",
2448
        "vcopy_i",
2449
        "vdel_k",
2450
        "vdelay",
2451
        "vdelay3",
2452
        "vdelayk",
2453
        "vdelayx",
2454
        "vdelayxq",
2455
        "vdelayxs",
2456
        "vdelayxw",
2457
        "vdelayxwq",
2458
        "vdelayxws",
2459
        "vdivv",
2460
        "vdivv_i",
2461
        "vecdelay",
2462
        "veloc",
2463
        "vexp",
2464
        "vexp_i",
2465
        "vexpseg",
2466
        "vexpv",
2467
        "vexpv_i",
2468
        "vibes",
2469
        "vibr",
2470
        "vibrato",
2471
        "vincr",
2472
        "vlimit",
2473
        "vlinseg",
2474
        "vlowres",
2475
        "vmap",
2476
        "vmirror",
2477
        "vmult",
2478
        "vmult_i",
2479
        "vmultv",
2480
        "vmultv_i",
2481
        "voice",
2482
        "vosim",
2483
        "vphaseseg",
2484
        "vport",
2485
        "vpow",
2486
        "vpow_i",
2487
        "vpowv",
2488
        "vpowv_i",
2489
        "vpvoc",
2490
        "vrandh",
2491
        "vrandi",
2492
        "vsubv",
2493
        "vsubv_i",
2494
        "vtaba",
2495
        "vtabi",
2496
        "vtabk",
2497
        "vtable1k",
2498
        "vtablea",
2499
        "vtablei",
2500
        "vtablek",
2501
        "vtablewa",
2502
        "vtablewi",
2503
        "vtablewk",
2504
        "vtabwa",
2505
        "vtabwi",
2506
        "vtabwk",
2507
        "vwrap",
2508
        "waveset",
2509
        "websocket",
2510
        "weibull",
2511
        "wgbow",
2512
        "wgbowedbar",
2513
        "wgbrass",
2514
        "wgclar",
2515
        "wgflute",
2516
        "wgpluck",
2517
        "wgpluck2",
2518
        "wguide1",
2519
        "wguide2",
2520
        "wiiconnect",
2521
        "wiidata",
2522
        "wiirange",
2523
        "wiisend",
2524
        "window",
2525
        "wrap",
2526
        "writescratch",
2527
        "wterrain",
2528
        "xadsr",
2529
        "xin",
2530
        "xout",
2531
        "xscanmap",
2532
        "xscans",
2533
        "xscansmap",
2534
        "xscanu",
2535
        "xtratim",
2536
        "xyscale",
2537
        "zacl",
2538
        "zakinit",
2539
        "zamod",
2540
        "zar",
2541
        "zarg",
2542
        "zaw",
2543
        "zawm",
2544
        "zdf_1pole",
2545
        "zdf_1pole_mode",
2546
        "zdf_2pole",
2547
        "zdf_2pole_mode",
2548
        "zdf_ladder",
2549
        "zfilter2",
2550
        "zir",
2551
        "ziw",
2552
        "ziwm",
2553
        "zkcl",
2554
        "zkmod",
2555
        "zkr",
2556
        "zkw",
2557
        "zkwm"
2558
    ];
2559
    var deprecatedOpcodes = [
2560
        "array",
2561
        "bformdec",
2562
        "bformenc",
2563
        "changed",
2564
        "copy2ftab",
2565
        "copy2ttab",
2566
        "hrtfer",
2567
        "ktableseg",
2568
        "lentab",
2569
        "maxtab",
2570
        "mintab",
2571
        "pop",
2572
        "pop_f",
2573
        "ptableiw",
2574
        "push",
2575
        "push_f",
2576
        "scalet",
2577
        "sndload",
2578
        "soundout",
2579
        "soundouts",
2580
        "specaddm",
2581
        "specdiff",
2582
        "specdisp",
2583
        "specfilt",
2584
        "spechist",
2585
        "specptrk",
2586
        "specscal",
2587
        "specsum",
2588
        "spectrum",
2589
        "stack",
2590
        "sumtab",
2591
        "tabgen",
2592
        "tableiw",
2593
        "tabmap",
2594
        "tabmap_i",
2595
        "tabslice",
2596
        "tb0",
2597
        "tb0_init",
2598
        "tb1",
2599
        "tb10",
2600
        "tb10_init",
2601
        "tb11",
2602
        "tb11_init",
2603
        "tb12",
2604
        "tb12_init",
2605
        "tb13",
2606
        "tb13_init",
2607
        "tb14",
2608
        "tb14_init",
2609
        "tb15",
2610
        "tb15_init",
2611
        "tb1_init",
2612
        "tb2",
2613
        "tb2_init",
2614
        "tb3",
2615
        "tb3_init",
2616
        "tb4",
2617
        "tb4_init",
2618
        "tb5",
2619
        "tb5_init",
2620
        "tb6",
2621
        "tb6_init",
2622
        "tb7",
2623
        "tb7_init",
2624
        "tb8",
2625
        "tb8_init",
2626
        "tb9",
2627
        "tb9_init",
2628
        "vbap16",
2629
        "vbap4",
2630
        "vbap4move",
2631
        "vbap8",
2632
        "vbap8move",
2633
        "xyin"
2634
    ];
2635

    
2636
    opcodes = lang.arrayToMap(opcodes);
2637
    deprecatedOpcodes = lang.arrayToMap(deprecatedOpcodes);
2638

    
2639
    this.lineContinuations = [
2640
        {
2641
            token : "constant.character.escape.line-continuation.csound",
2642
            regex : /\\$/
2643
        }, this.pushRule({
2644
            token : "constant.character.escape.line-continuation.csound",
2645
            regex : /\\/,
2646
            next  : "line continuation"
2647
        })
2648
    ];
2649

    
2650
    this.comments.push(this.lineContinuations);
2651

    
2652
    this.quotedStringContents.push(
2653
        this.lineContinuations,
2654
        {
2655
            token : "invalid.illegal",
2656
            regex : /[^"\\]*$/
2657
        }
2658
    );
2659

    
2660
    var start = this.$rules.start;
2661
    start.splice(1, 0, {
2662
        token : ["text.csound", "entity.name.label.csound", "entity.punctuation.label.csound", "text.csound"],
2663
        regex : /^([ \t]*)(\w+)(:)([ \t]+|$)/
2664
    });
2665
    start.push(
2666
        this.pushRule({
2667
            token : "keyword.function.csound",
2668
            regex : /\binstr\b/,
2669
            next  : "instrument numbers and identifiers"
2670
        }), this.pushRule({
2671
            token : "keyword.function.csound",
2672
            regex : /\bopcode\b/,
2673
            next  : "after opcode keyword"
2674
        }), {
2675
            token : "keyword.other.csound",
2676
            regex : /\bend(?:in|op)\b/
2677
        },
2678

    
2679
        {
2680
            token : "variable.language.csound",
2681
            regex : /\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\b/
2682
        },
2683

    
2684
        this.numbers,
2685

    
2686
        {
2687
            token : "keyword.operator.csound",
2688
            regex : "\\+=|-=|\\*=|/=|<<|>>|<=|>=|==|!=|&&|\\|\\||[~¬]|[=!+\\-*/^%&|<>#?:]"
2689
        },
2690

    
2691
        this.pushRule({
2692
            token : "punctuation.definition.string.begin.csound",
2693
            regex : /"/,
2694
            next  : "quoted string"
2695
        }), this.pushRule({
2696
            token : "punctuation.definition.string.begin.csound",
2697
            regex : /{{/,
2698
            next  : "braced string"
2699
        }),
2700

    
2701
        {
2702
            token : "keyword.control.csound",
2703
            regex : /\b(?:do|else(?:if)?|end(?:if|until)|fi|i(?:f|then)|kthen|od|r(?:ir)?eturn|then|until|while)\b/
2704
        },
2705

    
2706
        this.pushRule({
2707
            token : "keyword.control.csound",
2708
            regex : /\b[ik]?goto\b/,
2709
            next  : "goto before label"
2710
        }), this.pushRule({
2711
            token : "keyword.control.csound",
2712
            regex : /\b(?:r(?:einit|igoto)|tigoto)\b/,
2713
            next  : "goto before label"
2714
        }), this.pushRule({
2715
            token : "keyword.control.csound",
2716
            regex : /\bc(?:g|in?|k|nk?)goto\b/,
2717
            next  : ["goto before label", "goto before argument"]
2718
        }), this.pushRule({
2719
            token : "keyword.control.csound",
2720
            regex : /\btimout\b/,
2721
            next  : ["goto before label", "goto before argument", "goto before argument"]
2722
        }), this.pushRule({
2723
            token : "keyword.control.csound",
2724
            regex : /\bloop_[gl][et]\b/,
2725
            next  : ["goto before label", "goto before argument", "goto before argument", "goto before argument"]
2726
        }),
2727

    
2728
        this.pushRule({
2729
            token : "support.function.csound",
2730
            regex : /\b(?:readscore|scoreline(?:_i)?)\b/,
2731
            next  : "Csound score opcode"
2732
        }), this.pushRule({
2733
            token : "support.function.csound",
2734
            regex : /\bpyl?run[it]?\b(?!$)/,
2735
            next  : "Python opcode"
2736
        }), this.pushRule({
2737
            token : "support.function.csound",
2738
            regex : /\blua_(?:exec|opdef)\b(?!$)/,
2739
            next  : "Lua opcode"
2740
        }),
2741

    
2742
        {
2743
            token : "support.variable.csound",
2744
            regex : /\bp\d+\b/
2745
        }, {
2746
            regex : /\b([A-Z_a-z]\w*)(?:(:)([A-Za-z]))?\b/, onMatch: function(value, currentState, stack, line) {
2747
                var tokens = value.split(this.splitRegex);
2748
                var name = tokens[1];
2749
                var type;
2750
                if (opcodes.hasOwnProperty(name))
2751
                    type = "support.function.csound";
2752
                else if (deprecatedOpcodes.hasOwnProperty(name))
2753
                    type = "invalid.deprecated.csound";
2754
                if (type) {
2755
                    if (tokens[2]) {
2756
                        return [
2757
                            {type: type, value: name},
2758
                            {type: "punctuation.type-annotation.csound", value: tokens[2]},
2759
                            {type: "type-annotation.storage.type.csound", value: tokens[3]}
2760
                        ];
2761
                    }
2762
                    return type;
2763
                }
2764
                return "text.csound";
2765
            }
2766
        }
2767
    );
2768

    
2769
    this.$rules["macro parameter value list"].splice(2, 0, {
2770
        token : "punctuation.definition.string.begin.csound",
2771
        regex : /{{/,
2772
        next  : "macro parameter value braced string"
2773
    });
2774

    
2775
    var scoreHighlightRules = new CsoundScoreHighlightRules("csound-score-");
2776

    
2777
    this.addRules({
2778
        "macro parameter value braced string": [
2779
            {
2780
                token : "constant.character.escape.csound",
2781
                regex : /\\[#'()]/
2782
            }, {
2783
                token : "invalid.illegal.csound.csound",
2784
                regex : /[#'()]/
2785
            }, {
2786
                token : "punctuation.definition.string.end.csound",
2787
                regex : /}}/,
2788
                next  : "macro parameter value list"
2789
            }, {
2790
                defaultToken: "string.braced.csound"
2791
            }
2792
        ],
2793

    
2794
        "instrument numbers and identifiers": [
2795
            this.comments,
2796
            {
2797
                token : "entity.name.function.csound",
2798
                regex : /\d+|[A-Z_a-z]\w*/
2799
            }, this.popRule({
2800
                token : "empty",
2801
                regex : /$/
2802
            })
2803
        ],
2804

    
2805
        "after opcode keyword": [
2806
            this.comments,
2807
            this.popRule({
2808
                token : "empty",
2809
                regex : /$/
2810
            }), this.popRule({
2811
                token : "entity.name.function.opcode.csound",
2812
                regex : /[A-Z_a-z]\w*/,
2813
                next  : "opcode type signatures"
2814
            })
2815
        ],
2816
        "opcode type signatures": [
2817
            this.comments,
2818
            this.popRule({
2819
                token : "empty",
2820
                regex : /$/
2821
            }), {
2822
                token : "storage.type.csound",
2823
                regex : /\b(?:0|[afijkKoOpPStV\[\]]+)/
2824
            }
2825
        ],
2826

    
2827
        "quoted string": [
2828
            this.popRule({
2829
                token : "punctuation.definition.string.end.csound",
2830
                regex : /"/
2831
            }),
2832
            this.quotedStringContents,
2833
            {
2834
                defaultToken: "string.quoted.csound"
2835
            }
2836
        ],
2837
        "braced string": [
2838
            this.popRule({
2839
                token : "punctuation.definition.string.end.csound",
2840
                regex : /}}/
2841
            }),
2842
            this.bracedStringContents,
2843
            {
2844
                defaultToken: "string.braced.csound"
2845
            }
2846
        ],
2847

    
2848
        "goto before argument": [
2849
            this.popRule({
2850
                token : "text.csound",
2851
                regex : /,/
2852
            }),
2853
            start
2854
        ],
2855
        "goto before label": [
2856
            {
2857
                token : "text.csound",
2858
                regex : /\s+/
2859
            },
2860
            this.comments,
2861
            this.popRule({
2862
                token : "entity.name.label.csound",
2863
                regex : /\w+/
2864
            }), this.popRule({
2865
                token : "empty",
2866
                regex : /(?!\w)/
2867
            })
2868
        ],
2869

    
2870
        "Csound score opcode": [
2871
            this.comments,
2872
            {
2873
                token : "punctuation.definition.string.begin.csound",
2874
                regex : /{{/,
2875
                next  : scoreHighlightRules.embeddedRulePrefix + "start"
2876
            }, this.popRule({
2877
                token : "empty",
2878
                regex : /$/
2879
            })
2880
        ],
2881

    
2882
        "Python opcode": [
2883
            this.comments,
2884
            {
2885
                token : "punctuation.definition.string.begin.csound",
2886
                regex : /{{/,
2887
                next  : "python-start"
2888
            }, this.popRule({
2889
                token : "empty",
2890
                regex : /$/
2891
            })
2892
        ],
2893

    
2894
        "Lua opcode": [
2895
            this.comments,
2896
            {
2897
                token : "punctuation.definition.string.begin.csound",
2898
                regex : /{{/,
2899
                next  : "lua-start"
2900
            }, this.popRule({
2901
                token : "empty",
2902
                regex : /$/
2903
            })
2904
        ],
2905

    
2906
        "line continuation": [
2907
            this.popRule({
2908
                token : "empty",
2909
                regex : /$/
2910
            }),
2911
            this.semicolonComments,
2912
            {
2913
                token : "invalid.illegal.csound",
2914
                regex : /\S.*/
2915
            }
2916
        ]
2917
    });
2918

    
2919
    var rules = [
2920
        this.popRule({
2921
            token : "punctuation.definition.string.end.csound",
2922
            regex : /}}/
2923
        })
2924
    ];
2925
    this.embedRules(scoreHighlightRules.getRules(), scoreHighlightRules.embeddedRulePrefix, rules);
2926
    this.embedRules(PythonHighlightRules, "python-", rules);
2927
    this.embedRules(LuaHighlightRules, "lua-", rules);
2928

    
2929
    this.normalizeRules();
2930
};
2931

    
2932
oop.inherits(CsoundOrchestraHighlightRules, CsoundPreprocessorHighlightRules);
2933

    
2934
exports.CsoundOrchestraHighlightRules = CsoundOrchestraHighlightRules;
2935
});
2936

    
2937
ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) {
2938
"use strict";
2939

    
2940
var oop = require("../lib/oop");
2941
var lang = require("../lib/lang");
2942
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
2943
var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index";
2944
var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters";
2945
var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom";
2946
var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen";
2947
var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace";
2948

    
2949
var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))";
2950
var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b";
2951
var pseudoClasses  = exports.pseudoClasses =  "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b";
2952

    
2953
var CssHighlightRules = function() {
2954

    
2955
    var keywordMapper = this.createKeywordMapper({
2956
        "support.function": supportFunction,
2957
        "support.constant": supportConstant,
2958
        "support.type": supportType,
2959
        "support.constant.color": supportConstantColor,
2960
        "support.constant.fonts": supportConstantFonts
2961
    }, "text", true);
2962

    
2963
    this.$rules = {
2964
        "start" : [{
2965
            include : ["strings", "url", "comments"]
2966
        }, {
2967
            token: "paren.lparen",
2968
            regex: "\\{",
2969
            next:  "ruleset"
2970
        }, {
2971
            token: "paren.rparen",
2972
            regex: "\\}"
2973
        }, {
2974
            token: "string",
2975
            regex: "@(?!viewport)",
2976
            next:  "media"
2977
        }, {
2978
            token: "keyword",
2979
            regex: "#[a-z0-9-_]+"
2980
        }, {
2981
            token: "keyword",
2982
            regex: "%"
2983
        }, {
2984
            token: "variable",
2985
            regex: "\\.[a-z0-9-_]+"
2986
        }, {
2987
            token: "string",
2988
            regex: ":[a-z0-9-_]+"
2989
        }, {
2990
            token : "constant.numeric",
2991
            regex : numRe
2992
        }, {
2993
            token: "constant",
2994
            regex: "[a-z0-9-_]+"
2995
        }, {
2996
            caseInsensitive: true
2997
        }],
2998

    
2999
        "media": [{
3000
            include : ["strings", "url", "comments"]
3001
        }, {
3002
            token: "paren.lparen",
3003
            regex: "\\{",
3004
            next:  "start"
3005
        }, {
3006
            token: "paren.rparen",
3007
            regex: "\\}",
3008
            next:  "start"
3009
        }, {
3010
            token: "string",
3011
            regex: ";",
3012
            next:  "start"
3013
        }, {
3014
            token: "keyword",
3015
            regex: "(?:media|supports|document|charset|import|namespace|media|supports|document"
3016
                + "|page|font|keyframes|viewport|counter-style|font-feature-values"
3017
                + "|swash|ornaments|annotation|stylistic|styleset|character-variant)"
3018
        }],
3019

    
3020
        "comments" : [{
3021
            token: "comment", // multi line comment
3022
            regex: "\\/\\*",
3023
            push: [{
3024
                token : "comment",
3025
                regex : "\\*\\/",
3026
                next : "pop"
3027
            }, {
3028
                defaultToken : "comment"
3029
            }]
3030
        }],
3031

    
3032
        "ruleset" : [{
3033
            regex : "-(webkit|ms|moz|o)-",
3034
            token : "text"
3035
        }, {
3036
            token : "punctuation.operator",
3037
            regex : "[:;]"
3038
        }, {
3039
            token : "paren.rparen",
3040
            regex : "\\}",
3041
            next : "start"
3042
        }, {
3043
            include : ["strings", "url", "comments"]
3044
        }, {
3045
            token : ["constant.numeric", "keyword"],
3046
            regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"
3047
        }, {
3048
            token : "constant.numeric",
3049
            regex : numRe
3050
        }, {
3051
            token : "constant.numeric",  // hex6 color
3052
            regex : "#[a-f0-9]{6}"
3053
        }, {
3054
            token : "constant.numeric", // hex3 color
3055
            regex : "#[a-f0-9]{3}"
3056
        }, {
3057
            token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"],
3058
            regex : pseudoElements
3059
        }, {
3060
            token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"],
3061
            regex : pseudoClasses
3062
        }, {
3063
            include: "url"
3064
        }, {
3065
            token : keywordMapper,
3066
            regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
3067
        }, {
3068
            caseInsensitive: true
3069
        }],
3070

    
3071
        url: [{
3072
            token : "support.function",
3073
            regex : "(?:url(:?-prefix)?|domain|regexp)\\(",
3074
            push: [{
3075
                token : "support.function",
3076
                regex : "\\)",
3077
                next : "pop"
3078
            }, {
3079
                defaultToken: "string"
3080
            }]
3081
        }],
3082

    
3083
        strings: [{
3084
            token : "string.start",
3085
            regex : "'",
3086
            push : [{
3087
                token : "string.end",
3088
                regex : "'|$",
3089
                next: "pop"
3090
            }, {
3091
                include : "escapes"
3092
            }, {
3093
                token : "constant.language.escape",
3094
                regex : /\\$/,
3095
                consumeLineEnd: true
3096
            }, {
3097
                defaultToken: "string"
3098
            }]
3099
        }, {
3100
            token : "string.start",
3101
            regex : '"',
3102
            push : [{
3103
                token : "string.end",
3104
                regex : '"|$',
3105
                next: "pop"
3106
            }, {
3107
                include : "escapes"
3108
            }, {
3109
                token : "constant.language.escape",
3110
                regex : /\\$/,
3111
                consumeLineEnd: true
3112
            }, {
3113
                defaultToken: "string"
3114
            }]
3115
        }],
3116
        escapes: [{
3117
            token : "constant.language.escape",
3118
            regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/
3119
        }]
3120

    
3121
    };
3122

    
3123
    this.normalizeRules();
3124
};
3125

    
3126
oop.inherits(CssHighlightRules, TextHighlightRules);
3127

    
3128
exports.CssHighlightRules = CssHighlightRules;
3129

    
3130
});
3131

    
3132
ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
3133
"use strict";
3134

    
3135
var oop = require("../lib/oop");
3136
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
3137

    
3138
var DocCommentHighlightRules = function() {
3139
    this.$rules = {
3140
        "start" : [ {
3141
            token : "comment.doc.tag",
3142
            regex : "@[\\w\\d_]+" // TODO: fix email addresses
3143
        }, 
3144
        DocCommentHighlightRules.getTagRule(),
3145
        {
3146
            defaultToken : "comment.doc",
3147
            caseInsensitive: true
3148
        }]
3149
    };
3150
};
3151

    
3152
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
3153

    
3154
DocCommentHighlightRules.getTagRule = function(start) {
3155
    return {
3156
        token : "comment.doc.tag.storage.type",
3157
        regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
3158
    };
3159
};
3160

    
3161
DocCommentHighlightRules.getStartRule = function(start) {
3162
    return {
3163
        token : "comment.doc", // doc comment
3164
        regex : "\\/\\*(?=\\*)",
3165
        next  : start
3166
    };
3167
};
3168

    
3169
DocCommentHighlightRules.getEndRule = function (start) {
3170
    return {
3171
        token : "comment.doc", // closing comment
3172
        regex : "\\*\\/",
3173
        next  : start
3174
    };
3175
};
3176

    
3177

    
3178
exports.DocCommentHighlightRules = DocCommentHighlightRules;
3179

    
3180
});
3181

    
3182
ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) {
3183
"use strict";
3184

    
3185
var oop = require("../lib/oop");
3186
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
3187
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
3188
var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
3189

    
3190
var JavaScriptHighlightRules = function(options) {
3191
    var keywordMapper = this.createKeywordMapper({
3192
        "variable.language":
3193
            "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|"  + // Constructors
3194
            "Namespace|QName|XML|XMLList|"                                             + // E4X
3195
            "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|"   +
3196
            "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|"                    +
3197
            "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|"   + // Errors
3198
            "SyntaxError|TypeError|URIError|"                                          +
3199
            "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions
3200
            "isNaN|parseFloat|parseInt|"                                               +
3201
            "JSON|Math|"                                                               + // Other
3202
            "this|arguments|prototype|window|document"                                 , // Pseudo
3203
        "keyword":
3204
            "const|yield|import|get|set|async|await|" +
3205
            "break|case|catch|continue|default|delete|do|else|finally|for|function|" +
3206
            "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" +
3207
            "__parent__|__count__|escape|unescape|with|__proto__|" +
3208
            "class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
3209
        "storage.type":
3210
            "const|let|var|function",
3211
        "constant.language":
3212
            "null|Infinity|NaN|undefined",
3213
        "support.function":
3214
            "alert",
3215
        "constant.language.boolean": "true|false"
3216
    }, "identifier");
3217
    var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void";
3218

    
3219
    var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
3220
        "u[0-9a-fA-F]{4}|" + // unicode
3221
        "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode
3222
        "[0-2][0-7]{0,2}|" + // oct
3223
        "3[0-7][0-7]?|" + // oct
3224
        "[4-7][0-7]?|" + //oct
3225
        ".)";
3226

    
3227
    this.$rules = {
3228
        "no_regex" : [
3229
            DocCommentHighlightRules.getStartRule("doc-start"),
3230
            comments("no_regex"),
3231
            {
3232
                token : "string",
3233
                regex : "'(?=.)",
3234
                next  : "qstring"
3235
            }, {
3236
                token : "string",
3237
                regex : '"(?=.)',
3238
                next  : "qqstring"
3239
            }, {
3240
                token : "constant.numeric", // hexadecimal, octal and binary
3241
                regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/
3242
            }, {
3243
                token : "constant.numeric", // decimal integers and floats
3244
                regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/
3245
            }, {
3246
                token : [
3247
                    "storage.type", "punctuation.operator", "support.function",
3248
                    "punctuation.operator", "entity.name.function", "text","keyword.operator"
3249
                ],
3250
                regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)",
3251
                next: "function_arguments"
3252
            }, {
3253
                token : [
3254
                    "storage.type", "punctuation.operator", "entity.name.function", "text",
3255
                    "keyword.operator", "text", "storage.type", "text", "paren.lparen"
3256
                ],
3257
                regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
3258
                next: "function_arguments"
3259
            }, {
3260
                token : [
3261
                    "entity.name.function", "text", "keyword.operator", "text", "storage.type",
3262
                    "text", "paren.lparen"
3263
                ],
3264
                regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
3265
                next: "function_arguments"
3266
            }, {
3267
                token : [
3268
                    "storage.type", "punctuation.operator", "entity.name.function", "text",
3269
                    "keyword.operator", "text",
3270
                    "storage.type", "text", "entity.name.function", "text", "paren.lparen"
3271
                ],
3272
                regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",
3273
                next: "function_arguments"
3274
            }, {
3275
                token : [
3276
                    "storage.type", "text", "entity.name.function", "text", "paren.lparen"
3277
                ],
3278
                regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()",
3279
                next: "function_arguments"
3280
            }, {
3281
                token : [
3282
                    "entity.name.function", "text", "punctuation.operator",
3283
                    "text", "storage.type", "text", "paren.lparen"
3284
                ],
3285
                regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",
3286
                next: "function_arguments"
3287
            }, {
3288
                token : [
3289
                    "text", "text", "storage.type", "text", "paren.lparen"
3290
                ],
3291
                regex : "(:)(\\s*)(function)(\\s*)(\\()",
3292
                next: "function_arguments"
3293
            }, {
3294
                token : "keyword",
3295
                regex : "from(?=\\s*('|\"))"
3296
            }, {
3297
                token : "keyword",
3298
                regex : "(?:" + kwBeforeRe + ")\\b",
3299
                next : "start"
3300
            }, {
3301
                token : ["support.constant"],
3302
                regex : /that\b/
3303
            }, {
3304
                token : ["storage.type", "punctuation.operator", "support.function.firebug"],
3305
                regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/
3306
            }, {
3307
                token : keywordMapper,
3308
                regex : identifierRe
3309
            }, {
3310
                token : "punctuation.operator",
3311
                regex : /[.](?![.])/,
3312
                next  : "property"
3313
            }, {
3314
                token : "storage.type",
3315
                regex : /=>/,
3316
                next  : "start"
3317
            }, {
3318
                token : "keyword.operator",
3319
                regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
3320
                next  : "start"
3321
            }, {
3322
                token : "punctuation.operator",
3323
                regex : /[?:,;.]/,
3324
                next  : "start"
3325
            }, {
3326
                token : "paren.lparen",
3327
                regex : /[\[({]/,
3328
                next  : "start"
3329
            }, {
3330
                token : "paren.rparen",
3331
                regex : /[\])}]/
3332
            }, {
3333
                token: "comment",
3334
                regex: /^#!.*$/
3335
            }
3336
        ],
3337
        property: [{
3338
                token : "text",
3339
                regex : "\\s+"
3340
            }, {
3341
                token : [
3342
                    "storage.type", "punctuation.operator", "entity.name.function", "text",
3343
                    "keyword.operator", "text",
3344
                    "storage.type", "text", "entity.name.function", "text", "paren.lparen"
3345
                ],
3346
                regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",
3347
                next: "function_arguments"
3348
            }, {
3349
                token : "punctuation.operator",
3350
                regex : /[.](?![.])/
3351
            }, {
3352
                token : "support.function",
3353
                regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/
3354
            }, {
3355
                token : "support.function.dom",
3356
                regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/
3357
            }, {
3358
                token :  "support.constant",
3359
                regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/
3360
            }, {
3361
                token : "identifier",
3362
                regex : identifierRe
3363
            }, {
3364
                regex: "",
3365
                token: "empty",
3366
                next: "no_regex"
3367
            }
3368
        ],
3369
        "start": [
3370
            DocCommentHighlightRules.getStartRule("doc-start"),
3371
            comments("start"),
3372
            {
3373
                token: "string.regexp",
3374
                regex: "\\/",
3375
                next: "regex"
3376
            }, {
3377
                token : "text",
3378
                regex : "\\s+|^$",
3379
                next : "start"
3380
            }, {
3381
                token: "empty",
3382
                regex: "",
3383
                next: "no_regex"
3384
            }
3385
        ],
3386
        "regex": [
3387
            {
3388
                token: "regexp.keyword.operator",
3389
                regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
3390
            }, {
3391
                token: "string.regexp",
3392
                regex: "/[sxngimy]*",
3393
                next: "no_regex"
3394
            }, {
3395
                token : "invalid",
3396
                regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/
3397
            }, {
3398
                token : "constant.language.escape",
3399
                regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/
3400
            }, {
3401
                token : "constant.language.delimiter",
3402
                regex: /\|/
3403
            }, {
3404
                token: "constant.language.escape",
3405
                regex: /\[\^?/,
3406
                next: "regex_character_class"
3407
            }, {
3408
                token: "empty",
3409
                regex: "$",
3410
                next: "no_regex"
3411
            }, {
3412
                defaultToken: "string.regexp"
3413
            }
3414
        ],
3415
        "regex_character_class": [
3416
            {
3417
                token: "regexp.charclass.keyword.operator",
3418
                regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"
3419
            }, {
3420
                token: "constant.language.escape",
3421
                regex: "]",
3422
                next: "regex"
3423
            }, {
3424
                token: "constant.language.escape",
3425
                regex: "-"
3426
            }, {
3427
                token: "empty",
3428
                regex: "$",
3429
                next: "no_regex"
3430
            }, {
3431
                defaultToken: "string.regexp.charachterclass"
3432
            }
3433
        ],
3434
        "function_arguments": [
3435
            {
3436
                token: "variable.parameter",
3437
                regex: identifierRe
3438
            }, {
3439
                token: "punctuation.operator",
3440
                regex: "[, ]+"
3441
            }, {
3442
                token: "punctuation.operator",
3443
                regex: "$"
3444
            }, {
3445
                token: "empty",
3446
                regex: "",
3447
                next: "no_regex"
3448
            }
3449
        ],
3450
        "qqstring" : [
3451
            {
3452
                token : "constant.language.escape",
3453
                regex : escapedRe
3454
            }, {
3455
                token : "string",
3456
                regex : "\\\\$",
3457
                consumeLineEnd  : true
3458
            }, {
3459
                token : "string",
3460
                regex : '"|$',
3461
                next  : "no_regex"
3462
            }, {
3463
                defaultToken: "string"
3464
            }
3465
        ],
3466
        "qstring" : [
3467
            {
3468
                token : "constant.language.escape",
3469
                regex : escapedRe
3470
            }, {
3471
                token : "string",
3472
                regex : "\\\\$",
3473
                consumeLineEnd  : true
3474
            }, {
3475
                token : "string",
3476
                regex : "'|$",
3477
                next  : "no_regex"
3478
            }, {
3479
                defaultToken: "string"
3480
            }
3481
        ]
3482
    };
3483

    
3484

    
3485
    if (!options || !options.noES6) {
3486
        this.$rules.no_regex.unshift({
3487
            regex: "[{}]", onMatch: function(val, state, stack) {
3488
                this.next = val == "{" ? this.nextState : "";
3489
                if (val == "{" && stack.length) {
3490
                    stack.unshift("start", state);
3491
                }
3492
                else if (val == "}" && stack.length) {
3493
                    stack.shift();
3494
                    this.next = stack.shift();
3495
                    if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1)
3496
                        return "paren.quasi.end";
3497
                }
3498
                return val == "{" ? "paren.lparen" : "paren.rparen";
3499
            },
3500
            nextState: "start"
3501
        }, {
3502
            token : "string.quasi.start",
3503
            regex : /`/,
3504
            push  : [{
3505
                token : "constant.language.escape",
3506
                regex : escapedRe
3507
            }, {
3508
                token : "paren.quasi.start",
3509
                regex : /\${/,
3510
                push  : "start"
3511
            }, {
3512
                token : "string.quasi.end",
3513
                regex : /`/,
3514
                next  : "pop"
3515
            }, {
3516
                defaultToken: "string.quasi"
3517
            }]
3518
        });
3519

    
3520
        if (!options || options.jsx != false)
3521
            JSX.call(this);
3522
    }
3523

    
3524
    this.embedRules(DocCommentHighlightRules, "doc-",
3525
        [ DocCommentHighlightRules.getEndRule("no_regex") ]);
3526

    
3527
    this.normalizeRules();
3528
};
3529

    
3530
oop.inherits(JavaScriptHighlightRules, TextHighlightRules);
3531

    
3532
function JSX() {
3533
    var tagRegex = identifierRe.replace("\\d", "\\d\\-");
3534
    var jsxTag = {
3535
        onMatch : function(val, state, stack) {
3536
            var offset = val.charAt(1) == "/" ? 2 : 1;
3537
            if (offset == 1) {
3538
                if (state != this.nextState)
3539
                    stack.unshift(this.next, this.nextState, 0);
3540
                else
3541
                    stack.unshift(this.next);
3542
                stack[2]++;
3543
            } else if (offset == 2) {
3544
                if (state == this.nextState) {
3545
                    stack[1]--;
3546
                    if (!stack[1] || stack[1] < 0) {
3547
                        stack.shift();
3548
                        stack.shift();
3549
                    }
3550
                }
3551
            }
3552
            return [{
3553
                type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml",
3554
                value: val.slice(0, offset)
3555
            }, {
3556
                type: "meta.tag.tag-name.xml",
3557
                value: val.substr(offset)
3558
            }];
3559
        },
3560
        regex : "</?" + tagRegex + "",
3561
        next: "jsxAttributes",
3562
        nextState: "jsx"
3563
    };
3564
    this.$rules.start.unshift(jsxTag);
3565
    var jsxJsRule = {
3566
        regex: "{",
3567
        token: "paren.quasi.start",
3568
        push: "start"
3569
    };
3570
    this.$rules.jsx = [
3571
        jsxJsRule,
3572
        jsxTag,
3573
        {include : "reference"},
3574
        {defaultToken: "string"}
3575
    ];
3576
    this.$rules.jsxAttributes = [{
3577
        token : "meta.tag.punctuation.tag-close.xml",
3578
        regex : "/?>",
3579
        onMatch : function(value, currentState, stack) {
3580
            if (currentState == stack[0])
3581
                stack.shift();
3582
            if (value.length == 2) {
3583
                if (stack[0] == this.nextState)
3584
                    stack[1]--;
3585
                if (!stack[1] || stack[1] < 0) {
3586
                    stack.splice(0, 2);
3587
                }
3588
            }
3589
            this.next = stack[0] || "start";
3590
            return [{type: this.token, value: value}];
3591
        },
3592
        nextState: "jsx"
3593
    },
3594
    jsxJsRule,
3595
    comments("jsxAttributes"),
3596
    {
3597
        token : "entity.other.attribute-name.xml",
3598
        regex : tagRegex
3599
    }, {
3600
        token : "keyword.operator.attribute-equals.xml",
3601
        regex : "="
3602
    }, {
3603
        token : "text.tag-whitespace.xml",
3604
        regex : "\\s+"
3605
    }, {
3606
        token : "string.attribute-value.xml",
3607
        regex : "'",
3608
        stateName : "jsx_attr_q",
3609
        push : [
3610
            {token : "string.attribute-value.xml", regex: "'", next: "pop"},
3611
            {include : "reference"},
3612
            {defaultToken : "string.attribute-value.xml"}
3613
        ]
3614
    }, {
3615
        token : "string.attribute-value.xml",
3616
        regex : '"',
3617
        stateName : "jsx_attr_qq",
3618
        push : [
3619
            {token : "string.attribute-value.xml", regex: '"', next: "pop"},
3620
            {include : "reference"},
3621
            {defaultToken : "string.attribute-value.xml"}
3622
        ]
3623
    },
3624
    jsxTag
3625
    ];
3626
    this.$rules.reference = [{
3627
        token : "constant.language.escape.reference.xml",
3628
        regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
3629
    }];
3630
}
3631

    
3632
function comments(next) {
3633
    return [
3634
        {
3635
            token : "comment", // multi line comment
3636
            regex : /\/\*/,
3637
            next: [
3638
                DocCommentHighlightRules.getTagRule(),
3639
                {token : "comment", regex : "\\*\\/", next : next || "pop"},
3640
                {defaultToken : "comment", caseInsensitive: true}
3641
            ]
3642
        }, {
3643
            token : "comment",
3644
            regex : "\\/\\/",
3645
            next: [
3646
                DocCommentHighlightRules.getTagRule(),
3647
                {token : "comment", regex : "$|^", next : next || "pop"},
3648
                {defaultToken : "comment", caseInsensitive: true}
3649
            ]
3650
        }
3651
    ];
3652
}
3653
exports.JavaScriptHighlightRules = JavaScriptHighlightRules;
3654
});
3655

    
3656
ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
3657
"use strict";
3658

    
3659
var oop = require("../lib/oop");
3660
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
3661

    
3662
var XmlHighlightRules = function(normalize) {
3663
    var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*";
3664

    
3665
    this.$rules = {
3666
        start : [
3667
            {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"},
3668
            {
3669
                token : ["punctuation.instruction.xml", "keyword.instruction.xml"],
3670
                regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction"
3671
            },
3672
            {token : "comment.start.xml", regex : "<\\!--", next : "comment"},
3673
            {
3674
                token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
3675
                regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true
3676
            },
3677
            {include : "tag"},
3678
            {token : "text.end-tag-open.xml", regex: "</"},
3679
            {token : "text.tag-open.xml", regex: "<"},
3680
            {include : "reference"},
3681
            {defaultToken : "text.xml"}
3682
        ],
3683

    
3684
        processing_instruction : [{
3685
            token : "entity.other.attribute-name.decl-attribute-name.xml",
3686
            regex : tagRegex
3687
        }, {
3688
            token : "keyword.operator.decl-attribute-equals.xml",
3689
            regex : "="
3690
        }, {
3691
            include: "whitespace"
3692
        }, {
3693
            include: "string"
3694
        }, {
3695
            token : "punctuation.xml-decl.xml",
3696
            regex : "\\?>",
3697
            next : "start"
3698
        }],
3699

    
3700
        doctype : [
3701
            {include : "whitespace"},
3702
            {include : "string"},
3703
            {token : "xml-pe.doctype.xml", regex : ">", next : "start"},
3704
            {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"},
3705
            {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"}
3706
        ],
3707

    
3708
        int_subset : [{
3709
            token : "text.xml",
3710
            regex : "\\s+"
3711
        }, {
3712
            token: "punctuation.int-subset.xml",
3713
            regex: "]",
3714
            next: "pop"
3715
        }, {
3716
            token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"],
3717
            regex : "(<\\!)(" + tagRegex + ")",
3718
            push : [{
3719
                token : "text",
3720
                regex : "\\s+"
3721
            },
3722
            {
3723
                token : "punctuation.markup-decl.xml",
3724
                regex : ">",
3725
                next : "pop"
3726
            },
3727
            {include : "string"}]
3728
        }],
3729

    
3730
        cdata : [
3731
            {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"},
3732
            {token : "text.xml", regex : "\\s+"},
3733
            {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"}
3734
        ],
3735

    
3736
        comment : [
3737
            {token : "comment.end.xml", regex : "-->", next : "start"},
3738
            {defaultToken : "comment.xml"}
3739
        ],
3740

    
3741
        reference : [{
3742
            token : "constant.language.escape.reference.xml",
3743
            regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
3744
        }],
3745

    
3746
        attr_reference : [{
3747
            token : "constant.language.escape.reference.attribute-value.xml",
3748
            regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"
3749
        }],
3750

    
3751
        tag : [{
3752
            token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"],
3753
            regex : "(?:(<)|(</))((?:" + tagRegex + ":)?" + tagRegex + ")",
3754
            next: [
3755
                {include : "attributes"},
3756
                {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
3757
            ]
3758
        }],
3759

    
3760
        tag_whitespace : [
3761
            {token : "text.tag-whitespace.xml", regex : "\\s+"}
3762
        ],
3763
        whitespace : [
3764
            {token : "text.whitespace.xml", regex : "\\s+"}
3765
        ],
3766
        string: [{
3767
            token : "string.xml",
3768
            regex : "'",
3769
            push : [
3770
                {token : "string.xml", regex: "'", next: "pop"},
3771
                {defaultToken : "string.xml"}
3772
            ]
3773
        }, {
3774
            token : "string.xml",
3775
            regex : '"',
3776
            push : [
3777
                {token : "string.xml", regex: '"', next: "pop"},
3778
                {defaultToken : "string.xml"}
3779
            ]
3780
        }],
3781

    
3782
        attributes: [{
3783
            token : "entity.other.attribute-name.xml",
3784
            regex : tagRegex
3785
        }, {
3786
            token : "keyword.operator.attribute-equals.xml",
3787
            regex : "="
3788
        }, {
3789
            include: "tag_whitespace"
3790
        }, {
3791
            include: "attribute_value"
3792
        }],
3793

    
3794
        attribute_value: [{
3795
            token : "string.attribute-value.xml",
3796
            regex : "'",
3797
            push : [
3798
                {token : "string.attribute-value.xml", regex: "'", next: "pop"},
3799
                {include : "attr_reference"},
3800
                {defaultToken : "string.attribute-value.xml"}
3801
            ]
3802
        }, {
3803
            token : "string.attribute-value.xml",
3804
            regex : '"',
3805
            push : [
3806
                {token : "string.attribute-value.xml", regex: '"', next: "pop"},
3807
                {include : "attr_reference"},
3808
                {defaultToken : "string.attribute-value.xml"}
3809
            ]
3810
        }]
3811
    };
3812

    
3813
    if (this.constructor === XmlHighlightRules)
3814
        this.normalizeRules();
3815
};
3816

    
3817

    
3818
(function() {
3819

    
3820
    this.embedTagRules = function(HighlightRules, prefix, tag){
3821
        this.$rules.tag.unshift({
3822
            token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
3823
            regex : "(<)(" + tag + "(?=\\s|>|$))",
3824
            next: [
3825
                {include : "attributes"},
3826
                {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"}
3827
            ]
3828
        });
3829

    
3830
        this.$rules[tag + "-end"] = [
3831
            {include : "attributes"},
3832
            {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>",  next: "start",
3833
                onMatch : function(value, currentState, stack) {
3834
                    stack.splice(0);
3835
                    return this.token;
3836
            }}
3837
        ];
3838

    
3839
        this.embedRules(HighlightRules, prefix, [{
3840
            token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"],
3841
            regex : "(</)(" + tag + "(?=\\s|>|$))",
3842
            next: tag + "-end"
3843
        }, {
3844
            token: "string.cdata.xml",
3845
            regex : "<\\!\\[CDATA\\["
3846
        }, {
3847
            token: "string.cdata.xml",
3848
            regex : "\\]\\]>"
3849
        }]);
3850
    };
3851

    
3852
}).call(TextHighlightRules.prototype);
3853

    
3854
oop.inherits(XmlHighlightRules, TextHighlightRules);
3855

    
3856
exports.XmlHighlightRules = XmlHighlightRules;
3857
});
3858

    
3859
ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) {
3860
"use strict";
3861

    
3862
var oop = require("../lib/oop");
3863
var lang = require("../lib/lang");
3864
var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules;
3865
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
3866
var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules;
3867

    
3868
var tagMap = lang.createMap({
3869
    a           : 'anchor',
3870
    button 	    : 'form',
3871
    form        : 'form',
3872
    img         : 'image',
3873
    input       : 'form',
3874
    label       : 'form',
3875
    option      : 'form',
3876
    script      : 'script',
3877
    select      : 'form',
3878
    textarea    : 'form',
3879
    style       : 'style',
3880
    table       : 'table',
3881
    tbody       : 'table',
3882
    td          : 'table',
3883
    tfoot       : 'table',
3884
    th          : 'table',
3885
    tr          : 'table'
3886
});
3887

    
3888
var HtmlHighlightRules = function() {
3889
    XmlHighlightRules.call(this);
3890

    
3891
    this.addRules({
3892
        attributes: [{
3893
            include : "tag_whitespace"
3894
        }, {
3895
            token : "entity.other.attribute-name.xml",
3896
            regex : "[-_a-zA-Z0-9:.]+"
3897
        }, {
3898
            token : "keyword.operator.attribute-equals.xml",
3899
            regex : "=",
3900
            push : [{
3901
                include: "tag_whitespace"
3902
            }, {
3903
                token : "string.unquoted.attribute-value.html",
3904
                regex : "[^<>='\"`\\s]+",
3905
                next : "pop"
3906
            }, {
3907
                token : "empty",
3908
                regex : "",
3909
                next : "pop"
3910
            }]
3911
        }, {
3912
            include : "attribute_value"
3913
        }],
3914
        tag: [{
3915
            token : function(start, tag) {
3916
                var group = tagMap[tag];
3917
                return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml",
3918
                    "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"];
3919
            },
3920
            regex : "(</?)([-_a-zA-Z0-9:.]+)",
3921
            next: "tag_stuff"
3922
        }],
3923
        tag_stuff: [
3924
            {include : "attributes"},
3925
            {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : "start"}
3926
        ]
3927
    });
3928

    
3929
    this.embedTagRules(CssHighlightRules, "css-", "style");
3930
    this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script");
3931

    
3932
    if (this.constructor === HtmlHighlightRules)
3933
        this.normalizeRules();
3934
};
3935

    
3936
oop.inherits(HtmlHighlightRules, XmlHighlightRules);
3937

    
3938
exports.HtmlHighlightRules = HtmlHighlightRules;
3939
});
3940

    
3941
ace.define("ace/mode/csound_document_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/csound_orchestra_highlight_rules","ace/mode/csound_score_highlight_rules","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) {
3942
"use strict";
3943

    
3944
var oop = require("../lib/oop");
3945

    
3946
var CsoundOrchestraHighlightRules = require("./csound_orchestra_highlight_rules").CsoundOrchestraHighlightRules;
3947
var CsoundScoreHighlightRules = require("./csound_score_highlight_rules").CsoundScoreHighlightRules;
3948
var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules;
3949
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
3950

    
3951
var CsoundDocumentHighlightRules = function() {
3952

    
3953
    var orchestraHighlightRules = new CsoundOrchestraHighlightRules("csound-");
3954
    var scoreHighlightRules = new CsoundScoreHighlightRules("csound-score-");
3955

    
3956
    this.$rules = {
3957
        "start": [
3958
            {
3959
                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3960
                regex : /(<)(CsoundSynthesi[sz]er)(>)/,
3961
                next  : "synthesizer"
3962
            },
3963
            {defaultToken : "text.csound-document"}
3964
        ],
3965

    
3966
        "synthesizer": [
3967
            {
3968
                token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3969
                regex : "(</)(CsoundSynthesi[sz]er)(>)",
3970
                next  : "start"
3971
            }, {
3972
                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3973
                regex : "(<)(CsInstruments)(>)",
3974
                next  : orchestraHighlightRules.embeddedRulePrefix + "start"
3975
            }, {
3976
                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3977
                regex : "(<)(CsScore)(>)",
3978
                next  : scoreHighlightRules.embeddedRulePrefix + "start"
3979
            }, {
3980
                token : ["meta.tag.punctuation.tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3981
                regex : "(<)([Hh][Tt][Mm][Ll])(>)",
3982
                next  : "html-start"
3983
            }
3984
        ]
3985
    };
3986

    
3987
    this.embedRules(orchestraHighlightRules.getRules(), orchestraHighlightRules.embeddedRulePrefix, [{
3988
        token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3989
        regex : "(</)(CsInstruments)(>)",
3990
        next  : "synthesizer"
3991
    }]);
3992
    this.embedRules(scoreHighlightRules.getRules(), scoreHighlightRules.embeddedRulePrefix, [{
3993
        token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3994
        regex : "(</)(CsScore)(>)",
3995
        next  : "synthesizer"
3996
    }]);
3997
    this.embedRules(HtmlHighlightRules, "html-", [{
3998
        token : ["meta.tag.punctuation.end-tag-open.csound-document", "entity.name.tag.begin.csound-document", "meta.tag.punctuation.tag-close.csound-document"],
3999
        regex : "(</)([Hh][Tt][Mm][Ll])(>)",
4000
        next  : "synthesizer"
4001
    }]);
4002

    
4003
    this.normalizeRules();
4004
};
4005

    
4006
oop.inherits(CsoundDocumentHighlightRules, TextHighlightRules);
4007

    
4008
exports.CsoundDocumentHighlightRules = CsoundDocumentHighlightRules;
4009
});
4010

    
4011
ace.define("ace/mode/csound_document",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/csound_document_highlight_rules"], function(require, exports, module) {
4012
"use strict";
4013

    
4014
var oop = require("../lib/oop");
4015
var TextMode = require("./text").Mode;
4016
var CsoundDocumentHighlightRules = require("./csound_document_highlight_rules").CsoundDocumentHighlightRules;
4017

    
4018
var Mode = function() {
4019
    this.HighlightRules = CsoundDocumentHighlightRules;
4020
};
4021
oop.inherits(Mode, TextMode);
4022

    
4023
(function() {
4024
    this.$id = "ace/mode/csound_document";
4025
    this.snippetFileId = "ace/snippets/csound_document";
4026
}).call(Mode.prototype);
4027

    
4028
exports.Mode = Mode;
4029
});                (function() {
4030
                    ace.require(["ace/mode/csound_document"], function(m) {
4031
                        if (typeof module == "object" && typeof exports == "object" && module) {
4032
                            module.exports = m;
4033
                        }
4034
                    });
4035
                })();
4036
            
(50-50/244)