]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/fortran.xml
1bc26266cf49fac0e4e381c6152aed4eeb1adbaa
[factor.git] / basis / xmode / modes / fortran.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 <!--  FORTRAN edit mode\r
5       Version $Id: fortran.xml 10573 2007-09-14 02:04:59Z ezust $\r
6 -->\r
7 <!-- This is a mode for FORTRAN source files.  In general, this supports\r
8 common features of the F90 specification.  This may however contain some\r
9 platform or vendor specific keywords (in paticular COMPAQ(Digital) FORTRAN).\r
10 -->\r
11 <!-- Suggested catalog file entry:\r
12 \r
13 <MODE NAME="FORTRAN"            FILE="FORTRAN.xml"\r
14                                 FILE_NAME_GLOB="*.{f,for,fort,f77,f90}" />\r
15  -->\r
16 <MODE>\r
17     <PROPS>\r
18          <!-- To get the line comment inserted correctly at line start:\r
19               use the "toggle-line-comment"-action of TextTools plugin \r
20               with the active option "Insert line comments at start of line" -->\r
21          <PROPERTY NAME="lineComment"    VALUE="C" />\r
22          \r
23          <PROPERTY NAME="wordBreakChars" VALUE=",+-=&lt;&gt;/?^&amp;*" />\r
24          <PROPERTY NAME="indentNextLine" VALUE="\s*((if\s*\(.*\)\s*then|else\s*|do\s*)*)" />\r
25     </PROPS>\r
26 \r
27     <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="FALSE">\r
28 <!-- In fixed form, column 72 is the last column parsed, unless the\r
29 \extend_source option is invoked -->\r
30     <!-- TERMINATE AT_CHAR="72" / -->\r
31 \r
32 <!-- comment either !, C, or * can be used as a comment in the first column\r
33 in either free or fixed form FORTRAN-->\r
34 <EOL_SPAN TYPE="COMMENT1" AT_LINE_START="TRUE">C</EOL_SPAN>\r
35 <EOL_SPAN TYPE="COMMENT1" AT_LINE_START="TRUE">!</EOL_SPAN>\r
36 <EOL_SPAN TYPE="COMMENT1" AT_LINE_START="TRUE">*</EOL_SPAN>\r
37 <EOL_SPAN TYPE="COMMENT1">!</EOL_SPAN>\r
38 <EOL_SPAN TYPE="COMMENT2" AT_LINE_START="TRUE">D</EOL_SPAN>\r
39 \r
40                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE">\r
41                         <BEGIN>"</BEGIN>\r
42                         <END>"</END>\r
43                 </SPAN>\r
44                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="FALSE">\r
45                         <BEGIN>'</BEGIN>\r
46                         <END>'</END>\r
47                 </SPAN>\r
48 \r
49 <!-- Highlighted Operators -->\r
50                 <SEQ TYPE="OPERATOR">&lt;=</SEQ>\r
51                 <SEQ TYPE="OPERATOR">&gt;=</SEQ>\r
52                 <SEQ TYPE="OPERATOR">&gt;</SEQ>\r
53                 <SEQ TYPE="OPERATOR">&lt;</SEQ>\r
54                 <SEQ TYPE="OPERATOR">&amp;</SEQ>\r
55                 <SEQ TYPE="OPERATOR">/=</SEQ>\r
56                 <SEQ TYPE="OPERATOR">==</SEQ>\r
57                 <SEQ TYPE="OPERATOR">.lt.</SEQ>\r
58                 <SEQ TYPE="OPERATOR">.gt.</SEQ>\r
59                 <SEQ TYPE="OPERATOR">.eq.</SEQ>\r
60                 <SEQ TYPE="OPERATOR">.ne.</SEQ>\r
61                 <SEQ TYPE="OPERATOR">.le.</SEQ>\r
62                 <SEQ TYPE="OPERATOR">.ge.</SEQ>\r
63                 <SEQ TYPE="OPERATOR">.AND.</SEQ>\r
64                 <SEQ TYPE="OPERATOR">.OR.</SEQ>\r
65 \r
66 <KEYWORDS>\r
67 <!-- unclassified keywords -->\r
68 <KEYWORD1>INCLUDE</KEYWORD1>\r
69 <!-- Program units and calling them -->\r
70 <KEYWORD1>PROGRAM</KEYWORD1>\r
71 <KEYWORD1>MODULE</KEYWORD1>\r
72 <KEYWORD1>SUBROUTINE</KEYWORD1>\r
73 <KEYWORD1>FUNCTION</KEYWORD1>\r
74 <KEYWORD1>CONTAINS</KEYWORD1>\r
75 <KEYWORD1>USE</KEYWORD1>\r
76 <KEYWORD1>CALL</KEYWORD1>\r
77 <KEYWORD1>RETURN</KEYWORD1>\r
78 <!-- data types, declaration, and allocation keywords -->\r
79 <KEYWORD1>IMPLICIT</KEYWORD1>\r
80 <KEYWORD1>EXPLICIT</KEYWORD1>\r
81 <KEYWORD1>NONE</KEYWORD1>\r
82 <KEYWORD1>DATA</KEYWORD1>\r
83 <KEYWORD1>PARAMETER</KEYWORD1>\r
84 <KEYWORD1>ALLOCATE</KEYWORD1>\r
85 <KEYWORD1>ALLOCATABLE</KEYWORD1>\r
86 <KEYWORD1>ALLOCATED</KEYWORD1>\r
87 <KEYWORD1>DEALLOCATE</KEYWORD1>\r
88 <KEYWORD1>INTEGER</KEYWORD1>\r
89 <KEYWORD1>REAL</KEYWORD1>\r
90 <KEYWORD1>DOUBLE</KEYWORD1>\r
91 <KEYWORD1>PRECISION</KEYWORD1>\r
92 <KEYWORD1>COMPLEX</KEYWORD1>\r
93 <KEYWORD1>LOGICAL</KEYWORD1>\r
94 <KEYWORD1>CHARACTER</KEYWORD1>\r
95 <KEYWORD1>DIMENSION</KEYWORD1>\r
96 <KEYWORD1>KIND</KEYWORD1>\r
97 <!-- FORTRAN Statements -->\r
98 <KEYWORD1>CASE</KEYWORD1>\r
99 <KEYWORD1>SELECT</KEYWORD1>\r
100 <KEYWORD1>DEFAULT</KEYWORD1>\r
101 <KEYWORD1>CONTINUE</KEYWORD1>\r
102 <KEYWORD1>CYCLE</KEYWORD1>\r
103 <KEYWORD1>DO</KEYWORD1>\r
104 <KEYWORD1>WHILE</KEYWORD1>\r
105 <KEYWORD1>ELSE</KEYWORD1>\r
106 <KEYWORD1>IF</KEYWORD1>\r
107 <KEYWORD1>ELSEIF</KEYWORD1>\r
108 <KEYWORD1>THEN</KEYWORD1>\r
109 <KEYWORD1>ELSEWHERE</KEYWORD1>\r
110 <KEYWORD1>END</KEYWORD1>\r
111 <KEYWORD1>ENDIF</KEYWORD1>\r
112 <KEYWORD1>ENDDO</KEYWORD1>\r
113 <KEYWORD1>FORALL</KEYWORD1>\r
114 <KEYWORD1>WHERE</KEYWORD1>\r
115 <KEYWORD1>EXIT</KEYWORD1>\r
116 <KEYWORD1>GOTO</KEYWORD1>\r
117 <KEYWORD1>PAUSE</KEYWORD1>\r
118 <KEYWORD1>STOP</KEYWORD1>\r
119 <!-- i/o keywords -->\r
120 <KEYWORD1>BACKSPACE</KEYWORD1>\r
121 <KEYWORD1>CLOSE</KEYWORD1>\r
122 <KEYWORD1>ENDFILE</KEYWORD1>\r
123 <KEYWORD1>INQUIRE</KEYWORD1>\r
124 <KEYWORD1>OPEN</KEYWORD1>\r
125 <KEYWORD1>PRINT</KEYWORD1>\r
126 <KEYWORD1>READ</KEYWORD1>\r
127 <KEYWORD1>REWIND</KEYWORD1>\r
128 <KEYWORD1>WRITE</KEYWORD1>\r
129 <KEYWORD1>FORMAT</KEYWORD1>\r
130 <!-- Type conversion and utility functions -->\r
131 <KEYWORD1>AIMAG</KEYWORD1>\r
132 <KEYWORD1>AINT</KEYWORD1>\r
133 <KEYWORD1>AMAX0</KEYWORD1>\r
134 <KEYWORD1>AMIN0</KEYWORD1>\r
135 <KEYWORD1>ANINT</KEYWORD1>\r
136 <KEYWORD1>CEILING</KEYWORD1>\r
137 <KEYWORD1>CMPLX</KEYWORD1>\r
138 <KEYWORD1>CONJG</KEYWORD1>\r
139 <KEYWORD1>DBLE</KEYWORD1>\r
140 <KEYWORD1>DCMPLX</KEYWORD1>\r
141 <KEYWORD1>DFLOAT</KEYWORD1>\r
142 <KEYWORD1>DIM</KEYWORD1>\r
143 <KEYWORD1>DPROD</KEYWORD1>\r
144 <KEYWORD1>FLOAT</KEYWORD1>\r
145 <KEYWORD1>FLOOR</KEYWORD1>\r
146 <KEYWORD1>IFIX</KEYWORD1>\r
147 <KEYWORD1>IMAG</KEYWORD1>\r
148 <KEYWORD1>INT</KEYWORD1>\r
149 <KEYWORD1>LOGICAL</KEYWORD1>\r
150 <KEYWORD1>MODULO</KEYWORD1>\r
151 <KEYWORD1>NINT</KEYWORD1>\r
152 <KEYWORD1>REAL</KEYWORD1>\r
153 <KEYWORD1>SIGN</KEYWORD1>\r
154 <KEYWORD1>SNGL</KEYWORD1>\r
155 <KEYWORD1>TRANSFER</KEYWORD1>\r
156 <KEYWORD1>ZEXT</KEYWORD1>\r
157 <!-- More Functions -->\r
158 <KEYWORD1>ABS</KEYWORD1>\r
159 <KEYWORD1>ACOS</KEYWORD1>\r
160 <KEYWORD1>AIMAG</KEYWORD1>\r
161 <KEYWORD1>AINT</KEYWORD1>\r
162 <KEYWORD1>ALOG</KEYWORD1>\r
163 <KEYWORD1>ALOG10</KEYWORD1>\r
164 <KEYWORD1>AMAX0</KEYWORD1>\r
165 <KEYWORD1>AMAX1</KEYWORD1>\r
166 <KEYWORD1>AMIN0</KEYWORD1>\r
167 <KEYWORD1>AMIN1</KEYWORD1>\r
168 <KEYWORD1>AMOD</KEYWORD1>\r
169 <KEYWORD1>ANINT</KEYWORD1>\r
170 <KEYWORD1>ASIN</KEYWORD1>\r
171 <KEYWORD1>ATAN</KEYWORD1>\r
172 <KEYWORD1>ATAN2</KEYWORD1>\r
173 <KEYWORD1>CABS</KEYWORD1>\r
174 <KEYWORD1>CCOS</KEYWORD1>\r
175 <KEYWORD1>CHAR</KEYWORD1>\r
176 <KEYWORD1>CLOG</KEYWORD1>\r
177 <KEYWORD1>CMPLX</KEYWORD1>\r
178 <KEYWORD1>CONJG</KEYWORD1>\r
179 <KEYWORD1>COS</KEYWORD1>\r
180 <KEYWORD1>COSH</KEYWORD1>\r
181 <KEYWORD1>CSIN</KEYWORD1>\r
182 <KEYWORD1>CSQRT</KEYWORD1>\r
183 <KEYWORD1>DABS</KEYWORD1>\r
184 <KEYWORD1>DACOS</KEYWORD1>\r
185 <KEYWORD1>DASIN</KEYWORD1>\r
186 <KEYWORD1>DATAN</KEYWORD1>\r
187 <KEYWORD1>DATAN2</KEYWORD1>\r
188 <KEYWORD1>DBLE</KEYWORD1>\r
189 <KEYWORD1>DCOS</KEYWORD1>\r
190 <KEYWORD1>DCOSH</KEYWORD1>\r
191 <KEYWORD1>DDIM</KEYWORD1>\r
192 <KEYWORD1>DEXP</KEYWORD1>\r
193 <KEYWORD1>DIM</KEYWORD1>\r
194 <KEYWORD1>DINT</KEYWORD1>\r
195 <KEYWORD1>DLOG</KEYWORD1>\r
196 <KEYWORD1>DLOG10</KEYWORD1>\r
197 <KEYWORD1>DMAX1</KEYWORD1>\r
198 <KEYWORD1>DMIN1</KEYWORD1>\r
199 <KEYWORD1>DMOD</KEYWORD1>\r
200 <KEYWORD1>DNINT</KEYWORD1>\r
201 <KEYWORD1>DPROD</KEYWORD1>\r
202 <KEYWORD1>DREAL</KEYWORD1>\r
203 <KEYWORD1>DSIGN</KEYWORD1>\r
204 <KEYWORD1>DSIN</KEYWORD1>\r
205 <KEYWORD1>DSINH</KEYWORD1>\r
206 <KEYWORD1>DSQRT</KEYWORD1>\r
207 <KEYWORD1>DTAN</KEYWORD1>\r
208 <KEYWORD1>DTANH</KEYWORD1>\r
209 <KEYWORD1>EXP</KEYWORD1>\r
210 <KEYWORD1>FLOAT</KEYWORD1>\r
211 <KEYWORD1>IABS</KEYWORD1>\r
212 <KEYWORD1>ICHAR</KEYWORD1>\r
213 <KEYWORD1>IDIM</KEYWORD1>\r
214 <KEYWORD1>IDINT</KEYWORD1>\r
215 <KEYWORD1>IDNINT</KEYWORD1>\r
216 <KEYWORD1>IFIX</KEYWORD1>\r
217 <KEYWORD1>INDEX</KEYWORD1>\r
218 <KEYWORD1>INT</KEYWORD1>\r
219 <KEYWORD1>ISIGN</KEYWORD1>\r
220 <KEYWORD1>LEN</KEYWORD1>\r
221 <KEYWORD1>LGE</KEYWORD1>\r
222 <KEYWORD1>LGT</KEYWORD1>\r
223 <KEYWORD1>LLE</KEYWORD1>\r
224 <KEYWORD1>LLT</KEYWORD1>\r
225 <KEYWORD1>LOG</KEYWORD1>\r
226 <KEYWORD1>LOG10</KEYWORD1>\r
227 <KEYWORD1>MAX</KEYWORD1>\r
228 <KEYWORD1>MAX0</KEYWORD1>\r
229 <KEYWORD1>MAX1</KEYWORD1>\r
230 <KEYWORD1>MIN</KEYWORD1>\r
231 <KEYWORD1>MIN0</KEYWORD1>\r
232 <KEYWORD1>MIN1</KEYWORD1>\r
233 <KEYWORD1>MOD</KEYWORD1>\r
234 <KEYWORD1>NINT</KEYWORD1>\r
235 <KEYWORD1>REAL</KEYWORD1>\r
236 <KEYWORD1>SIGN</KEYWORD1>\r
237 <KEYWORD1>SIN</KEYWORD1>\r
238 <KEYWORD1>SINH</KEYWORD1>\r
239 <KEYWORD1>SNGL</KEYWORD1>\r
240 <KEYWORD1>SQRT</KEYWORD1>\r
241 <KEYWORD1>TAN</KEYWORD1>\r
242 <KEYWORD1>TANH</KEYWORD1>\r
243 <!-- logical values -->\r
244 <KEYWORD1>.false.</KEYWORD1>\r
245 <KEYWORD1>.true.</KEYWORD1>\r
246 \r
247 </KEYWORDS>\r
248     </RULES>\r
249 </MODE>\r