]> luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/brainfuck.js
Initial commit.
[flow-web.git] / static / highlight / es / languages / brainfuck.js
1 /*! `brainfuck` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar = (function () {
3 'use strict';
4
5 /*
6 Language: Brainfuck
7 Author: Evgeny Stepanischev <imbolk@gmail.com>
8 Website: https://esolangs.org/wiki/Brainfuck
9 */
10
11 /** @type LanguageFn */
12 function brainfuck(hljs) {
13 const LITERAL = {
14 className: 'literal',
15 begin: /[+-]+/,
16 relevance: 0
17 };
18 return {
19 name: 'Brainfuck',
20 aliases: [ 'bf' ],
21 contains: [
22 hljs.COMMENT(
23 /[^\[\]\.,\+\-<> \r\n]/,
24 /[\[\]\.,\+\-<> \r\n]/,
25 {
26 contains: [
27 {
28 match: /[ ]+[^\[\]\.,\+\-<> \r\n]/,
29 relevance: 0
30 }
31 ],
32 returnEnd: true,
33 relevance: 0
34 }
35 ),
36 {
37 className: 'title',
38 begin: '[\\[\\]]',
39 relevance: 0
40 },
41 {
42 className: 'string',
43 begin: '[\\.,]',
44 relevance: 0
45 },
46 {
47 // this mode works as the only relevance counter
48 // it looks ahead to find the start of a run of literals
49 // so only the runs are counted as relevant
50 begin: /(?=\+\+|--)/,
51 contains: [ LITERAL ]
52 },
53 LITERAL
54 ]
55 };
56 }
57
58 return brainfuck;
59
60 })();
61 ;
62 export default hljsGrammar;