Ticket #2962: update Fortan syntax highlighting.
[midnight-commander.git] / misc / syntax / f90.syntax
blob37d24144d202c6229e3430c4fefac04875294b0a
1 # ---------------------------------------------------
2 # f90.syntax
3 # FORTRAN 90/95 language freeform syntax highlighting template.
4 # Provides syntax highlighting rules for the
5 # FORTRAN programming language.
7 # Based on FORTRAN77 version fortran.syntax
8 # Author: John Theal
9 # Email: jtheal@renegadelinuxbox.dhs.org
10 # December 7, 1999
11 # ---------------------------------------------------
13 # Heavily modified by Paul Sheer <psheer@obsidian.co.za>.
14 # Adjusted to Fortran 90 by Norbert Nemec <Norbert@Nemec-online.de>.
16 caseinsensitive
18 context 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
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
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
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
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
122 # headers
123     keyword whole entry brightgreen
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
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 min yellow
234     keyword whole min0 yellow
235     keyword whole min1 yellow
236     keyword whole mod yellow
237     keyword whole nint yellow
238     keyword whole product yellow
239     keyword whole rand yellow
240     keyword whole random_number yellow
241     keyword whole random_seed yellow
242     keyword whole sign yellow
243     keyword whole sin yellow
244     keyword whole sinh yellow
245     keyword whole sngl yellow
246     keyword whole sqrt yellow
247     keyword whole sum yellow
248     keyword whole tan yellow
249     keyword whole tanh yellow
250     keyword whole transpose yellow
252 # operators and syntax elements
253     keyword ( brightcyan
254     keyword ) brightcyan
255     keyword : brightcyan
256     keyword , brightcyan
257     keyword ; brightcyan
258     keyword \+ yellow
259     keyword - yellow
260     keyword \* yellow
261     keyword / yellow
262     keyword = yellow
263     keyword < yellow
264     keyword > yellow
266 # comments and quotes
267     keyword '*' green
268     keyword "*" green
270 context &\n & black cyan
272 context format( ) green
274 context ! \n brown
275    spellcheck