1 | /*
|
2 | Language: Clean
|
3 | Author: Camil Staps <info@camilstaps.nl>
|
4 | Category: functional
|
5 | Website: http://clean.cs.ru.nl
|
6 | */
|
7 |
|
8 | /** @type LanguageFn */
|
9 | function clean(hljs) {
|
10 | const KEYWORDS = [
|
11 | "if",
|
12 | "let",
|
13 | "in",
|
14 | "with",
|
15 | "where",
|
16 | "case",
|
17 | "of",
|
18 | "class",
|
19 | "instance",
|
20 | "otherwise",
|
21 | "implementation",
|
22 | "definition",
|
23 | "system",
|
24 | "module",
|
25 | "from",
|
26 | "import",
|
27 | "qualified",
|
28 | "as",
|
29 | "special",
|
30 | "code",
|
31 | "inline",
|
32 | "foreign",
|
33 | "export",
|
34 | "ccall",
|
35 | "stdcall",
|
36 | "generic",
|
37 | "derive",
|
38 | "infix",
|
39 | "infixl",
|
40 | "infixr"
|
41 | ];
|
42 | return {
|
43 | name: 'Clean',
|
44 | aliases: [
|
45 | 'icl',
|
46 | 'dcl'
|
47 | ],
|
48 | keywords: {
|
49 | keyword: KEYWORDS,
|
50 | built_in:
|
51 | 'Int Real Char Bool',
|
52 | literal:
|
53 | 'True False'
|
54 | },
|
55 | contains: [
|
56 | hljs.C_LINE_COMMENT_MODE,
|
57 | hljs.C_BLOCK_COMMENT_MODE,
|
58 | hljs.APOS_STRING_MODE,
|
59 | hljs.QUOTE_STRING_MODE,
|
60 | hljs.C_NUMBER_MODE,
|
61 | { // relevance booster
|
62 | begin: '->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>'
|
63 | }
|
64 | ]
|
65 | };
|
66 | }
|
67 |
|
68 | export { clean as default };
|