1package j
2
3import (
4 . "github.com/alecthomas/chroma" // nolint
5 "github.com/alecthomas/chroma/lexers/internal"
6)
7
8var Jungle = internal.Register(MustNewLexer(
9 &Config{
10 Name: "Jungle",
11 Aliases: []string{"jungle"},
12 Filenames: []string{"*.jungle"},
13 MimeTypes: []string{"text/x-jungle"},
14 },
15 Rules{
16 "root": {
17 {`[^\S\n]+`, Text, nil},
18 {`\n`, Text, nil},
19 {`#(\n|[\w\W]*?[^#]\n)`, CommentSingle, nil},
20 {`^(?=\S)`, None, Push("instruction")},
21 {`[\.;\[\]\(\)\$]`, Punctuation, nil},
22 {`[a-zA-Z_]\w*`, Name, nil},
23 },
24 "instruction": {
25 {`[^\S\n]+`, Text, nil},
26 {`=`, Operator, Push("value")},
27 {`(?=\S)`, None, Push("var")},
28 Default(Pop(1)),
29 },
30 "value": {
31 {`[^\S\n]+`, Text, nil},
32 {`\$\(`, Punctuation, Push("var")},
33 {`[;\[\]\(\)\$]`, Punctuation, nil},
34 {`#(\n|[\w\W]*?[^#]\n)`, CommentSingle, nil},
35 {`[\w_\-\.\/\\]+`, Text, nil},
36 Default(Pop(1)),
37 },
38 "var": {
39 {`[^\S\n]+`, Text, nil},
40 {`\b(((re)?source|barrel)Path|excludeAnnotations|annotations|lang)\b`, NameBuiltin, nil},
41 {`\bbase\b`, NameConstant, nil},
42 {`\b(ind|zsm|hrv|ces|dan|dut|eng|fin|fre|deu|gre|hun|ita|nob|po[lr]|rus|sl[ov]|spa|swe|ara|heb|zh[st]|jpn|kor|tha|vie|bul|tur)`, NameConstant, nil},
43 {`\b((semi)?round|rectangle)(-\d+x\d+)?\b`, NameConstant, nil},
44 {`[\.;\[\]\(\$]`, Punctuation, nil},
45 {`\)`, Punctuation, Pop(1)},
46 {`[a-zA-Z_]\w*`, Name, nil},
47 Default(Pop(1)),
48 },
49 },
50))