reprism
Version:
Modular Syntax highlighting for the web
35 lines (34 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = {
language: 'j',
init: function init(Prism) {
Prism.languages.j = {
comment: /\bNB\..*/,
string: {
pattern: /'(?:''|[^'\r\n])*'/,
greedy: true
},
keyword: /\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|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+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,
adverb: {
pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,
alias: 'builtin'
},
operator: /[=a][.:]|_\./,
conjunction: {
pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,
alias: 'variable'
},
punctuation: /[()]/
};
}
};