-
-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathicon.js
30 lines (29 loc) · 1.19 KB
/
icon.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// @ts-nocheck
icon.displayName = 'icon'
icon.aliases = []
/** @type {import('../core.js').Syntax} */
export default function icon(Prism) {
Prism.languages.icon = {
comment: /#.*/,
string: {
pattern: /(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,
greedy: true
},
number: /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,
'builtin-keyword': {
pattern:
/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,
alias: 'variable'
},
directive: {
pattern: /\$\w+/,
alias: 'builtin'
},
keyword:
/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,
function: /\b(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,
operator:
/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,
punctuation: /[\[\](){},;]/
}
}