Minor optimization of memory allocation for string copy.
[midnight-commander.git] / misc / syntax / f90.syntax
blobf5b806143815b47b6bc8120d18092e158d0fff9a
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 MODULE white black
28     keyword whole SUBROUTINE white black
29     keyword whole PROGRAM white black
30     keyword whole FUNCTION white black
31     keyword whole CONTAINS white black
32     keyword whole END white black
34 # boolean and logical expressions / operators
35     keyword .and. brightred/orange
36     keyword .eq. brightred/orange
37     keyword .eqv. brightred/orange
38     keyword .false. brightred/orange
39     keyword .ge. brightred/orange
40     keyword .gt. brightred/orange
41     keyword .le. brightred/orange
42     keyword .lt. brightred/orange
43     keyword .ne. brightred/orange
44     keyword .neqv. brightred/orange
45     keyword .not. brightred/orange
46     keyword .or. brightred/orange
47     keyword .true. brightred/orange
48     keyword whole lge brightred/orange
49     keyword whole lgt brightred/orange
50     keyword whole lle brightred/orange
51     keyword whole llt brightred/orange
53 # declarations
54     keyword whole ALLOCATABLE brightcyan
55     keyword whole BLOCK brightcyan
56     keyword whole CHARACTER brightcyan
57     keyword whole COMMON brightcyan
58     keyword whole COMPLEX brightcyan
59     keyword whole DATA brightcyan
60     keyword whole DIMENSION brightcyan
61     keyword whole DOUBLE brightcyan
62     keyword whole EXTERNAL brightcyan
63     keyword whole FORMAT brightcyan
64     keyword whole IMPLICIT brightcyan
65     keyword whole INTEGER brightcyan
66     keyword whole INTENT brightcyan
67     keyword whole INTRINSIC brightcyan
68     keyword whole LOGICAL brightcyan
69     keyword whole NONE brightcyan
70     keyword whole ONLY brightcyan
71     keyword whole OPTIONAL brightcyan
72     keyword whole PARAMETER brightcyan
73     keyword whole POINTER brightcyan
74     keyword whole PRECISION brightcyan
75     keyword whole PRIVATE brightcyan
76     keyword whole PUBLIC brightcyan
77     keyword whole REAL brightcyan
78     keyword whole USE brightcyan
80 # general programming syntax
81     keyword whole allocate brightgreen
82     keyword whole assign brightgreen
83     keyword whole call brightgreen
84     keyword whole continue brightgreen
85     keyword whole do brightgreen
86     keyword whole else brightgreen
87     keyword whole elseif brightgreen
88     keyword whole end brightgreen
89     keyword whole enddo brightgreen
90     keyword whole endif brightgreen
91     keyword whole for brightgreen
92     keyword whole goto brightgreen
93     keyword whole if brightgreen
94     keyword whole pause brightgreen
95     keyword whole return brightgreen
96     keyword whole stop brightgreen
97     keyword whole then brightgreen
98     keyword whole to brightgreen
99     keyword whole while brightgreen
101 # headers
102     keyword whole entry brightgreen
104 # I/O functions
105 # may have optional equal signs after them: 'keyword ='
106     keyword whole access brightmagenta
107     keyword whole backspace brightmagenta
108     keyword whole blank brightmagenta
109     keyword whole close brightmagenta
110     keyword whole direct brightmagenta
111     keyword whole endfile brightmagenta
112     keyword whole err brightmagenta
113     keyword whole exist brightmagenta
114     keyword whole file brightmagenta
115     keyword whole fmt brightmagenta
116     keyword whole form brightmagenta
117     keyword whole formatted brightmagenta
118     keyword whole inquire brightmagenta
119     keyword whole iostat brightmagenta
120     keyword whole name brightmagenta
121     keyword whole named brightmagenta
122     keyword whole nextrec brightmagenta
123     keyword whole number brightmagenta
124     keyword whole open brightmagenta
125     keyword whole opened brightmagenta
126     keyword whole print brightmagenta
127     keyword whole read brightmagenta
128     keyword whole rec brightmagenta
129     keyword whole recl brightmagenta
130     keyword whole rewind brightmagenta
131     keyword whole sequential brightmagenta
132     keyword whole status brightmagenta
133     keyword whole unformatted brightmagenta
134     keyword whole unit brightmagenta
135     keyword whole write brightmagenta
137 # mathematical functions
138     keyword whole abs yellow
139     keyword whole acos yellow
140     keyword whole aimag yellow
141     keyword whole aint yellow
142     keyword whole alog yellow
143     keyword whole alog10 yellow
144     keyword whole amax0 yellow
145     keyword whole amax1 yellow
146     keyword whole amin0 yellow
147     keyword whole amin1 yellow
148     keyword whole amod yellow
149     keyword whole anint yellow
150     keyword whole aprime yellow
151     keyword whole asin yellow
152     keyword whole atan yellow
153     keyword whole atan2 yellow
154     keyword whole acos yellow
155     keyword whole cabs yellow
156     keyword whole cexp yellow
157     keyword whole char yellow
158     keyword whole clog yellow
159     keyword whole cmplx yellow
160     keyword whole conjg yellow
161     keyword whole cos yellow
162     keyword whole cosh yellow
163     keyword whole ccos yellow
164     keyword whole csin yellow
165     keyword whole csqrt yellow
166     keyword whole dabs yellow
167     keyword whole dacos yellow
168     keyword whole dasin yellow
169     keyword whole datan yellow
170     keyword whole datan2 yellow
171     keyword whole dble yellow
172     keyword whole dcos yellow
173     keyword whole dcosh yellow
174     keyword whole dfloat yellow
175     keyword whole ddmim yellow
176     keyword whole dexp yellow
177     keyword whole dim yellow
178     keyword whole dint yellow
179     keyword whole dlog yellow
180     keyword whole dlog10 yellow
181     keyword whole dmax1 yellow
182     keyword whole dmin1 yellow
183     keyword whole dmod yellow
184     keyword whole dnint yellow
185     keyword whole dsign yellow
186     keyword whole dsin yellow
187     keyword whole dsinh yellow
188     keyword whole dsqrt yellow
189     keyword whole dtan yellow
190     keyword whole dtanh yellow
191     keyword whole equivalence yellow
192     keyword whole exp yellow
193     keyword whole float yellow
194     keyword whole iabs yellow
195     keyword whole ichar yellow
196     keyword whole idim yellow
197     keyword whole idint yellow
198     keyword whole ifix yellow
199     keyword whole index yellow
200     keyword whole int yellow
201     keyword whole isign yellow
202     keyword whole len yellow
203     keyword whole log yellow
204     keyword whole log10 yellow
205     keyword whole max yellow
206     keyword whole max0 yellow
207     keyword whole max1 yellow
208     keyword whole min yellow
209     keyword whole min0 yellow
210     keyword whole min1 yellow
211     keyword whole mod yellow
212     keyword whole rand yellow
213     keyword whole sign yellow
214     keyword whole sin yellow
215     keyword whole sinh yellow
216     keyword whole sngl yellow
217     keyword whole sqrt yellow
218     keyword whole tan yellow
219     keyword whole tanh yellow
221 # operators and syntax elements
222     keyword ( brightcyan
223     keyword ) brightcyan
224     keyword : brightcyan
225     keyword , brightcyan
226     keyword \+ yellow
227     keyword - yellow
228     keyword \* yellow
229     keyword / yellow
230     keyword = yellow
231     keyword < yellow
232     keyword > yellow
234 # comments and quotes
235     keyword '*' green
237 context &\n & black cyan
239 context format( ) green
241 context ! \n brown
242    spellcheck