Ticket #214: f90.syntax

File f90.syntax, 9.3 KB (added by NNemec, 10 years ago)

git patch for f90 syntax

Line 
1Fortran 90/95 freeform syntax.
2
3From:  <>
4
5
6---
7
8 syntax/Makefile.am |   11 +-
9 syntax/Syntax      |    3 +
10 syntax/f90.syntax  |  240 ++++++++++++++++++++++++++++++++++++++++++++++++++++
11 3 files changed, 249 insertions(+), 5 deletions(-)
12 create mode 100644 syntax/f90.syntax
13
14
15diff --git a/syntax/Makefile.am b/syntax/Makefile.am
16index c6500b9..82114bf 100644
17--- a/syntax/Makefile.am
18+++ b/syntax/Makefile.am
19@@ -6,18 +6,19 @@ SYNTAXFILES =                 \
20        assembler.syntax        \
21        c.syntax                \
22        changelog.syntax        \
23-       debian-changelog.syntax \
24-       debian-control.syntax   \
25+       debian-changelog.syntax \
26+       debian-control.syntax   \
27        debian-description.syntax \
28-       debian-sources-list.syntax \
29+       debian-sources-list.syntax \
30        cs.syntax               \
31        css.syntax              \
32-  cxx.syntax      \
33+       cxx.syntax              \
34        d.syntax                \
35        diff.syntax             \
36        dos.syntax              \
37        ebuild.syntax           \
38        eiffel.syntax           \
39+       f90.syntax              \
40        fortran.syntax          \
41        haskell.syntax          \
42        html.syntax             \
43@@ -40,7 +41,7 @@ SYNTAXFILES =                 \
44        php.syntax              \
45        po.syntax               \
46        povray.syntax           \
47-       procmail.syntax \
48+       procmail.syntax         \
49        python.syntax           \
50        ruby.syntax             \
51        sh.syntax               \
52diff --git a/syntax/Syntax b/syntax/Syntax
53index 4487aed..f2394b8 100644
54--- a/syntax/Syntax
55+++ b/syntax/Syntax
56@@ -88,6 +88,9 @@ include d.syntax
57 file ..\*\\.[fF]$ Fortran\sProgram
58 include fortran.syntax
59 
60+file ..\*\\.[fF]9[05]$ Freeform\sFortran\sProgram
61+include f90.syntax
62+
63 file ..\*\\.i$ SWIG\sSource
64 include swig.syntax
65 
66diff --git a/syntax/f90.syntax b/syntax/f90.syntax
67new file mode 100644
68index 0000000..b9248c0
69--- /dev/null
70+++ b/syntax/f90.syntax
71@@ -0,0 +1,240 @@
72+# ---------------------------------------------------
73+# f90.syntax
74+# FORTRAN 90/95 language freeform syntax highlighting template.
75+# Provides syntax highlighting rules for the
76+# FORTRAN programming language.
77+#
78+# Based on FORTRAN77 version fortran.syntax
79+# Author: John Theal
80+# Email: jtheal@renegadelinuxbox.dhs.org
81+# December 7, 1999
82+# ---------------------------------------------------
83+
84+# Heavily modified by Paul Sheer <psheer@obsidian.co.za>.
85+# Adjusted to Fortran 90 by Norbert Nemec <Norbert@Nemec-online.de>.
86+
87+context default
88+# keywords at the beginning of line
89+    keyword linestart \{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\} brightred
90+    keyword linestart \{0123456789\}\{0123456789\}\{0123456789\}\{0123456789\} brightred
91+    keyword linestart \{0123456789\}\{0123456789\}\{0123456789\} brightred
92+    keyword linestart \{0123456789\}\{0123456789\} brightred
93+    keyword linestart \{0123456789\} brightred
94+
95+# structure
96+    keyword whole MODULE white black
97+    keyword whole SUBROUTINE white black
98+    keyword whole PROGRAM white black
99+    keyword whole FUNCTION white black
100+    keyword whole CONTAINS white black
101+    keyword whole END white black
102+
103+# boolean and logical expressions / operators
104+    keyword .and. brightred/orange
105+    keyword .eq. brightred/orange
106+    keyword .eqv. brightred/orange
107+    keyword .false. brightred/orange
108+    keyword .ge. brightred/orange
109+    keyword .gt. brightred/orange
110+    keyword .le. brightred/orange
111+    keyword .lt. brightred/orange
112+    keyword .ne. brightred/orange
113+    keyword .neqv. brightred/orange
114+    keyword .not. brightred/orange
115+    keyword .or. brightred/orange
116+    keyword .true. brightred/orange
117+    keyword whole lge brightred/orange
118+    keyword whole lgt brightred/orange
119+    keyword whole lle brightred/orange
120+    keyword whole llt brightred/orange
121+
122+# declarations
123+    keyword whole ALLOCATABLE brightcyan
124+    keyword whole BLOCK brightcyan
125+    keyword whole CHARACTER brightcyan
126+    keyword whole COMMON brightcyan
127+    keyword whole COMPLEX brightcyan
128+    keyword whole DATA brightcyan
129+    keyword whole DIMENSION brightcyan
130+    keyword whole DOUBLE brightcyan
131+    keyword whole EXTERNAL brightcyan
132+    keyword whole FORMAT brightcyan
133+    keyword whole IMPLICIT brightcyan
134+    keyword whole INTEGER brightcyan
135+    keyword whole INTENT brightcyan
136+    keyword whole INTRINSIC brightcyan
137+    keyword whole LOGICAL brightcyan
138+    keyword whole NONE brightcyan
139+    keyword whole ONLY brightcyan
140+    keyword whole OPTIONAL brightcyan
141+    keyword whole PARAMETER brightcyan
142+    keyword whole POINTER brightcyan
143+    keyword whole PRECISION brightcyan
144+    keyword whole PRIVATE brightcyan
145+    keyword whole PUBLIC brightcyan
146+    keyword whole REAL brightcyan
147+    keyword whole USE brightcyan
148+
149+# general programming syntax
150+    keyword whole allocate brightgreen
151+    keyword whole assign brightgreen
152+    keyword whole call brightgreen
153+    keyword whole continue brightgreen
154+    keyword whole do brightgreen
155+    keyword whole else brightgreen
156+    keyword whole elseif brightgreen
157+    keyword whole end brightgreen
158+    keyword whole enddo brightgreen
159+    keyword whole endif brightgreen
160+    keyword whole for brightgreen
161+    keyword whole goto brightgreen
162+    keyword whole if brightgreen
163+    keyword whole pause brightgreen
164+    keyword whole return brightgreen
165+    keyword whole stop brightgreen
166+    keyword whole then brightgreen
167+    keyword whole to brightgreen
168+    keyword whole while brightgreen   
169+
170+# headers
171+    keyword whole entry brightgreen
172+
173+# I/O functions
174+# may have optional equal signs after them: 'keyword ='
175+    keyword whole access brightmagenta
176+    keyword whole backspace brightmagenta
177+    keyword whole blank brightmagenta
178+    keyword whole close brightmagenta
179+    keyword whole direct brightmagenta
180+    keyword whole endfile brightmagenta
181+    keyword whole err brightmagenta
182+    keyword whole exist brightmagenta
183+    keyword whole file brightmagenta
184+    keyword whole fmt brightmagenta
185+    keyword whole form brightmagenta
186+    keyword whole formatted brightmagenta
187+    keyword whole inquire brightmagenta
188+    keyword whole iostat brightmagenta
189+    keyword whole name brightmagenta
190+    keyword whole named brightmagenta
191+    keyword whole nextrec brightmagenta
192+    keyword whole number brightmagenta
193+    keyword whole open brightmagenta
194+    keyword whole opened brightmagenta
195+    keyword whole print brightmagenta
196+    keyword whole read brightmagenta
197+    keyword whole rec brightmagenta
198+    keyword whole recl brightmagenta
199+    keyword whole rewind brightmagenta
200+    keyword whole sequential brightmagenta
201+    keyword whole status brightmagenta
202+    keyword whole unformatted brightmagenta
203+    keyword whole unit brightmagenta
204+    keyword whole write brightmagenta
205+
206+# mathematical functions
207+    keyword whole abs yellow
208+    keyword whole acos yellow
209+    keyword whole aimag yellow
210+    keyword whole aint yellow
211+    keyword whole alog yellow
212+    keyword whole alog10 yellow
213+    keyword whole amax0 yellow
214+    keyword whole amax1 yellow
215+    keyword whole amin0 yellow
216+    keyword whole amin1 yellow
217+    keyword whole amod yellow
218+    keyword whole anint yellow
219+    keyword whole aprime yellow
220+    keyword whole asin yellow
221+    keyword whole atan yellow
222+    keyword whole atan2 yellow
223+    keyword whole acos yellow
224+    keyword whole cabs yellow
225+    keyword whole cexp yellow
226+    keyword whole char yellow
227+    keyword whole clog yellow
228+    keyword whole cmplx yellow
229+    keyword whole conjg yellow
230+    keyword whole cos yellow
231+    keyword whole cosh yellow
232+    keyword whole ccos yellow
233+    keyword whole csin yellow
234+    keyword whole csqrt yellow
235+    keyword whole dabs yellow
236+    keyword whole dacos yellow
237+    keyword whole dasin yellow
238+    keyword whole datan yellow
239+    keyword whole datan2 yellow
240+    keyword whole dble yellow
241+    keyword whole dcos yellow
242+    keyword whole dcosh yellow
243+    keyword whole dfloat yellow
244+    keyword whole ddmim yellow
245+    keyword whole dexp yellow
246+    keyword whole dim yellow
247+    keyword whole dint yellow
248+    keyword whole dlog yellow
249+    keyword whole dlog10 yellow
250+    keyword whole dmax1 yellow
251+    keyword whole dmin1 yellow
252+    keyword whole dmod yellow
253+    keyword whole dnint yellow
254+    keyword whole dsign yellow
255+    keyword whole dsin yellow
256+    keyword whole dsinh yellow
257+    keyword whole dsqrt yellow
258+    keyword whole dtan yellow
259+    keyword whole dtanh yellow
260+    keyword whole equivalence yellow
261+    keyword whole exp yellow
262+    keyword whole float yellow
263+    keyword whole iabs yellow
264+    keyword whole ichar yellow
265+    keyword whole idim yellow
266+    keyword whole idint yellow
267+    keyword whole ifix yellow
268+    keyword whole index yellow
269+    keyword whole int yellow
270+    keyword whole isign yellow
271+    keyword whole len yellow
272+    keyword whole log yellow
273+    keyword whole log10 yellow
274+    keyword whole max yellow
275+    keyword whole max0 yellow
276+    keyword whole max1 yellow
277+    keyword whole min yellow
278+    keyword whole min0 yellow
279+    keyword whole min1 yellow
280+    keyword whole mod yellow
281+    keyword whole rand yellow
282+    keyword whole sign yellow
283+    keyword whole sin yellow
284+    keyword whole sinh yellow
285+    keyword whole sngl yellow
286+    keyword whole sqrt yellow
287+    keyword whole tan yellow
288+    keyword whole tanh yellow
289+
290+# operators and syntax elements
291+    keyword ( brightcyan
292+    keyword ) brightcyan
293+    keyword : brightcyan
294+    keyword , brightcyan
295+    keyword \+ yellow
296+    keyword - yellow
297+    keyword \* yellow
298+    keyword / yellow
299+    keyword = yellow
300+    keyword < yellow
301+    keyword > yellow
302+
303+# comments and quotes
304+    keyword '*' green
305+
306+context &\n & black cyan
307+
308+context format( ) green
309+
310+context ! \n brown
311+   spellcheck