]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/d.xml
8b8e710618731a6dd8151db83cf14925c8f9d7d1
[factor.git] / basis / xmode / modes / d.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <MODE>\r
6     <PROPS>\r
7         <PROPERTY NAME="commentStart" VALUE="/*" />\r
8         <PROPERTY NAME="commentEnd" VALUE="*/" />\r
9         <PROPERTY NAME="lineComment" VALUE="//" />\r
10         <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />\r
11 \r
12         <!-- Auto indent -->\r
13         <PROPERTY NAME="indentOpenBrackets" VALUE="{" />\r
14         <PROPERTY NAME="indentCloseBrackets" VALUE="}" />\r
15         <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />\r
16         <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />\r
17         <PROPERTY NAME="indentNextLine"\r
18                 VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />\r
19         <PROPERTY NAME="unindentThisLine"\r
20                 VALUE="^.*(default:\s*|case.*:.*)$" />\r
21         <PROPERTY NAME="electricKeys" VALUE=":" />\r
22     </PROPS>\r
23 \r
24     <RULES ESCAPE="\"\r
25         IGNORE_CASE="FALSE"\r
26         HIGHLIGHT_DIGITS="TRUE"\r
27         DIGIT_RE="(0x[0-9a-fA-F_]+[uUlL]?|[0-9_]+(e[0-9_]*)?[uUlLdDfF]?)">\r
28 \r
29         <!-- Silly comment -->\r
30         <SEQ TYPE="COMMENT1">/**/</SEQ>\r
31 \r
32         <!-- Doxygen comment, Javadoc style -->\r
33         <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">\r
34             <BEGIN>/**</BEGIN>\r
35             <END>*/</END>\r
36         </SPAN>\r
37 \r
38         <!-- Doxygen comment, Qt style -->\r
39         <SPAN TYPE="COMMENT3" DELEGATE="doxygen::DOXYGEN">\r
40             <BEGIN>/*!</BEGIN>\r
41             <END>*/</END>\r
42         </SPAN>\r
43 \r
44         <!-- C style comment -->\r
45         <SPAN TYPE="COMMENT1">\r
46             <BEGIN>/*</BEGIN>\r
47             <END>*/</END>\r
48         </SPAN>\r
49 \r
50         <!-- Nested comment -->\r
51         <SPAN TYPE="COMMENT1" DELEGATE="NESTED_COMMENT">\r
52             <BEGIN>/+</BEGIN>\r
53             <END>+/</END>\r
54         </SPAN>\r
55 \r
56         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>\r
57 \r
58         <!-- Wysiwyg string literal -->\r
59         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" NO_ESCAPE="TRUE">\r
60             <BEGIN>r"</BEGIN>\r
61             <END>"</END>\r
62         </SPAN>\r
63         <!-- Alternate Wysiwyg string literal -->\r
64         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" NO_ESCAPE="TRUE">\r
65             <BEGIN>`</BEGIN>\r
66             <END>`</END>\r
67         </SPAN>\r
68         <!-- Doublequoted string literal -->\r
69         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
70             <BEGIN>"</BEGIN>\r
71             <END>"</END>\r
72         </SPAN>\r
73         <!-- Hex string literal -->\r
74         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
75             <BEGIN>x"</BEGIN>\r
76             <END>"</END>\r
77         </SPAN>\r
78         <!-- Character literal -->\r
79         <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
80             <BEGIN>'</BEGIN>\r
81             <END>'</END>\r
82         </SPAN>\r
83 \r
84         <SEQ TYPE="OPERATOR">=</SEQ>\r
85         <SEQ TYPE="OPERATOR">!</SEQ>\r
86         <SEQ TYPE="OPERATOR">&gt;=</SEQ>\r
87         <SEQ TYPE="OPERATOR">&lt;=</SEQ>\r
88         <SEQ TYPE="OPERATOR">+</SEQ>\r
89         <SEQ TYPE="OPERATOR">-</SEQ>\r
90         <SEQ TYPE="OPERATOR">/</SEQ>\r
91 \r
92         <SEQ TYPE="OPERATOR">*</SEQ>\r
93         <SEQ TYPE="OPERATOR">&gt;</SEQ>\r
94         <SEQ TYPE="OPERATOR">&lt;</SEQ>\r
95         <SEQ TYPE="OPERATOR">%</SEQ>\r
96         <SEQ TYPE="OPERATOR">&amp;</SEQ>\r
97         <SEQ TYPE="OPERATOR">|</SEQ>\r
98         <SEQ TYPE="OPERATOR">^</SEQ>\r
99         <SEQ TYPE="OPERATOR">~</SEQ>\r
100         <SEQ TYPE="OPERATOR">}</SEQ>\r
101         <SEQ TYPE="OPERATOR">{</SEQ>\r
102 \r
103         <MARK_PREVIOUS TYPE="LABEL" MATCH_TYPE="OPERATOR"\r
104             AT_WHITESPACE_END="TRUE">:</MARK_PREVIOUS>\r
105 \r
106         <!-- Function calls -->\r
107         <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>\r
108                 <SEQ TYPE="OPERATOR">)</SEQ>\r
109 \r
110         <!-- Annotation types -->\r
111         <MARK_FOLLOWING TYPE="KEYWORD4">@</MARK_FOLLOWING>\r
112 \r
113         <KEYWORDS>\r
114             <KEYWORD1>abstract</KEYWORD1>\r
115             <KEYWORD3>alias</KEYWORD3>\r
116             <KEYWORD4>align</KEYWORD4>\r
117             <KEYWORD2>asm</KEYWORD2>\r
118             <KEYWORD2>assert</KEYWORD2>\r
119             <KEYWORD3>auto</KEYWORD3>\r
120             <KEYWORD3>bit</KEYWORD3>\r
121             <KEYWORD4>body</KEYWORD4>\r
122             <KEYWORD1>break</KEYWORD1>\r
123             <KEYWORD3>byte</KEYWORD3>\r
124             <KEYWORD1>case</KEYWORD1>\r
125             <KEYWORD3>cast</KEYWORD3>\r
126             <KEYWORD1>catch</KEYWORD1>\r
127             <KEYWORD3>cent</KEYWORD3>\r
128             <KEYWORD3>char</KEYWORD3>\r
129             <KEYWORD3>class</KEYWORD3>\r
130             <KEYWORD3>cfloat</KEYWORD3>\r
131             <KEYWORD3>cdouble</KEYWORD3>\r
132             <KEYWORD3>creal</KEYWORD3>\r
133             <INVALID>const</INVALID>\r
134             <KEYWORD1>continue</KEYWORD1>\r
135             <KEYWORD3>dchar</KEYWORD3>\r
136             <KEYWORD2>debug</KEYWORD2>\r
137             <KEYWORD1>default</KEYWORD1>\r
138             <KEYWORD4>delegate</KEYWORD4>\r
139             <KEYWORD1>delete</KEYWORD1>\r
140             <KEYWORD2>deprecated</KEYWORD2>\r
141             <KEYWORD1>do</KEYWORD1>\r
142             <KEYWORD3>double</KEYWORD3>\r
143             <KEYWORD1>else</KEYWORD1>\r
144             <KEYWORD3>enum</KEYWORD3>\r
145             <KEYWORD2>export</KEYWORD2>\r
146             <KEYWORD2>extern</KEYWORD2>\r
147             <LITERAL2>false</LITERAL2>\r
148             <KEYWORD1>final</KEYWORD1>\r
149             <KEYWORD1>finally</KEYWORD1>\r
150             <KEYWORD3>float</KEYWORD3>\r
151             <KEYWORD1>for</KEYWORD1>\r
152             <KEYWORD1>foreach</KEYWORD1>\r
153             <KEYWORD4>function</KEYWORD4>\r
154             <INVALID>goto</INVALID>\r
155             <KEYWORD3>idouble</KEYWORD3>\r
156             <KEYWORD1>if</KEYWORD1>\r
157             <KEYWORD3>ifloat</KEYWORD3>\r
158             <KEYWORD2>import</KEYWORD2>\r
159             <INVALID>in</INVALID>\r
160             <INVALID>inout</INVALID>\r
161             <KEYWORD3>int</KEYWORD3>\r
162             <KEYWORD2>interface</KEYWORD2>\r
163             <KEYWORD2>invariant</KEYWORD2>\r
164             <KEYWORD3>ireal</KEYWORD3>\r
165             <OPERATOR>is</OPERATOR>\r
166             <KEYWORD3>long</KEYWORD3>\r
167             <KEYWORD4>module</KEYWORD4>\r
168             <KEYWORD1>new</KEYWORD1>\r
169             <LITERAL2>null</LITERAL2>\r
170             <INVALID>out</INVALID>\r
171             <KEYWORD4>override</KEYWORD4>\r
172             <KEYWORD2>package</KEYWORD2>\r
173             <KEYWORD2>pragma</KEYWORD2>\r
174             <KEYWORD1>private</KEYWORD1>\r
175             <KEYWORD1>protected</KEYWORD1>\r
176             <KEYWORD1>public</KEYWORD1>\r
177             <KEYWORD3>real</KEYWORD3>\r
178             <KEYWORD1>return</KEYWORD1>\r
179             <KEYWORD3>short</KEYWORD3>\r
180             <KEYWORD1>static</KEYWORD1>\r
181             <KEYWORD3>struct</KEYWORD3>\r
182             <LITERAL2>super</LITERAL2>\r
183             <KEYWORD1>switch</KEYWORD1>\r
184             <KEYWORD1>synchronized</KEYWORD1>\r
185             <KEYWORD3>template</KEYWORD3>\r
186             <LITERAL2>this</LITERAL2>\r
187             <KEYWORD1>throw</KEYWORD1>\r
188             <LITERAL2>true</LITERAL2>\r
189             <KEYWORD1>try</KEYWORD1>\r
190             <KEYWORD3>typedef</KEYWORD3>\r
191             <KEYWORD1>typeof</KEYWORD1>\r
192             <KEYWORD3>ubyte</KEYWORD3>\r
193             <KEYWORD3>ucent</KEYWORD3>\r
194             <KEYWORD3>uint</KEYWORD3>\r
195             <KEYWORD3>ulong</KEYWORD3>\r
196             <KEYWORD3>union</KEYWORD3>\r
197             <KEYWORD2>unittest</KEYWORD2>\r
198             <KEYWORD3>ushort</KEYWORD3>\r
199             <KEYWORD2>version</KEYWORD2>\r
200             <KEYWORD3>void</KEYWORD3>\r
201             <KEYWORD1>volatile</KEYWORD1>\r
202             <KEYWORD3>wchar</KEYWORD3>\r
203             <KEYWORD1>while</KEYWORD1>\r
204             <KEYWORD2>with</KEYWORD2>\r
205         </KEYWORDS>\r
206     </RULES>\r
207     <RULES SET="NESTED_COMMENT" DEFAULT="COMMENT1" ESCAPE="\">\r
208         <SPAN TYPE="COMMENT1" DELEGATE="NESTED_COMMENT">\r
209             <BEGIN>/+</BEGIN>\r
210             <END>+/</END>\r
211         </SPAN>\r
212     </RULES>\r
213 </MODE>\r