]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/rview.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / rview.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <!--
6   Relational View (rview) mode by Will Sargent <wsargent@atg.com>
7 -->
8 <MODE>
9         <PROPS>
10                 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
11                 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
12                 <PROPERTY NAME="commentStart" VALUE="/*" />
13                 <PROPERTY NAME="commentEnd" VALUE="*/" />
14                 <PROPERTY NAME="lineComment" VALUE="//" />
15         </PROPS>
16
17         <!--
18           Unicode escapes are allowed in identifiers.
19           Ignoring case is bad.
20           Digits may be returned from functions.
21         -->
22         <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
23                 <SEQ TYPE="COMMENT1">/**/</SEQ>
24
25                 <!-- Javadoc comment -->
26                 <SPAN TYPE="COMMENT2" DELEGATE="java::JAVADOC">
27                         <BEGIN>/**</BEGIN>
28                         <END>*/</END>
29                 </SPAN>
30
31                 <!-- Java comment (C style) -->
32                 <SPAN TYPE="COMMENT1">
33                         <BEGIN>/*</BEGIN>
34                         <END>*/</END>
35                 </SPAN>
36
37                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="RVIEWSTMT">
38                         <BEGIN>"</BEGIN>
39                         <END>"</END>
40                 </SPAN>
41
42                 <SEQ TYPE="OPERATOR">}</SEQ>
43                 <SEQ TYPE="OPERATOR">{</SEQ>
44                 <SEQ TYPE="OPERATOR">=</SEQ>
45
46                 <!-- Function calls -->
47                 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
48                                 <SEQ TYPE="OPERATOR">)</SEQ>
49
50                 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
51
52                 <KEYWORDS>
53
54                         <!--
55                           Keywords (WAY more than I thought there were, please
56                           e-mail me if I've left one out).
57                         -->
58                         <KEYWORD1>unique</KEYWORD1>
59                         <KEYWORD1>relationalview</KEYWORD1>
60                         <KEYWORD1>class</KEYWORD1>
61
62                         <KEYWORD1>rowmap</KEYWORD1>
63                         <KEYWORD1>table</KEYWORD1>
64                         <KEYWORD1>function</KEYWORD1>
65                         <KEYWORD1>subview</KEYWORD1>
66                         <KEYWORD1>query</KEYWORD1>
67
68                         <KEYWORD1>join</KEYWORD1>
69                         <KEYWORD1>jointype</KEYWORD1>
70                         <KEYWORD1>leftouter</KEYWORD1>
71                         <KEYWORD1>rightouter</KEYWORD1>
72
73                         <KEYWORD1>switch</KEYWORD1>
74                         <KEYWORD1>case</KEYWORD1>
75
76                         <KEYWORD1>sql</KEYWORD1>
77                         <KEYWORD1>constraints</KEYWORD1>
78                         <KEYWORD1>where</KEYWORD1>
79                         <KEYWORD1>orderby</KEYWORD1>
80                         <KEYWORD1>return</KEYWORD1>
81                         <KEYWORD1>distinct</KEYWORD1>
82
83                         <!--
84                           Allow parameters...
85                         -->
86                         <KEYWORD1>allow</KEYWORD1>
87                         <KEYWORD1>delete</KEYWORD1>
88                         <!-- also used in update function -->
89                         <KEYWORD1>update</KEYWORD1>
90                         <KEYWORD1>select</KEYWORD1>
91                         <KEYWORD1>insert</KEYWORD1>
92
93                         <!-- We're allowed to return primitive types -->
94                         <KEYWORD3>boolean</KEYWORD3>
95                         <KEYWORD3>byte</KEYWORD3>
96                         <KEYWORD3>char</KEYWORD3>
97                         <KEYWORD3>double</KEYWORD3>
98                         <KEYWORD3>float</KEYWORD3>
99                         <KEYWORD3>int</KEYWORD3>
100                         <KEYWORD3>long</KEYWORD3>
101                         <KEYWORD3>short</KEYWORD3>
102
103                         <KEYWORD1>useCallableStatement</KEYWORD1>
104
105                         <!--
106                           JDBC mapping statements (must be UPPERCASE)
107                         -->
108                         <KEYWORD3>CHAR</KEYWORD3>
109                         <KEYWORD3>VARCHAR</KEYWORD3>
110                         <KEYWORD3>LONGVARCHAR</KEYWORD3>
111                         <KEYWORD3>NUMERIC</KEYWORD3>
112                         <KEYWORD3>DECIMAL</KEYWORD3>
113                         <KEYWORD3>BIT</KEYWORD3>
114                         <KEYWORD3>TINYINT</KEYWORD3>
115                         <KEYWORD3>SMALLINT</KEYWORD3>
116                         <KEYWORD3>INTEGER</KEYWORD3>
117                         <KEYWORD3>BIGINT</KEYWORD3>
118                         <KEYWORD3>REAL</KEYWORD3>
119                         <KEYWORD3>FLOAT</KEYWORD3>
120                         <KEYWORD3>DOUBLE</KEYWORD3>
121                         <KEYWORD3>BINARY</KEYWORD3>
122                         <KEYWORD3>VARBINARY</KEYWORD3>
123                         <KEYWORD3>LONGVARBINARY</KEYWORD3>
124                         <KEYWORD3>DATE</KEYWORD3>
125                         <KEYWORD3>TIME</KEYWORD3>
126                         <KEYWORD3>TIMESTAMP</KEYWORD3>
127                 </KEYWORDS>
128         </RULES>
129
130         <!--
131           Everything that happens in between quotes happens here.
132         -->
133         <RULES SET="RVIEWSTMT" ESCAPE="\" DEFAULT="LITERAL1"
134                 HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">
135                 <!-- Allow quoting for characters. -->
136                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
137                         <BEGIN>'</BEGIN>
138                         <END>'</END>
139                 </SPAN>
140
141                 <!--
142                   Standard arithmetic
143                 -->
144                 <SEQ TYPE="OPERATOR">+</SEQ>
145                 <SEQ TYPE="OPERATOR">-</SEQ>
146                 <SEQ TYPE="OPERATOR">/</SEQ>
147                 <SEQ TYPE="OPERATOR">*</SEQ>
148                 <SEQ TYPE="OPERATOR">=</SEQ>
149
150                 <!--
151                   Standard logic
152                 -->
153                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>
154                 <SEQ TYPE="OPERATOR">&lt;=</SEQ>
155                 <SEQ TYPE="OPERATOR">&gt;</SEQ>
156                 <SEQ TYPE="OPERATOR">&lt;</SEQ>
157
158                 <!--
159                   For callable statements, { } must be used.
160                 -->
161                 <SEQ TYPE="OPERATOR">}</SEQ>
162                 <SEQ TYPE="OPERATOR">{</SEQ>
163
164                 <!--
165                   Escape colons for full tables
166                 -->
167                 <SEQ TYPE="NULL">::</SEQ>
168
169                 <!-- Mark most colons as a label indicator -->
170                 <MARK_FOLLOWING TYPE="LABEL">:</MARK_FOLLOWING>
171
172                 <!-- Function calls (these can happen even inside quotes) -->
173                 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
174                                 <SEQ TYPE="OPERATOR">)</SEQ>
175
176                 <KEYWORDS>
177                         <KEYWORD1>SELECT</KEYWORD1>
178                         <KEYWORD1>FROM</KEYWORD1>
179                         <KEYWORD1>WHERE</KEYWORD1>
180                         <KEYWORD1>AND</KEYWORD1>
181                         <KEYWORD1>NOT</KEYWORD1>
182                         <KEYWORD1>IN</KEYWORD1>
183                         <KEYWORD1>BETWEEN</KEYWORD1>
184                         <KEYWORD1>UPDATE</KEYWORD1>
185                         <KEYWORD1>SET</KEYWORD1>
186
187                         <KEYWORD1>call</KEYWORD1>
188                         <KEYWORD1>desc</KEYWORD1>
189
190                         <!--
191                           It's possible to do casting to a particular SQL
192                           type, so include the JDBC types here
193                         -->
194                         <KEYWORD3>CHAR</KEYWORD3>
195                         <KEYWORD3>VARCHAR</KEYWORD3>
196                         <KEYWORD3>LONGVARCHAR</KEYWORD3>
197                         <KEYWORD3>NUMERIC</KEYWORD3>
198                         <KEYWORD3>DECIMAL</KEYWORD3>
199                         <KEYWORD3>BIT</KEYWORD3>
200                         <KEYWORD3>TINYINT</KEYWORD3>
201                         <KEYWORD3>SMALLINT</KEYWORD3>
202                         <KEYWORD3>INTEGER</KEYWORD3>
203                         <KEYWORD3>BIGINT</KEYWORD3>
204                         <KEYWORD3>REAL</KEYWORD3>
205                         <KEYWORD3>FLOAT</KEYWORD3>
206                         <KEYWORD3>DOUBLE</KEYWORD3>
207                         <KEYWORD3>BINARY</KEYWORD3>
208                         <KEYWORD3>VARBINARY</KEYWORD3>
209                         <KEYWORD3>LONGVARBINARY</KEYWORD3>
210                         <KEYWORD3>DATE</KEYWORD3>
211                         <KEYWORD3>TIME</KEYWORD3>
212                         <KEYWORD3>TIMESTAMP</KEYWORD3>
213                 </KEYWORDS>
214         </RULES>
215
216
217 </MODE>