-
-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathoz.js
38 lines (37 loc) · 1.14 KB
/
oz.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
31
32
33
34
35
36
37
38
// @ts-nocheck
oz.displayName = 'oz'
oz.aliases = []
/** @type {import('../core.js').Syntax} */
export default function oz(Prism) {
Prism.languages.oz = {
comment: {
pattern: /\/\*[\s\S]*?\*\/|%.*/,
greedy: true
},
string: {
pattern: /"(?:[^"\\]|\\[\s\S])*"/,
greedy: true
},
atom: {
pattern: /'(?:[^'\\]|\\[\s\S])*'/,
greedy: true,
alias: 'builtin'
},
keyword:
/\$|\[\]|\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,
function: [
/\b[a-z][A-Za-z\d]*(?=\()/,
{
pattern: /(\{)[A-Z][A-Za-z\d]*\b/,
lookbehind: true
}
],
number:
/\b(?:0[bx][\da-f]+|\d+(?:\.\d*)?(?:e~?\d+)?)\b|&(?:[^\\]|\\(?:\d{3}|.))/i,
variable: /`(?:[^`\\]|\\.)+`/,
'attr-name': /\b\w+(?=[ \t]*:(?![:=]))/,
operator:
/:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,
punctuation: /[\[\](){}.:;?]/
}
}