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