UNPKG

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