/ src / theme / languages / erlang-repl.js
erlang-repl.js
 1  /*! `erlang-repl` grammar compiled for Highlight.js 11.10.0 */
 2    (function(){
 3      var hljsGrammar = (function () {
 4    'use strict';
 5  
 6    /*
 7    Language: Erlang REPL
 8    Author: Sergey Ignatov <sergey@ignatov.spb.su>
 9    Website: https://www.erlang.org
10    Category: functional
11    */
12  
13    /** @type LanguageFn */
14    function erlangRepl(hljs) {
15      const regex = hljs.regex;
16      return {
17        name: 'Erlang REPL',
18        keywords: {
19          built_in:
20            'spawn spawn_link self',
21          keyword:
22            'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if '
23            + 'let not of or orelse|10 query receive rem try when xor'
24        },
25        contains: [
26          {
27            className: 'meta.prompt',
28            begin: '^[0-9]+> ',
29            relevance: 10
30          },
31          hljs.COMMENT('%', '$'),
32          {
33            className: 'number',
34            begin: '\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)',
35            relevance: 0
36          },
37          hljs.APOS_STRING_MODE,
38          hljs.QUOTE_STRING_MODE,
39          { begin: regex.concat(
40            /\?(::)?/,
41            /([A-Z]\w*)/, // at least one identifier
42            /((::)[A-Z]\w*)*/ // perhaps more
43          ) },
44          { begin: '->' },
45          { begin: 'ok' },
46          { begin: '!' },
47          {
48            begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
49            relevance: 0
50          },
51          {
52            begin: '[A-Z][a-zA-Z0-9_\']*',
53            relevance: 0
54          }
55        ]
56      };
57    }
58  
59    return erlangRepl;
60  
61  })();
62  
63      hljs.registerLanguage('erlang-repl', hljsGrammar);
64    })();