Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4133134
mode-csound_score.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
13 KB
Referenced Files
None
Subscribers
None
mode-csound_score.js
View Options
ace
.
define
(
"ace/mode/csound_preprocessor_highlight_rules"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/text_highlight_rules"
],
function
(
require
,
exports
,
module
){
"use strict"
;
var
oop
=
require
(
"../lib/oop"
);
var
TextHighlightRules
=
require
(
"./text_highlight_rules"
).
TextHighlightRules
;
var
CsoundPreprocessorHighlightRules
=
function
(
embeddedRulePrefix
)
{
this
.
embeddedRulePrefix
=
embeddedRulePrefix
===
undefined
?
""
:
embeddedRulePrefix
;
this
.
semicolonComments
=
{
token
:
"comment.line.semicolon.csound"
,
regex
:
";.*$"
};
this
.
comments
=
[
{
token
:
"punctuation.definition.comment.begin.csound"
,
regex
:
"/\\*"
,
push
:
[
{
token
:
"punctuation.definition.comment.end.csound"
,
regex
:
"\\*/"
,
next
:
"pop"
},
{
defaultToken
:
"comment.block.csound"
}
]
},
{
token
:
"comment.line.double-slash.csound"
,
regex
:
"//.*$"
},
this
.
semicolonComments
];
this
.
macroUses
=
[
{
token
:
[
"entity.name.function.preprocessor.csound"
,
"punctuation.definition.macro-parameter-value-list.begin.csound"
],
regex
:
/(\$[A-Z_a-z]\w*\.?)(\()/
,
next
:
"macro parameter value list"
},
{
token
:
"entity.name.function.preprocessor.csound"
,
regex
:
/\$[A-Z_a-z]\w*(?:\.|\b)/
}
];
this
.
numbers
=
[
{
token
:
"constant.numeric.float.csound"
,
regex
:
/(?:\d+[Ee][+-]?\d+)|(?:\d+\.\d*|\d*\.\d+)(?:[Ee][+-]?\d+)?/
},
{
token
:
[
"storage.type.number.csound"
,
"constant.numeric.integer.hexadecimal.csound"
],
regex
:
/(0[Xx])([0-9A-Fa-f]+)/
},
{
token
:
"constant.numeric.integer.decimal.csound"
,
regex
:
/\d+/
}
];
this
.
bracedStringContents
=
[
{
token
:
"constant.character.escape.csound"
,
regex
:
/\\(?:[\\abnrt"]|[0-7]{1,3})/
},
{
token
:
"constant.character.placeholder.csound"
,
regex
:
/%[#0\- +]*\d*(?:\.\d+)?[diuoxXfFeEgGaAcs]/
},
{
token
:
"constant.character.escape.csound"
,
regex
:
/%%/
}
];
this
.
quotedStringContents
=
[
this
.
macroUses
,
this
.
bracedStringContents
];
var
start
=
[
this
.
comments
,
{
token
:
"keyword.preprocessor.csound"
,
regex
:
/#(?:e(?:nd(?:if)?|lse)\b|##)|@@?[ \t]*\d+/
},
{
token
:
"keyword.preprocessor.csound"
,
regex
:
/#include/
,
push
:
[
this
.
comments
,
{
token
:
"string.csound"
,
regex
:
/([^ \t])(?:.*?\1)/
,
next
:
"pop"
}
]
},
{
token
:
"keyword.preprocessor.csound"
,
regex
:
/#includestr/
,
push
:
[
this
.
comments
,
{
token
:
"string.csound"
,
regex
:
/([^ \t])(?:.*?\1)/
,
next
:
"pop"
}
]
},
{
token
:
"keyword.preprocessor.csound"
,
regex
:
/#[ \t]*define/
,
next
:
"define directive"
},
{
token
:
"keyword.preprocessor.csound"
,
regex
:
/#(?:ifn?def|undef)\b/
,
next
:
"macro directive"
},
this
.
macroUses
];
this
.
$rules
=
{
"start"
:
start
,
"define directive"
:
[
this
.
comments
,
{
token
:
"entity.name.function.preprocessor.csound"
,
regex
:
/[A-Z_a-z]\w*/
},
{
token
:
"punctuation.definition.macro-parameter-name-list.begin.csound"
,
regex
:
/\(/
,
next
:
"macro parameter name list"
},
{
token
:
"punctuation.definition.macro.begin.csound"
,
regex
:
/#/
,
next
:
"macro body"
}
],
"macro parameter name list"
:
[
{
token
:
"variable.parameter.preprocessor.csound"
,
regex
:
/[A-Z_a-z]\w*/
},
{
token
:
"punctuation.definition.macro-parameter-name-list.end.csound"
,
regex
:
/\)/
,
next
:
"define directive"
}
],
"macro body"
:
[
{
token
:
"constant.character.escape.csound"
,
regex
:
/\\#/
},
{
token
:
"punctuation.definition.macro.end.csound"
,
regex
:
/#/
,
next
:
"start"
},
start
],
"macro directive"
:
[
this
.
comments
,
{
token
:
"entity.name.function.preprocessor.csound"
,
regex
:
/[A-Z_a-z]\w*/
,
next
:
"start"
}
],
"macro parameter value list"
:
[
{
token
:
"punctuation.definition.macro-parameter-value-list.end.csound"
,
regex
:
/\)/
,
next
:
"start"
},
{
token
:
"punctuation.definition.string.begin.csound"
,
regex
:
/"/
,
next
:
"macro parameter value quoted string"
},
this
.
pushRule
({
token
:
"punctuation.macro-parameter-value-parenthetical.begin.csound"
,
regex
:
/\(/
,
next
:
"macro parameter value parenthetical"
}),
{
token
:
"punctuation.macro-parameter-value-separator.csound"
,
regex
:
"[#']"
}
],
"macro parameter value quoted string"
:
[
{
token
:
"constant.character.escape.csound"
,
regex
:
/\\[#'()]/
},
{
token
:
"invalid.illegal.csound"
,
regex
:
/[#'()]/
},
{
token
:
"punctuation.definition.string.end.csound"
,
regex
:
/"/
,
next
:
"macro parameter value list"
},
this
.
quotedStringContents
,
{
defaultToken
:
"string.quoted.csound"
}
],
"macro parameter value parenthetical"
:
[
{
token
:
"constant.character.escape.csound"
,
regex
:
/\\\)/
},
this
.
popRule
({
token
:
"punctuation.macro-parameter-value-parenthetical.end.csound"
,
regex
:
/\)/
}),
this
.
pushRule
({
token
:
"punctuation.macro-parameter-value-parenthetical.begin.csound"
,
regex
:
/\(/
,
next
:
"macro parameter value parenthetical"
}),
start
]
};
};
oop
.
inherits
(
CsoundPreprocessorHighlightRules
,
TextHighlightRules
);
(
function
()
{
this
.
pushRule
=
function
(
params
)
{
if
(
Array
.
isArray
(
params
.
next
))
{
for
(
var
i
=
0
;
i
<
params
.
next
.
length
;
i
++
)
{
params
.
next
[
i
]
=
this
.
embeddedRulePrefix
+
params
.
next
[
i
];
}
}
return
{
regex
:
params
.
regex
,
onMatch
:
function
(
value
,
currentState
,
stack
,
line
)
{
if
(
stack
.
length
===
0
)
stack
.
push
(
currentState
);
if
(
Array
.
isArray
(
params
.
next
))
{
for
(
var
i
=
0
;
i
<
params
.
next
.
length
;
i
++
)
{
stack
.
push
(
params
.
next
[
i
]);
}
}
else
{
stack
.
push
(
params
.
next
);
}
this
.
next
=
stack
[
stack
.
length
-
1
];
return
params
.
token
;
},
get
next
()
{
return
Array
.
isArray
(
params
.
next
)
?
params
.
next
[
params
.
next
.
length
-
1
]
:
params
.
next
;
},
set
next
(
next
)
{
if
(
!
Array
.
isArray
(
params
.
next
))
{
params
.
next
=
next
;
}
},
get
token
()
{
return
params
.
token
;
}
};
};
this
.
popRule
=
function
(
params
)
{
if
(
params
.
next
)
{
params
.
next
=
this
.
embeddedRulePrefix
+
params
.
next
;
}
return
{
regex
:
params
.
regex
,
onMatch
:
function
(
value
,
currentState
,
stack
,
line
)
{
stack
.
pop
();
if
(
params
.
next
)
{
stack
.
push
(
params
.
next
);
this
.
next
=
stack
[
stack
.
length
-
1
];
}
else
{
this
.
next
=
stack
.
length
>
1
?
stack
[
stack
.
length
-
1
]
:
stack
.
pop
();
}
return
params
.
token
;
}
};
};
}).
call
(
CsoundPreprocessorHighlightRules
.
prototype
);
exports
.
CsoundPreprocessorHighlightRules
=
CsoundPreprocessorHighlightRules
;
});
ace
.
define
(
"ace/mode/csound_score_highlight_rules"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/csound_preprocessor_highlight_rules"
],
function
(
require
,
exports
,
module
){
"use strict"
;
var
oop
=
require
(
"../lib/oop"
);
var
CsoundPreprocessorHighlightRules
=
require
(
"./csound_preprocessor_highlight_rules"
).
CsoundPreprocessorHighlightRules
;
var
CsoundScoreHighlightRules
=
function
(
embeddedRulePrefix
)
{
CsoundPreprocessorHighlightRules
.
call
(
this
,
embeddedRulePrefix
);
this
.
quotedStringContents
.
push
({
token
:
"invalid.illegal.csound-score"
,
regex
:
/[^"]*$/
});
var
start
=
this
.
$rules
.
start
;
start
.
push
({
token
:
"keyword.control.csound-score"
,
regex
:
/[aBbCdefiqstvxy]/
},
{
token
:
"invalid.illegal.csound-score"
,
regex
:
/w/
},
{
token
:
"constant.numeric.language.csound-score"
,
regex
:
/z/
},
{
token
:
[
"keyword.control.csound-score"
,
"constant.numeric.integer.decimal.csound-score"
],
regex
:
/([nNpP][pP])(\d+)/
},
{
token
:
"keyword.other.csound-score"
,
regex
:
/[mn]/
,
push
:
[
{
token
:
"empty"
,
regex
:
/$/
,
next
:
"pop"
},
this
.
comments
,
{
token
:
"entity.name.label.csound-score"
,
regex
:
/[A-Z_a-z]\w*/
}
]
},
{
token
:
"keyword.preprocessor.csound-score"
,
regex
:
/r\b/
,
next
:
"repeat section"
},
this
.
numbers
,
{
token
:
"keyword.operator.csound-score"
,
regex
:
"[!+\\-*/^%&|<>#~.]"
},
this
.
pushRule
({
token
:
"punctuation.definition.string.begin.csound-score"
,
regex
:
/"/
,
next
:
"quoted string"
}),
this
.
pushRule
({
token
:
"punctuation.braced-loop.begin.csound-score"
,
regex
:
/{/
,
next
:
"loop after left brace"
}));
this
.
addRules
({
"repeat section"
:
[
{
token
:
"empty"
,
regex
:
/$/
,
next
:
"start"
},
this
.
comments
,
{
token
:
"constant.numeric.integer.decimal.csound-score"
,
regex
:
/\d+/
,
next
:
"repeat section before label"
}
],
"repeat section before label"
:
[
{
token
:
"empty"
,
regex
:
/$/
,
next
:
"start"
},
this
.
comments
,
{
token
:
"entity.name.label.csound-score"
,
regex
:
/[A-Z_a-z]\w*/
,
next
:
"start"
}
],
"quoted string"
:
[
this
.
popRule
({
token
:
"punctuation.definition.string.end.csound-score"
,
regex
:
/"/
}),
this
.
quotedStringContents
,
{
defaultToken
:
"string.quoted.csound-score"
}
],
"loop after left brace"
:
[
this
.
popRule
({
token
:
"constant.numeric.integer.decimal.csound-score"
,
regex
:
/\d+/
,
next
:
"loop after repeat count"
}),
this
.
comments
,
{
token
:
"invalid.illegal.csound"
,
regex
:
/\S.*/
}
],
"loop after repeat count"
:
[
this
.
popRule
({
token
:
"entity.name.function.preprocessor.csound-score"
,
regex
:
/[A-Z_a-z]\w*\b/
,
next
:
"loop after macro name"
}),
this
.
comments
,
{
token
:
"invalid.illegal.csound"
,
regex
:
/\S.*/
}
],
"loop after macro name"
:
[
start
,
this
.
popRule
({
token
:
"punctuation.braced-loop.end.csound-score"
,
regex
:
/}/
})
]
});
this
.
normalizeRules
();
};
oop
.
inherits
(
CsoundScoreHighlightRules
,
CsoundPreprocessorHighlightRules
);
exports
.
CsoundScoreHighlightRules
=
CsoundScoreHighlightRules
;
});
ace
.
define
(
"ace/mode/csound_score"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/text"
,
"ace/mode/csound_score_highlight_rules"
],
function
(
require
,
exports
,
module
){
"use strict"
;
var
oop
=
require
(
"../lib/oop"
);
var
TextMode
=
require
(
"./text"
).
Mode
;
var
CsoundScoreHighlightRules
=
require
(
"./csound_score_highlight_rules"
).
CsoundScoreHighlightRules
;
var
Mode
=
function
()
{
this
.
HighlightRules
=
CsoundScoreHighlightRules
;
};
oop
.
inherits
(
Mode
,
TextMode
);
(
function
()
{
this
.
lineCommentStart
=
";"
;
this
.
blockComment
=
{
start
:
"/*"
,
end
:
"*/"
};
this
.
$id
=
"ace/mode/csound_score"
;
}).
call
(
Mode
.
prototype
);
exports
.
Mode
=
Mode
;
});
(
function
()
{
ace
.
require
([
"ace/mode/csound_score"
],
function
(
m
)
{
if
(
typeof
module
==
"object"
&&
typeof
exports
==
"object"
&&
module
)
{
module
.
exports
=
m
;
}
});
})();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Aug 19, 11:58 (3 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
a7/f1/3ac75716de0b6eebb44d4b81a1c7
Default Alt Text
mode-csound_score.js (13 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment