Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/embedded/thrift.xml @ 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 |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 <lexer> | |
2 <config> | |
3 <name>Thrift</name> | |
4 <alias>thrift</alias> | |
5 <filename>*.thrift</filename> | |
6 <mime_type>application/x-thrift</mime_type> | |
7 </config> | |
8 <rules> | |
9 <state name="class"> | |
10 <rule pattern="[a-zA-Z_]\w*"> | |
11 <token type="NameClass"/> | |
12 <pop depth="1"/> | |
13 </rule> | |
14 <rule> | |
15 <pop depth="1"/> | |
16 </rule> | |
17 </state> | |
18 <state name="keywords"> | |
19 <rule pattern="(async|oneway|extends|throws|required|optional)\b"> | |
20 <token type="Keyword"/> | |
21 </rule> | |
22 <rule pattern="(true|false)\b"> | |
23 <token type="KeywordConstant"/> | |
24 </rule> | |
25 <rule pattern="(const|typedef)\b"> | |
26 <token type="KeywordDeclaration"/> | |
27 </rule> | |
28 <rule pattern="(smalltalk_category|smalltalk_prefix|delphi_namespace|csharp_namespace|ruby_namespace|xsd_namespace|cpp_namespace|php_namespace|xsd_nillable|xsd_optional|java_package|cocoa_prefix|perl_package|cpp_include|py_module|xsd_attrs|cpp_type|xsd_all|include)\b"> | |
29 <token type="KeywordNamespace"/> | |
30 </rule> | |
31 <rule pattern="(double|binary|string|slist|senum|bool|void|byte|list|i64|map|set|i32|i16)\b"> | |
32 <token type="KeywordType"/> | |
33 </rule> | |
34 <rule pattern="\b(__NAMESPACE__|synchronized|__FUNCTION__|__METHOD__|endforeach|implements|enddeclare|instanceof|transient|endswitch|protected|interface|__CLASS__|continue|__FILE__|abstract|function|endwhile|unsigned|register|volatile|__LINE__|declare|foreach|default|__DIR__|private|finally|dynamic|virtual|lambda|elseif|inline|switch|unless|endfor|delete|import|return|module|ensure|native|rescue|assert|sizeof|static|global|except|public|float|BEGIN|super|endif|yield|elsif|throw|clone|class|catch|until|break|retry|begin|raise|alias|while|print|undef|exec|with|when|case|redo|args|elif|this|then|self|goto|else|pass|next|var|for|xor|END|not|try|del|and|def|new|use|nil|end|if|do|is|or|in|as)\b"> | |
35 <token type="KeywordReserved"/> | |
36 </rule> | |
37 </state> | |
38 <state name="numbers"> | |
39 <rule pattern="[+-]?(\d+\.\d+([eE][+-]?\d+)?|\.?\d+[eE][+-]?\d+)"> | |
40 <token type="LiteralNumberFloat"/> | |
41 </rule> | |
42 <rule pattern="[+-]?0x[0-9A-Fa-f]+"> | |
43 <token type="LiteralNumberHex"/> | |
44 </rule> | |
45 <rule pattern="[+-]?[0-9]+"> | |
46 <token type="LiteralNumberInteger"/> | |
47 </rule> | |
48 </state> | |
49 <state name="root"> | |
50 <rule> | |
51 <include state="whitespace"/> | |
52 </rule> | |
53 <rule> | |
54 <include state="comments"/> | |
55 </rule> | |
56 <rule pattern="""> | |
57 <token type="LiteralStringDouble"/> | |
58 <combined state="stringescape" state="dqs"/> | |
59 </rule> | |
60 <rule pattern="\'"> | |
61 <token type="LiteralStringSingle"/> | |
62 <combined state="stringescape" state="sqs"/> | |
63 </rule> | |
64 <rule pattern="(namespace)(\s+)"> | |
65 <bygroups> | |
66 <token type="KeywordNamespace"/> | |
67 <token type="TextWhitespace"/> | |
68 </bygroups> | |
69 <push state="namespace"/> | |
70 </rule> | |
71 <rule pattern="(enum|union|struct|service|exception)(\s+)"> | |
72 <bygroups> | |
73 <token type="KeywordDeclaration"/> | |
74 <token type="TextWhitespace"/> | |
75 </bygroups> | |
76 <push state="class"/> | |
77 </rule> | |
78 <rule pattern="((?:(?:[^\W\d]|\$)[\w.\[\]$<>]*\s+)+?)((?:[^\W\d]|\$)[\w$]*)(\s*)(\()"> | |
79 <bygroups> | |
80 <usingself state="root"/> | |
81 <token type="NameFunction"/> | |
82 <token type="Text"/> | |
83 <token type="Operator"/> | |
84 </bygroups> | |
85 </rule> | |
86 <rule> | |
87 <include state="keywords"/> | |
88 </rule> | |
89 <rule> | |
90 <include state="numbers"/> | |
91 </rule> | |
92 <rule pattern="[&=]"> | |
93 <token type="Operator"/> | |
94 </rule> | |
95 <rule pattern="[:;,{}()<>\[\]]"> | |
96 <token type="Punctuation"/> | |
97 </rule> | |
98 <rule pattern="[a-zA-Z_](\.\w|\w)*"> | |
99 <token type="Name"/> | |
100 </rule> | |
101 </state> | |
102 <state name="dqs"> | |
103 <rule pattern="""> | |
104 <token type="LiteralStringDouble"/> | |
105 <pop depth="1"/> | |
106 </rule> | |
107 <rule pattern="[^\\"\n]+"> | |
108 <token type="LiteralStringDouble"/> | |
109 </rule> | |
110 </state> | |
111 <state name="namespace"> | |
112 <rule pattern="[a-z*](\.\w|\w)*"> | |
113 <token type="NameNamespace"/> | |
114 <pop depth="1"/> | |
115 </rule> | |
116 <rule> | |
117 <pop depth="1"/> | |
118 </rule> | |
119 </state> | |
120 <state name="whitespace"> | |
121 <rule pattern="\n"> | |
122 <token type="TextWhitespace"/> | |
123 </rule> | |
124 <rule pattern="\s+"> | |
125 <token type="TextWhitespace"/> | |
126 </rule> | |
127 </state> | |
128 <state name="comments"> | |
129 <rule pattern="#.*$"> | |
130 <token type="Comment"/> | |
131 </rule> | |
132 <rule pattern="//.*?\n"> | |
133 <token type="Comment"/> | |
134 </rule> | |
135 <rule pattern="/\*[\w\W]*?\*/"> | |
136 <token type="CommentMultiline"/> | |
137 </rule> | |
138 </state> | |
139 <state name="stringescape"> | |
140 <rule pattern="\\([\\nrt"\'])"> | |
141 <token type="LiteralStringEscape"/> | |
142 </rule> | |
143 </state> | |
144 <state name="sqs"> | |
145 <rule pattern="'"> | |
146 <token type="LiteralStringSingle"/> | |
147 <pop depth="1"/> | |
148 </rule> | |
149 <rule pattern="[^\\\'\n]+"> | |
150 <token type="LiteralStringSingle"/> | |
151 </rule> | |
152 </state> | |
153 </rules> | |
154 </lexer> |