-
-
Notifications
You must be signed in to change notification settings - Fork 36
/
j.js
38 lines (37 loc) · 1.2 KB
/
j.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
j.displayName = 'j'
j.aliases = []
/** @type {import('../core.js').Syntax} */
export default function j(Prism) {
Prism.languages.j = {
comment: {
pattern: /\bNB\..*/,
greedy: true
},
string: {
pattern: /'(?:''|[^'\r\n])*'/,
greedy: true
},
keyword:
/\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,
verb: {
// Negative look-ahead prevents bad highlighting
// of ^: ;. =. =: !. !:
pattern:
/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,
alias: 'keyword'
},
number:
/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,
adverb: {
pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,
alias: 'builtin'
},
operator: /[=a][.:]|_\./,
conjunction: {
pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,
alias: 'variable'
},
punctuation: /[()]/
}
}