You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
875 B
46 lines
875 B
/* |
|
Language: Brainfuck |
|
Author: Evgeny Stepanischev <imbolk@gmail.com> |
|
Website: https://esolangs.org/wiki/Brainfuck |
|
*/ |
|
|
|
/** @type LanguageFn */ |
|
function brainfuck(hljs) { |
|
const LITERAL = { |
|
className: 'literal', |
|
begin: /[+-]/, |
|
relevance: 0 |
|
}; |
|
return { |
|
name: 'Brainfuck', |
|
aliases: ['bf'], |
|
contains: [ |
|
hljs.COMMENT( |
|
'[^\\[\\]\\.,\\+\\-<> \r\n]', |
|
'[\\[\\]\\.,\\+\\-<> \r\n]', |
|
{ |
|
returnEnd: true, |
|
relevance: 0 |
|
} |
|
), |
|
{ |
|
className: 'title', |
|
begin: '[\\[\\]]', |
|
relevance: 0 |
|
}, |
|
{ |
|
className: 'string', |
|
begin: '[\\.,]', |
|
relevance: 0 |
|
}, |
|
{ |
|
// this mode works as the only relevance counter |
|
begin: /(?:\+\+|--)/, |
|
contains: [LITERAL] |
|
}, |
|
LITERAL |
|
] |
|
}; |
|
} |
|
|
|
module.exports = brainfuck;
|
|
|