annotate vendor/github.com/alecthomas/chroma/v2/lexers/chapel.go @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 package lexers
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 . "github.com/alecthomas/chroma/v2" // nolint
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 // Chapel lexer.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 var Chapel = Register(MustNewLexer(
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 &Config{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 Name: "Chapel",
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11 Aliases: []string{"chapel", "chpl"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 Filenames: []string{"*.chpl"},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 MimeTypes: []string{},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 func() Rules {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 return Rules{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 "root": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 {`\n`, TextWhitespace, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 {`\s+`, TextWhitespace, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 {`\\\n`, Text, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 {`//(.*?)\n`, CommentSingle, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 {`/(\\\n)?[*](.|\n)*?[*](\\\n)?/`, CommentMultiline, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 {Words(``, `\b`, `config`, `const`, `in`, `inout`, `out`, `param`, `ref`, `type`, `var`), KeywordDeclaration, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 {Words(``, `\b`, `false`, `nil`, `none`, `true`), KeywordConstant, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 {Words(``, `\b`, `bool`, `bytes`, `complex`, `imag`, `int`, `locale`, `nothing`, `opaque`, `range`, `real`, `string`, `uint`, `void`), KeywordType, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 {Words(``, `\b`, `atomic`, `single`, `sync`, `borrowed`, `owned`, `shared`, `unmanaged`, `align`, `as`, `begin`, `break`, `by`, `catch`, `cobegin`, `coforall`, `continue`, `defer`, `delete`, `dmapped`, `do`, `domain`, `else`, `enum`, `except`, `export`, `extern`, `for`, `forall`, `foreach`, `forwarding`, `if`, `implements`, `import`, `index`, `init`, `inline`, `label`, `lambda`, `let`, `lifetime`, `local`, `new`, `noinit`, `on`, `only`, `otherwise`, `override`, `pragma`, `primitive`, `private`, `prototype`, `public`, `reduce`, `require`, `return`, `scan`, `select`, `serial`, `sparse`, `subdomain`, `then`, `this`, `throw`, `throws`, `try`, `use`, `when`, `where`, `while`, `with`, `yield`, `zip`), Keyword, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 {`(iter)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("procname")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 {`(proc)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("procname")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 {`(operator)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("procname")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 {`(class|interface|module|record|union)(\s+)`, ByGroups(Keyword, TextWhitespace), Push("classname")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 {`\d+i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 {`\d+\.\d*([Ee][-+]\d+)?i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 {`\.\d+([Ee][-+]\d+)?i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34 {`\d+[Ee][-+]\d+i`, LiteralNumber, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 {`(\d*\.\d+)([eE][+-]?[0-9]+)?i?`, LiteralNumberFloat, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 {`\d+[eE][+-]?[0-9]+i?`, LiteralNumberFloat, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 {`0[bB][01]+`, LiteralNumberBin, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 {`0[xX][0-9a-fA-F]+`, LiteralNumberHex, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 {`0[oO][0-7]+`, LiteralNumberOct, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 {`[0-9]+`, LiteralNumberInteger, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 {`"(\\\\|\\"|[^"])*"`, LiteralString, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 {`'(\\\\|\\'|[^'])*'`, LiteralString, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 {`(=|\+=|-=|\*=|/=|\*\*=|%=|&=|\|=|\^=|&&=|\|\|=|<<=|>>=|<=>|<~>|\.\.|by|#|\.\.\.|&&|\|\||!|&|\||\^|~|<<|>>|==|!=|<=|>=|<|>|[+\-*/%]|\*\*)`, Operator, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
44 {`[:;,.?()\[\]{}]`, Punctuation, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
45 {`[a-zA-Z_][\w$]*`, NameOther, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
46 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
47 "classname": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
48 {`[a-zA-Z_][\w$]*`, NameClass, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
49 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
50 "procname": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
51 {`([a-zA-Z_][.\w$]*|\~[a-zA-Z_][.\w$]*|[+*/!~%<>=&^|\-:]{1,2})`, NameFunction, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
52 {`\(`, Punctuation, Push("receivertype")},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
53 {`\)+\.`, Punctuation, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
54 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
55 "receivertype": {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
56 {Words(``, `\b`, `atomic`, `single`, `sync`, `borrowed`, `owned`, `shared`, `unmanaged`), Keyword, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
57 {Words(``, `\b`, `bool`, `bytes`, `complex`, `imag`, `int`, `locale`, `nothing`, `opaque`, `range`, `real`, `string`, `uint`, `void`), KeywordType, nil},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
58 {`[^()]*`, NameOther, Pop(1)},
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
59 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
60 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
61 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
62 ))