3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
5 <!-- IDL mode, by Slava Pestov
6 based on Java mode by Mike Dillon and IDLTokenMarker by Juha Lindfors -->
9 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
10 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
11 <PROPERTY NAME="commentStart" VALUE="/*" />
12 <PROPERTY NAME="commentEnd" VALUE="*/" />
13 <PROPERTY NAME="boxComment" VALUE="*" />
14 <PROPERTY NAME="lineComment" VALUE="//" />
16 <RULES IGNORE_CASE="FALSE">
17 <EOL_SPAN TYPE="KEYWORD2"
18 AT_WHITESPACE_END="TRUE"
19 DELEGATE="PREPROCESSOR">#</EOL_SPAN>
20 <IMPORT DELEGATE="LEX" />
23 <RULES SET="LEX" IGNORE_CASE="FALSE">
25 <IMPORT DELEGATE="c::COMMENTS" />
27 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
31 <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
36 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
38 <!-- some of these should be marked OPERATOR -->
40 <SEQ TYPE="NULL">!</SEQ>
41 <SEQ TYPE="NULL">>=</SEQ>
42 <SEQ TYPE="NULL"><=</SEQ>
43 <SEQ TYPE="NULL">+</SEQ>
44 <SEQ TYPE="NULL">-</SEQ>
45 <SEQ TYPE="NULL">/</SEQ>
46 <SEQ TYPE="NULL">*</SEQ>
47 <SEQ TYPE="NULL">%</SEQ>
48 <SEQ TYPE="NULL">&</SEQ>
49 <SEQ TYPE="NULL">|</SEQ>
50 <SEQ TYPE="NULL">^</SEQ>
51 <SEQ TYPE="NULL">~</SEQ>
52 <SEQ TYPE="NULL">.</SEQ>
53 <SEQ TYPE="NULL">,</SEQ>
54 <SEQ TYPE="NULL">;</SEQ>
55 <SEQ TYPE="NULL">]</SEQ>
56 <SEQ TYPE="NULL">[</SEQ>
57 <SEQ TYPE="NULL">?</SEQ> -->
59 <SEQ TYPE="OPERATOR">}</SEQ>
60 <SEQ TYPE="OPERATOR">{</SEQ>
61 <SEQ TYPE="OPERATOR">:</SEQ>
62 <SEQ TYPE="OPERATOR">></SEQ>
63 <SEQ TYPE="OPERATOR"><</SEQ>
64 <SEQ TYPE="OPERATOR">=</SEQ>
67 <!-- Function calls -->
68 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
69 <SEQ TYPE="OPERATOR">)</SEQ>
72 <KEYWORD3>any</KEYWORD3>
73 <KEYWORD1>attribute</KEYWORD1>
74 <KEYWORD3>boolean</KEYWORD3>
75 <KEYWORD1>case</KEYWORD1>
76 <KEYWORD3>char</KEYWORD3>
77 <KEYWORD1>const</KEYWORD1>
78 <KEYWORD1>context</KEYWORD1>
79 <KEYWORD1>default</KEYWORD1>
80 <KEYWORD3>double</KEYWORD3>
81 <KEYWORD3>enum</KEYWORD3>
82 <KEYWORD1>exception</KEYWORD1>
83 <LITERAL2>FALSE</LITERAL2>
84 <KEYWORD1>fixed</KEYWORD1>
85 <KEYWORD3>float</KEYWORD3>
86 <KEYWORD1>in</KEYWORD1>
87 <KEYWORD1>inout</KEYWORD1>
88 <KEYWORD1>interface</KEYWORD1>
89 <KEYWORD3>long</KEYWORD3>
90 <KEYWORD1>module</KEYWORD1>
91 <KEYWORD3>Object</KEYWORD3>
92 <KEYWORD3>octet</KEYWORD3>
93 <KEYWORD1>oneway</KEYWORD1>
94 <KEYWORD1>out</KEYWORD1>
95 <KEYWORD1>raises</KEYWORD1>
96 <KEYWORD1>readonly</KEYWORD1>
97 <KEYWORD3>sequence</KEYWORD3>
98 <KEYWORD3>short</KEYWORD3>
99 <KEYWORD3>string</KEYWORD3>
100 <KEYWORD3>struct</KEYWORD3>
101 <KEYWORD1>switch</KEYWORD1>
102 <LITERAL2>TRUE</LITERAL2>
103 <KEYWORD3>typedef</KEYWORD3>
104 <KEYWORD3>unsigned</KEYWORD3>
105 <KEYWORD3>union</KEYWORD3>
106 <KEYWORD3>void</KEYWORD3>
107 <KEYWORD3>wchar</KEYWORD3>
108 <KEYWORD3>wstring</KEYWORD3>
112 <!-- Preprocessor specific rules. This is borrowed from the C mode,
113 since the IDL spec says the preprocessor is compatible with the
115 <RULES SET="PREPROCESSOR"
117 HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
119 <EOL_SPAN_REGEXP HASH_CHAR="include" TYPE="MARKUP" DELEGATE="INCLUDE">include\b</EOL_SPAN_REGEXP>
120 <EOL_SPAN_REGEXP HASH_CHAR="define" TYPE="MARKUP" DELEGATE="DEFINE">define\b</EOL_SPAN_REGEXP>
121 <EOL_SPAN_REGEXP HASH_CHAR="endif" TYPE="MARKUP" DELEGATE="LEX">endif\b</EOL_SPAN_REGEXP>
122 <EOL_SPAN_REGEXP HASH_CHAR="elif" TYPE="MARKUP" DELEGATE="c::CONDITION">elif\b</EOL_SPAN_REGEXP>
123 <EOL_SPAN_REGEXP HASH_CHAR="if" TYPE="MARKUP" DELEGATE="c::CONDITION">if\b</EOL_SPAN_REGEXP>
125 <IMPORT DELEGATE="LEX"/>
129 <MARKUP>ifdef</MARKUP>
130 <MARKUP>ifndef</MARKUP>
131 <MARKUP>else</MARKUP>
132 <MARKUP>undef</MARKUP>
133 <MARKUP>warning</MARKUP>
139 HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
140 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
144 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
148 <IMPORT DELEGATE="LEX"/>
153 HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
154 <SEQ TYPE="OPERATOR">#</SEQ>
155 <IMPORT DELEGATE="LEX"/>