Ticket #3618: f90.syntax

File f90.syntax, 8.8 KB (added by asy, 8 years ago)
Line 
1# ---------------------------------------------------
2# f90.syntax
3# FORTRAN 90/95 language freeform syntax highlighting template.
4# Provides syntax highlighting rules for the
5# FORTRAN programming language.
6#
7# Based on FORTRAN77 version fortran.syntax
8# Author: John Theal
9# Email: jtheal@renegadelinuxbox.dhs.org
10# December 7, 1999
11# ---------------------------------------------------
12
13# Heavily modified by Paul Sheer <psheer@obsidian.co.za>.
14# Adjusted to Fortran 90 by Norbert Nemec <Norbert@Nemec-online.de>.
15
16caseinsensitive
17
18context default
19# keywords at the beginning of line
20    keyword linestart \{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\} brightred
21    keyword linestart \{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\} brightred
22    keyword linestart \{0123456789\}\{0123456789\}\{0123456789\} brightred
23    keyword linestart \{0123456789\}\{0123456789\} brightred
24    keyword linestart \{0123456789\} brightred
25
26# structure
27    keyword whole ASSIGNMENT white black
28    keyword whole CONTAINS white black
29    keyword whole END white black
30    keyword whole FUNCTION white black
31    keyword whole INTERFACE white black
32    keyword whole INCLUDE white black
33    keyword whole MODULE white black
34    keyword whole OPERATOR white black
35    keyword whole PROGRAM white black
36    keyword whole SUBROUTINE white black
37
38# boolean and logical expressions / operators
39    keyword .and. brightred/orange
40    keyword .eq. brightred/orange
41    keyword .eqv. brightred/orange
42    keyword .false. brightred/orange
43    keyword .ge. brightred/orange
44    keyword .gt. brightred/orange
45    keyword .le. brightred/orange
46    keyword .lt. brightred/orange
47    keyword .ne. brightred/orange
48    keyword .neqv. brightred/orange
49    keyword .not. brightred/orange
50    keyword .or. brightred/orange
51    keyword .true. brightred/orange
52    keyword whole lge brightred/orange
53    keyword whole lgt brightred/orange
54    keyword whole lle brightred/orange
55    keyword whole llt brightred/orange
56
57# declarations
58    keyword whole ALLOCATABLE brightcyan
59    keyword whole BLOCK brightcyan
60    keyword whole CHARACTER brightcyan
61    keyword whole COMMON brightcyan
62    keyword whole COMPLEX brightcyan
63    keyword whole DATA brightcyan
64    keyword whole DIMENSION brightcyan
65    keyword whole DOUBLE brightcyan
66    keyword whole ELEMENTAL brightcyan
67    keyword whole EQUIVALENCE brightcyan
68    keyword whole EXTERNAL brightcyan
69    keyword whole FORMAT brightcyan
70    keyword whole IMPLICIT brightcyan
71    keyword whole INTEGER brightcyan
72    keyword whole INTENT brightcyan
73    keyword whole INTRINSIC brightcyan
74    keyword whole LOGICAL brightcyan
75    keyword whole NAMELIST brightcyan
76    keyword whole NONE brightcyan
77    keyword whole ONLY brightcyan
78    keyword whole OPTIONAL brightcyan
79    keyword whole PARAMETER brightcyan
80    keyword whole POINTER brightcyan
81    keyword whole PRECISION brightcyan
82    keyword whole PRIVATE brightcyan
83    keyword whole PUBLIC brightcyan
84    keyword whole PURE brightcyan
85    keyword whole REAL brightcyan
86    keyword whole SAVE brightcyan
87    keyword whole TYPE brightcyan
88    keyword whole USE brightcyan
89
90# general programming syntax
91    keyword whole allocate brightgreen
92    keyword whole assign brightgreen
93    keyword whole call brightgreen
94    keyword whole case brightgreen
95    keyword whole deallocate brightgreen
96    keyword whole default brightgreen
97    keyword whole continue brightgreen
98    keyword whole cycle brightgreen
99    keyword whole do brightgreen
100    keyword whole else brightgreen
101    keyword whole elseif brightgreen
102    keyword whole elsewhere brightgreen
103    keyword whole end brightgreen
104    keyword whole enddo brightgreen
105    keyword whole endif brightgreen
106    keyword whole exit brightgreen
107    keyword whole for brightgreen
108    keyword whole forall brightgreen
109    keyword whole goto brightgreen
110    keyword whole if brightgreen
111    keyword whole nullify brightgreen
112    keyword whole pause brightgreen
113    keyword whole return brightgreen
114    keyword whole select brightgreen
115    keyword whole stop brightgreen
116    keyword whole target brightgreen
117    keyword whole then brightgreen
118    keyword whole to brightgreen
119    keyword whole where brightgreen
120    keyword whole while brightgreen
121
122# headers
123    keyword whole entry brightgreen
124
125# I/O functions
126# may have optional equal signs after them: 'keyword ='
127    keyword whole access brightmagenta
128    keyword whole backspace brightmagenta
129    keyword whole blank brightmagenta
130    keyword whole close brightmagenta
131    keyword whole direct brightmagenta
132    keyword whole endfile brightmagenta
133    keyword whole err brightmagenta
134    keyword whole exist brightmagenta
135    keyword whole file brightmagenta
136    keyword whole fmt brightmagenta
137    keyword whole form brightmagenta
138    keyword whole formatted brightmagenta
139    keyword whole inquire brightmagenta
140    keyword whole iostat brightmagenta
141    keyword whole name brightmagenta
142    keyword whole named brightmagenta
143    keyword whole nextrec brightmagenta
144    keyword whole number brightmagenta
145    keyword whole open brightmagenta
146    keyword whole opened brightmagenta
147    keyword whole print brightmagenta
148    keyword whole read brightmagenta
149    keyword whole rec brightmagenta
150    keyword whole recl brightmagenta
151    keyword whole rewind brightmagenta
152    keyword whole sequential brightmagenta
153    keyword whole status brightmagenta
154    keyword whole unformatted brightmagenta
155    keyword whole unit brightmagenta
156    keyword whole write brightmagenta
157
158# mathematical functions
159    keyword whole abs yellow
160    keyword whole achar yellow
161    keyword whole acos yellow
162    keyword whole aimag yellow
163    keyword whole aint yellow
164    keyword whole alog yellow
165    keyword whole alog10 yellow
166    keyword whole amax0 yellow
167    keyword whole amax1 yellow
168    keyword whole amin0 yellow
169    keyword whole amin1 yellow
170    keyword whole amod yellow
171    keyword whole anint yellow
172    keyword whole aprime yellow
173    keyword whole asin yellow
174    keyword whole atan yellow
175    keyword whole atan2 yellow
176    keyword whole acos yellow
177    keyword whole cabs yellow
178    keyword whole ceiling yellow
179    keyword whole cexp yellow
180    keyword whole char yellow
181    keyword whole clog yellow
182    keyword whole cmplx yellow
183    keyword whole conjg yellow
184    keyword whole cos yellow
185    keyword whole cosh yellow
186    keyword whole ccos yellow
187    keyword whole csin yellow
188    keyword whole csqrt yellow
189    keyword whole dabs yellow
190    keyword whole dacos yellow
191    keyword whole dasin yellow
192    keyword whole datan yellow
193    keyword whole datan2 yellow
194    keyword whole dble yellow
195    keyword whole dcos yellow
196    keyword whole dcosh yellow
197    keyword whole dfloat yellow
198    keyword whole ddmim yellow
199    keyword whole dexp yellow
200    keyword whole dim yellow
201    keyword whole dint yellow
202    keyword whole dlog yellow
203    keyword whole dlog10 yellow
204    keyword whole dmax1 yellow
205    keyword whole dmin1 yellow
206    keyword whole dmod yellow
207    keyword whole dnint yellow
208    keyword whole dsign yellow
209    keyword whole dsin yellow
210    keyword whole dsinh yellow
211    keyword whole dsqrt yellow
212    keyword whole dtan yellow
213    keyword whole dtanh yellow
214    keyword whole exp yellow
215    keyword whole float yellow
216    keyword whole floor yellow
217    keyword whole iabs yellow
218    keyword whole iachar yellow
219    keyword whole ichar yellow
220    keyword whole idim yellow
221    keyword whole idint yellow
222    keyword whole ifix yellow
223    keyword whole index yellow
224    keyword whole int yellow
225    keyword whole isign yellow
226    keyword whole len yellow
227    keyword whole log yellow
228    keyword whole log10 yellow
229    keyword whole matmul yellow
230    keyword whole max yellow
231    keyword whole max0 yellow
232    keyword whole max1 yellow
233    keyword whole maxval yellow
234    keyword whole min yellow
235    keyword whole min0 yellow
236    keyword whole min1 yellow
237    keyword whole minval yellow
238    keyword whole mod yellow
239    keyword whole nint yellow
240    keyword whole product yellow
241    keyword whole rand yellow
242    keyword whole random_number yellow
243    keyword whole random_seed yellow
244    keyword whole sign yellow
245    keyword whole sin yellow
246    keyword whole sinh yellow
247    keyword whole sngl yellow
248    keyword whole sqrt yellow
249    keyword whole sum yellow
250    keyword whole tan yellow
251    keyword whole tanh yellow
252    keyword whole transpose yellow
253
254# operators and syntax elements
255    keyword ( brightcyan
256    keyword ) brightcyan
257    keyword : brightcyan
258    keyword , brightcyan
259    keyword ; brightcyan
260    keyword \+ yellow
261    keyword - yellow
262    keyword \* yellow
263    keyword / yellow
264    keyword = yellow
265    keyword < yellow
266    keyword > yellow
267
268# comments and quotes
269    keyword '*' green
270    keyword "*" green
271
272#context &\n \n black cyan
273    keyword &\n black cyan
274
275context format( ) green
276
277context ! \n brown
278   spellcheck