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