Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4096806
mode-eiffel.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
mode-eiffel.js
View Options
ace
.
define
(
"ace/mode/eiffel_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
EiffelHighlightRules
=
function
()
{
var
keywords
=
"across|agent|alias|all|attached|as|assign|attribute|check|"
+
"class|convert|create|debug|deferred|detachable|do|else|elseif|end|"
+
"ensure|expanded|export|external|feature|from|frozen|if|inherit|"
+
"inspect|invariant|like|local|loop|not|note|obsolete|old|once|"
+
"Precursor|redefine|rename|require|rescue|retry|select|separate|"
+
"some|then|undefine|until|variant|when"
;
var
operatorKeywords
=
"and|implies|or|xor"
;
var
languageConstants
=
"Void"
;
var
booleanConstants
=
"True|False"
;
var
languageVariables
=
"Current|Result"
;
var
keywordMapper
=
this
.
createKeywordMapper
({
"constant.language"
:
languageConstants
,
"constant.language.boolean"
:
booleanConstants
,
"variable.language"
:
languageVariables
,
"keyword.operator"
:
operatorKeywords
,
"keyword"
:
keywords
},
"identifier"
,
true
);
var
simpleString
=
/(?:[^"%\b\f\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)+?/
;
this
.
$rules
=
{
"start"
:
[{
token
:
"string.quoted.other"
,
// Aligned-verbatim-strings (verbatim option not supported)
regex
:
/"\[/
,
next
:
"aligned_verbatim_string"
},
{
token
:
"string.quoted.other"
,
// Non-aligned-verbatim-strings (verbatim option not supported)
regex
:
/"\{/
,
next
:
"non-aligned_verbatim_string"
},
{
token
:
"string.quoted.double"
,
regex
:
/"(?:[^%\b\f\n\r\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)*?"/
},
{
token
:
"comment.line.double-dash"
,
regex
:
/--.*/
},
{
token
:
"constant.character"
,
regex
:
/'(?:[^%\b\f\n\r\t\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)'/
},
{
token
:
"constant.numeric"
,
// hexa | octal | bin
regex
:
/\b0(?:[xX][\da-fA-F](?:_*[\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\b/
},
{
token
:
"constant.numeric"
,
regex
:
/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/
},
{
token
:
"paren.lparen"
,
regex
:
/[\[({]|<<|\|\(/
},
{
token
:
"paren.rparen"
,
regex
:
/[\])}]|>>|\|\)/
},
{
token
:
"keyword.operator"
,
// punctuation
regex
:
/:=|->|\.(?=\w)|[;,:?]/
},
{
token
:
"keyword.operator"
,
regex
:
/\\\\|\|\.\.\||\.\.|\/[~\/]?|[><\/]=?|[-+*^=~]/
},
{
token
:
function
(
v
)
{
var
result
=
keywordMapper
(
v
);
if
(
result
===
"identifier"
&&
v
===
v
.
toUpperCase
())
{
result
=
"entity.name.type"
;
}
return
result
;
},
regex
:
/[a-zA-Z][a-zA-Z\d_]*\b/
},
{
token
:
"text"
,
regex
:
/\s+/
}
],
"aligned_verbatim_string"
:
[{
token
:
"string"
,
regex
:
/]"/
,
next
:
"start"
},
{
token
:
"string"
,
regex
:
simpleString
}
],
"non-aligned_verbatim_string"
:
[{
token
:
"string.quoted.other"
,
regex
:
/}"/
,
next
:
"start"
},
{
token
:
"string.quoted.other"
,
regex
:
simpleString
}
]
};
};
oop
.
inherits
(
EiffelHighlightRules
,
TextHighlightRules
);
exports
.
EiffelHighlightRules
=
EiffelHighlightRules
;
});
ace
.
define
(
"ace/mode/eiffel"
,[
"require"
,
"exports"
,
"module"
,
"ace/lib/oop"
,
"ace/mode/text"
,
"ace/mode/eiffel_highlight_rules"
],
function
(
require
,
exports
,
module
){
"use strict"
;
var
oop
=
require
(
"../lib/oop"
);
var
TextMode
=
require
(
"./text"
).
Mode
;
var
EiffelHighlightRules
=
require
(
"./eiffel_highlight_rules"
).
EiffelHighlightRules
;
var
Mode
=
function
()
{
this
.
HighlightRules
=
EiffelHighlightRules
;
this
.
$behaviour
=
this
.
$defaultBehaviour
;
};
oop
.
inherits
(
Mode
,
TextMode
);
(
function
()
{
this
.
lineCommentStart
=
"--"
;
this
.
$id
=
"ace/mode/eiffel"
;
}).
call
(
Mode
.
prototype
);
exports
.
Mode
=
Mode
;
});
(
function
()
{
ace
.
require
([
"ace/mode/eiffel"
],
function
(
m
)
{
if
(
typeof
module
==
"object"
&&
typeof
exports
==
"object"
&&
module
)
{
module
.
exports
=
m
;
}
});
})();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Aug 18, 14:31 (3 w, 6 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
3b/f1/2b2c03139cbd91136d8a167532a4
Default Alt Text
mode-eiffel.js (5 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment