annotate runtime/syntax/fortran.vim @ 2777:30bcf93b3521

Added tag v7-3-164 for changeset cdefcbb70e8c
author Bram Moolenaar <bram@vim.org>
date Thu, 28 Apr 2011 13:02:09 +0200
parents 878562053ba3
children 91e53bcb7946
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: Fortran95 (and Fortran90, Fortran77, F and elf90)
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
3 " Version: 0.89
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
4 " Last Change: 2010 July 21
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " Maintainer: Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
6 " Usage: For instructions, do :help fortran-syntax from Vim
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 " Credits:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 " Version 0.1 was based on the fortran 77 syntax file by Mario Eusebio and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 " Preben Guldberg. Useful suggestions were made by: Andrej Panjkov,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 " Bram Moolenaar, Thomas Olsen, Michael Sternberg, Christian Reile,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 " Walter Dieudonné, Alexander Wagner, Roman Bertle, Charles Rendleman,
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
12 " Andrew Griffiths, Joe Krahn, and Hendrik Merx.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 " For version 5.x: Clear all syntax items
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 " For version 6.x: Quit if a syntax file is already loaded
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 if version < 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 syntax clear
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 elseif exists("b:current_syntax")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 " let b:fortran_dialect = fortran_dialect if set correctly by user
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 if exists("fortran_dialect")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 if fortran_dialect =~ '\<\(f\(9[05]\|77\)\|elf\|F\)\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 let b:fortran_dialect = matchstr(fortran_dialect,'\<\(f\(9[05]\|77\)\|elf\|F\)\>')
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 echohl WarningMsg | echo "Unknown value of fortran_dialect" | echohl None
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 let b:fortran_dialect = "unknown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 let b:fortran_dialect = "unknown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34 " fortran_dialect not set or set incorrectly by user,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 if b:fortran_dialect == "unknown"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 " set b:fortran_dialect from directive in first three lines of file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 let b:fortran_retype = getline(1)." ".getline(2)." ".getline(3)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 if b:fortran_retype =~ '\<fortran_dialect\s*=\s*F\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39 let b:fortran_dialect = "F"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 elseif b:fortran_retype =~ '\<fortran_dialect\s*=\s*elf\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41 let b:fortran_dialect = "elf"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 elseif b:fortran_retype =~ '\<fortran_dialect\s*=\s*f90\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 let b:fortran_dialect = "f90"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44 elseif b:fortran_retype =~ '\<fortran_dialect\s*=\s*f95\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 let b:fortran_dialect = "f95"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 elseif b:fortran_retype =~ '\<fortran_dialect\s*=\s*f77\>'
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47 let b:fortran_dialect = "f77"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 " no directive found, so assume f95
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 let b:fortran_dialect = "f95"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 unlet b:fortran_retype
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55 " Choose between fixed and free source form if this hasn't been done yet
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 if !exists("b:fortran_fixed_source")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57 if b:fortran_dialect == "elf" || b:fortran_dialect == "F"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 " elf and F require free source form
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 let b:fortran_fixed_source = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 elseif b:fortran_dialect == "f77"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 " f77 requires fixed source form
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62 let b:fortran_fixed_source = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 elseif exists("fortran_free_source")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 " User guarantees free source form for all f90 and f95 files
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65 let b:fortran_fixed_source = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 elseif exists("fortran_fixed_source")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67 " User guarantees fixed source form for all f90 and f95 files
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 let b:fortran_fixed_source = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 " f90 and f95 allow both fixed and free source form.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 " Assume fixed source form unless signs of free source form
2377
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
72 " are detected in the first five columns of the first s:lmax lines.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73 " Detection becomes more accurate and time-consuming if more lines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 " are checked. Increase the limit below if you keep lots of comments at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75 " the very top of each file and you have a fast computer.
2377
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
76 let s:lmax = 500
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
77 if ( s:lmax > line("$") )
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
78 let s:lmax = line("$")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 let b:fortran_fixed_source = 1
2377
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
81 let s:ln=1
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
82 while s:ln <= s:lmax
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
83 let s:test = strpart(getline(s:ln),0,5)
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
84 if s:test !~ '^[Cc*]' && s:test !~ '^ *[!#]' && s:test =~ '[^ 0-9\t]' && s:test !~ '^[ 0-9]*\t'
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 let b:fortran_fixed_source = 0
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 break
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 endif
2377
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
88 let s:ln = s:ln + 1
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89 endwhile
2377
878562053ba3 Update Fortran indent and syntax file. (Ajit Thakkar)
Bram Moolenaar <bram@vim.org>
parents: 2370
diff changeset
90 unlet! s:lmax s:ln s:test
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
91 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
92 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
93
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
94 syn case ignore
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
95
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
96 if b:fortran_dialect !=? "f77"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 if version >= 600
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98 if b:fortran_fixed_source == 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 syn match fortranConstructName "^\s\{6,}\zs\a\w*\ze\s*:"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 syn match fortranConstructName "^\s*\zs\a\w*\ze\s*:"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 if exists("fortran_more_precise")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 syn match fortranConstructName "\(\<end\s*do\s\+\)\@<=\a\w*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105 syn match fortranConstructName "\(\<end\s*if\s\+\)\@<=\a\w*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 syn match fortranConstructName "\(\<end\s*select\s\+\)\@<=\a\w*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 if b:fortran_fixed_source == 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 syn match fortranConstructName "^\s\{6,}\a\w*\s*:"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 syn match fortranConstructName "^\s*\a\w*\s*:"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117 syn match fortranUnitHeader "\<end\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
119 syn match fortranType "\<character\>"
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
120 syn match fortranType "\<complex\>"
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
121 syn match fortranType "\<integer\>"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 syn keyword fortranType intrinsic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 syn match fortranType "\<implicit\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 syn keyword fortranStructure dimension
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 syn keyword fortranStorageClass parameter save
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126 syn match fortranUnitHeader "\<subroutine\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 syn keyword fortranCall call
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128 syn match fortranUnitHeader "\<function\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 syn match fortranUnitHeader "\<program\>"
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
130 syn keyword fortranKeyword return stop
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 syn keyword fortranConditional else then
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 syn match fortranConditional "\<if\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 syn match fortranRepeat "\<do\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 syn keyword fortranTodo contained todo fixme
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 "Catch errors caused by too many right parentheses
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
138 syn region fortranParen transparent start="(" end=")" contains=ALLBUT,fortranParenError,@fortranCommentGroup,cIncluded,@spell
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 syn match fortranParenError ")"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 syn match fortranOperator "\.\s*n\=eqv\s*\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142 syn match fortranOperator "\.\s*\(and\|or\|not\)\s*\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 syn match fortranOperator "\(+\|-\|/\|\*\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145 syn match fortranBoolean "\.\s*\(true\|false\)\s*\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
147 syn keyword fortranReadWrite backspace close endfile inquire open print read rewind write
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 "If tabs are allowed then the left margin checks do not work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 if exists("fortran_have_tabs")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 syn match fortranTab "\t" transparent
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 syn match fortranTab "\t"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
156 syn keyword fortranIO access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
158 syn keyword fortran66Intrinsic alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 " Intrinsics provided by some vendors
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
161 syn keyword fortranExtraIntrinsic algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama erf erfc gamma iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
163 syn keyword fortran77Intrinsic abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 syn match fortran77Intrinsic "\<len\s*[(,]"me=s+3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 syn match fortran77Intrinsic "\<real\s*("me=s+4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 syn match fortranType "\<implicit\s\+real"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 syn match fortranType "^\s*real\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168 syn match fortran90Intrinsic "\<logical\s*("me=s+7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 syn match fortranType "\<implicit\s\+logical"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 syn match fortranType "^\s*logical\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172 "Numbers of various sorts
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 " Integers
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 syn match fortranNumber display "\<\d\+\(_\a\w*\)\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 " floating point number, without a decimal point
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 syn match fortranFloatNoDec display "\<\d\+[deq][-+]\=\d\+\(_\a\w*\)\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 " floating point number, starting with a decimal point
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 syn match fortranFloatIniDec display "\.\d\+\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 " floating point number, no digits after decimal
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 syn match fortranFloatEndDec display "\<\d\+\.\([deq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 " floating point number, D or Q exponents
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 syn match fortranFloatDExp display "\<\d\+\.\d\+\([dq][-+]\=\d\+\)\=\(_\a\w*\)\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183 " floating point number
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 syn match fortranFloat display "\<\d\+\.\d\+\(e[-+]\=\d\+\)\=\(_\a\w*\)\=\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 " Numbers in formats
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 syn match fortranFormatSpec display "\d*f\d\+\.\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 syn match fortranFormatSpec display "\d*e[sn]\=\d\+\.\d\+\(e\d+\>\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 syn match fortranFormatSpec display "\d*\(d\|q\|g\)\d\+\.\d\+\(e\d+\)\="
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 syn match fortranFormatSpec display "\d\+x\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 " The next match cannot be used because it would pick up identifiers as well
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191 " syn match fortranFormatSpec display "\<\(a\|i\)\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
193 " Numbers as labels
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
194 syn match fortranLabelNumber display "^\d\{1,5}\s"me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
195 syn match fortranLabelNumber display "^ \d\{1,4}\s"ms=s+1,me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 syn match fortranLabelNumber display "^ \d\{1,3}\s"ms=s+2,me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197 syn match fortranLabelNumber display "^ \d\d\=\s"ms=s+3,me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 syn match fortranLabelNumber display "^ \d\s"ms=s+4,me=e-1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 if version >= 600 && exists("fortran_more_precise")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
201 " Numbers as targets
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 syn match fortranTarget display "\(\<if\s*(.\+)\s*\)\@<=\(\d\+\s*,\s*\)\{2}\d\+\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203 syn match fortranTarget display "\(\<do\s\+\)\@<=\d\+\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 syn match fortranTarget display "\(\<go\s*to\s*(\=\)\@<=\(\d\+\s*,\s*\)*\d\+\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 syn keyword fortranTypeEx external
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208 syn keyword fortranIOEx format
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
209 syn match fortranKeywordEx "\<continue\>"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
210 syn match fortranKeyword "^\s*\d\+\s\+continue\>"
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
211 syn match fortranKeywordEx "\<go\s*to\>"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 syn region fortranStringEx start=+'+ end=+'+ contains=fortranContinueMark,fortranLeftMargin,fortranSerialNumber
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 syn keyword fortran77IntrinsicEx dim lge lgt lle llt mod
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
214 syn keyword fortranKeywordOb assign pause to
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 if b:fortran_dialect != "f77"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
218 syn match fortranType "\<type\>"
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
219 syn keyword fortranType none
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 syn keyword fortranStructure private public intent optional
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 syn keyword fortranStructure pointer target allocatable
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223 syn keyword fortranStorageClass in out
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 syn match fortranStorageClass "\<kind\s*="me=s+4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 syn match fortranStorageClass "\<len\s*="me=s+3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 syn match fortranUnitHeader "\<module\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228 syn keyword fortranUnitHeader use only contains
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 syn keyword fortranUnitHeader result operator assignment
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 syn match fortranUnitHeader "\<interface\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231 syn match fortranUnitHeader "\<recursive\>"
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
232 syn keyword fortranKeyword allocate deallocate nullify cycle exit
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 syn match fortranConditional "\<select\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234 syn keyword fortranConditional case default where elsewhere
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 syn match fortranOperator "\(\(>\|<\)=\=\|==\|/=\|=\)"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 syn match fortranOperator "=>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 syn region fortranString start=+"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 syn keyword fortranIO pad position action delim readwrite
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 syn keyword fortranIO eor advance nml
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
243 syn keyword fortran90Intrinsic adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack precision present product radix random_number random_seed range repeat reshape rrspacing
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
244 syn keyword fortran90Intrinsic scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 syn match fortran90Intrinsic "\<not\>\(\s*\.\)\@!"me=s+3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246 syn match fortran90Intrinsic "\<kind\>\s*[(,]"me=s+4
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 syn match fortranUnitHeader "\<end\s*function"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 syn match fortranUnitHeader "\<end\s*interface"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 syn match fortranUnitHeader "\<end\s*module"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 syn match fortranUnitHeader "\<end\s*program"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 syn match fortranUnitHeader "\<end\s*subroutine"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 syn match fortranRepeat "\<end\s*do"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 syn match fortranConditional "\<end\s*where"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 syn match fortranConditional "\<select\s*case"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 syn match fortranConditional "\<end\s*select"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 syn match fortranType "\<end\s*type"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258 syn match fortranType "\<in\s*out"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
259
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
260 syn keyword fortranUnitHeaderEx procedure
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
261 syn keyword fortranIOEx namelist
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
262 syn keyword fortranConditionalEx while
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
263 syn keyword fortran90IntrinsicEx achar iachar transfer
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
264
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
265 syn keyword fortranInclude include
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
266 syn keyword fortran90StorageClassR sequence
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
267 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
268
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269 syn match fortranConditional "\<end\s*if"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 syn match fortranIO contains=fortranOperator "\<e\(nd\|rr\)\s*=\s*\d\+"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 syn match fortranConditional "\<else\s*if"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 syn keyword fortranUnitHeaderR entry
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 syn match fortranTypeR display "double\s\+precision"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 syn match fortranTypeR display "double\s\+complex"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 syn match fortranUnitHeaderR display "block\s\+data"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 syn keyword fortranStorageClassR common equivalence data
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 syn keyword fortran77IntrinsicR dble dprod
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 syn match fortran77OperatorR "\.\s*[gl][et]\s*\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280 syn match fortran77OperatorR "\.\s*\(eq\|ne\)\s*\."
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281
840
2c885fab04e3 updated for version 7.0e06
vimboss
parents: 819
diff changeset
282 if b:fortran_dialect == "f95" || b:fortran_dialect == "F"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 syn keyword fortranRepeat forall
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 syn match fortranRepeat "\<end\s*forall"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 syn keyword fortran95Intrinsic null cpu_time
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 syn match fortranType "\<elemental\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 syn match fortranType "\<pure\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 if exists("fortran_more_precise")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 syn match fortranConstructName "\(\<end\s*forall\s\+\)\@<=\a\w*\>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
291 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
293 if b:fortran_dialect == "f95"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
294 " F2003
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
295 syn keyword fortran03Intrinsic command_argument_count get_command get_command_argument get_environment_variable is_iostat_end is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
296 " ISO_C_binding
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
297 syn keyword fortran03Constant c_null_char c_alert c_backspace c_form_feed c_new_line c_carriage_return c_horizontal_tab c_vertical_tab
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
298 syn keyword fortran03Constant c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
299 syn keyword fortran03Intrinsic iso_c_binding c_loc c_funloc c_associated c_f_pointer c_f_procpointer
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
300 syn keyword fortran03Type c_ptr c_funptr
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
301 " ISO_Fortran_env
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
302 syn keyword fortran03Constant iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
303 " IEEE_arithmetic
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
304 syn keyword fortran03Intrinsic ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
305
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
306 syn keyword fortran03ReadWrite flush wait
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
307 syn keyword fortran03IO decimal round iomsg
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
308 syn keyword fortran03Type asynchronous nopass non_overridable pass protected volatile abstract extends import
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
309 syn keyword fortran03Type non_intrinsic value bind deferred generic final enumerator class
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
310 syn match fortran03Type "\<associate\>"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
311 syn match fortran03Type "\<end\s*associate"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
312 syn match fortran03Type "\<enum\s*,\s*bind\s*(\s*c\s*)"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
313 syn match fortran03Type "\<end\s*enum"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
314 syn match fortran03Conditional "\<select\s*type"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
315 syn match fortran03Conditional "\<type\s*is\>"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
316 syn match fortran03UnitHeader "\<abstract\s*interface\>"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
317 syn match fortran03Operator "\([\|]\)"
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
318
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
319 " F2008
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
320 syn keyword fortran08Intrinsic acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
321 syn keyword fortran08Intrinsic atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
322 syn keyword fortran08Intrinsic bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
323 syn keyword fortran08IO newunit
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
324 syn keyword fortran08Type contiguous
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
325 endif
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
326
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 syn cluster fortranCommentGroup contains=fortranTodo
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329 if (b:fortran_fixed_source == 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
330 if !exists("fortran_have_tabs")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
331 "Flag items beyond column 72
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 syn match fortranSerialNumber excludenl "^.\{73,}$"lc=72
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
333 "Flag left margin errors
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 syn match fortranLabelError "^.\{-,4}[^0-9 ]" contains=fortranTab
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335 syn match fortranLabelError "^.\{4}\d\S"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 endif
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 840
diff changeset
337 syn match fortranComment excludenl "^[!c*].*$" contains=@fortranCommentGroup,@spell
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
338 syn match fortranLeftMargin transparent "^ \{5}"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
339 syn match fortranContinueMark display "^.\{5}\S"lc=5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
340 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
341 syn match fortranContinueMark display "&"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
342 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
343
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
344 if b:fortran_dialect != "f77"
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
345 syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
346 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
347
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
348 "cpp is often used with Fortran
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
349 syn match cPreProc "^\s*#\s*\(define\|ifdef\)\>.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
350 syn match cPreProc "^\s*#\s*\(elif\|if\)\>.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
351 syn match cPreProc "^\s*#\s*\(ifndef\|undef\)\>.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
352 syn match cPreCondit "^\s*#\s*\(else\|endif\)\>.*"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
353 syn region cIncluded contained start=+"[^(]+ skip=+\\\\\|\\"+ end=+"+ contains=fortranLeftMargin,fortranContinueMark,fortranSerialNumber
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
354 syn match cIncluded contained "<[^>]*>"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
355 syn match cInclude "^\s*#\s*include\>\s*["<]" contains=cIncluded
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
356
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
357 "Synchronising limits assume that comment and continuation lines are not mixed
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
358 if exists("fortran_fold") || exists("fortran_more_precise")
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
359 syn sync fromstart
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
360 elseif (b:fortran_fixed_source == 0)
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
361 syn sync linecont "&" minlines=30
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
362 else
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
363 syn sync minlines=30
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
364 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
365
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
366 if version >= 600 && exists("fortran_fold")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
367
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
368 if (b:fortran_fixed_source == 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
369 syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
370 syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
371 syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
372 syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
373 syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
374 syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
375 syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\)\)\=\s*::" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
376 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
377 syn region fortranProgram transparent fold keepend start="^\s*program\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(program\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranModule
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
378 syn region fortranModule transparent fold keepend start="^\s*module\s\+\(procedure\)\@!\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\(module\(\s\+\z1\>\)\=\|$\)" contains=ALLBUT,fortranProgram
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
379 syn region fortranFunction transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*\(\(\(real \|integer \|logical \|complex \|double \s*precision \)\s*\((\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\|type\s\+(\s*\w\+\s*) \|character \((\(\s*len\s*=\)\=\s*\d\+\s*)\|(\(\s*kind\s*=\)\=\s*\w\+\s*)\)\=\)\=\s*function\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|function\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
380 syn region fortranSubroutine transparent fold keepend extend start="^\s*\(elemental \|pure \|recursive \)\=\s*subroutine\s\+\z(\a\w*\)" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|subroutine\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
381 syn region fortranBlockData transparent fold keepend start="\<block\s*data\(\s\+\z(\a\w*\)\)\=" skip="^\s*[!#].*$" excludenl end="\<end\s*\($\|block\s*data\(\s\+\z1\>\)\=\)" contains=ALLBUT,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
382 syn region fortranInterface transparent fold keepend extend start="^\s*interface\>" skip="^\s*[!#].*$" excludenl end="\<end\s*interface\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
383 syn region fortranTypeDef transparent fold keepend extend start="^\s*type\s*\(,\s*\(public\|private\)\)\=\s*::" skip="^\s*[!#].*$" excludenl end="\<end\s*type\>" contains=ALLBUT,fortranProgram,fortranModule,fortran77Loop,fortranCase,fortran90Loop,fortranIfBlock
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
384 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
385
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
386 if exists("fortran_fold_conditionals")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
387 if (b:fortran_fixed_source == 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
388 syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
389 syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\([!c*]\|\s*#\).*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
390 syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
391 syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\([!c*]\|\s*#\).*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
392 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
393 syn region fortran77Loop transparent fold keepend start="\<do\s\+\z(\d\+\)" end="^\s*\z1\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
394 syn region fortran90Loop transparent fold keepend extend start="\(\<end\s\+\)\@<!\<do\(\s\+\a\|\s*$\)" skip="^\s*[!#].*$" excludenl end="\<end\s*do\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
395 syn region fortranIfBlock transparent fold keepend extend start="\(\<e\(nd\|lse\)\s\+\)\@<!\<if\s*(.\+)\s*then\>" skip="^\s*[!#].*$" end="\<end\s*if\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
396 syn region fortranCase transparent fold keepend extend start="\<select\s*case\>" skip="^\s*[!#].*$" end="\<end\s*select\>" contains=ALLBUT,fortranUnitHeader,fortranStructure,fortranStorageClass,fortranType,fortranProgram,fortranModule,fortranSubroutine,fortranFunction,fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
397 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
398 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
399
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
400 if exists("fortran_fold_multilinecomments")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
401 if (b:fortran_fixed_source == 1)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
402 syn match fortranMultiLineComments transparent fold "\(^[!c*].*\(\n\|\%$\)\)\{4,}" contains=ALLBUT,fortranMultiCommentLines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
403 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
404 syn match fortranMultiLineComments transparent fold "\(^\s*!.*\(\n\|\%$\)\)\{4,}" contains=ALLBUT,fortranMultiCommentLines
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
405 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
406 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
407 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
408
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
409 " Define the default highlighting.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
410 " For version 5.7 and earlier: only when not done already
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
411 " For version 5.8 and later: only when an item doesn't have highlighting yet
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
412 if version >= 508 || !exists("did_fortran_syn_inits")
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
413 if version < 508
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
414 let did_fortran_syn_inits = 1
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
415 command -nargs=+ HiLink hi link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
416 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
417 command -nargs=+ HiLink hi def link <args>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
418 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
419
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
420 " The default highlighting differs for each dialect.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
421 " Transparent groups:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
422 " fortranParen, fortranLeftMargin
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
423 " fortranProgram, fortranModule, fortranSubroutine, fortranFunction,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
424 " fortranBlockData
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
425 " fortran77Loop, fortran90Loop, fortranIfBlock, fortranCase
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
426 " fortranMultiCommentLines
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
427 HiLink fortranKeyword Keyword
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
428 HiLink fortranConstructName Identifier
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
429 HiLink fortran03Conditional fortranConditional
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
430 HiLink fortranConditional Conditional
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
431 HiLink fortranRepeat Repeat
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
432 HiLink fortranTodo Todo
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
433 if (b:fortran_fixed_source == 1)
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
434 HiLink fortranContinueMark Todo
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
435 else
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
436 HiLink fortranContinueMark Keyword
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
437 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
438 HiLink fortranString String
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
439 HiLink fortranNumber Number
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
440 HiLink fortran03Operator fortranOperator
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
441 HiLink fortranOperator Operator
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
442 HiLink fortranBoolean Boolean
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
443 HiLink fortranLabelError Error
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
444 HiLink fortranObsolete Todo
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
445 HiLink fortran03Type fortranType
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
446 HiLink fortran08Type fortranType
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
447 HiLink fortranType Type
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
448 HiLink fortranStructure Type
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
449 HiLink fortranStorageClass StorageClass
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
450 HiLink fortranCall Function
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
451 HiLink fortran03UnitHeader fortranUnitHeader
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
452 HiLink fortranUnitHeader fortranPreCondit
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
453 HiLink fortran03ReadWrite fortranReadWrite
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
454 HiLink fortranReadWrite Keyword
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
455 HiLink fortran03IO fortranIO
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
456 HiLink fortran08IO fortranIO
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
457 HiLink fortranIO Keyword
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
458 HiLink fortran95Intrinsic fortran90Intrinsic
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
459 HiLink fortran77Intrinsic fortran90Intrinsic
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
460 HiLink fortran90Intrinsic Function
2370
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
461 HiLink fortran03Intrinsic Function
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
462 HiLink fortran08Intrinsic Function
454f314d0e61 Make it possible to load Perl dynamically on Unix. (James Vega)
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
463 HiLink fortran03Constant Function
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
464
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
465 if ( b:fortran_dialect == "elf" || b:fortran_dialect == "F" )
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
466 HiLink fortranKeywordOb fortranObsolete
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
467 HiLink fortran66Intrinsic fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
468 HiLink fortran77IntrinsicR fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
469 HiLink fortranUnitHeaderR fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
470 HiLink fortranTypeR fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
471 HiLink fortranStorageClassR fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
472 HiLink fortran90StorageClassR fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
473 HiLink fortran77OperatorR fortranObsolete
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
474 HiLink fortranInclude fortranObsolete
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
475 else
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
476 HiLink fortranKeywordOb fortranKeyword
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
477 HiLink fortran66Intrinsic fortran90Intrinsic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
478 HiLink fortran77IntrinsicR fortran90Intrinsic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
479 HiLink fortranUnitHeaderR fortranPreCondit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
480 HiLink fortranTypeR fortranType
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
481 HiLink fortranStorageClassR fortranStorageClass
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
482 HiLink fortran77OperatorR fortranOperator
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
483 HiLink fortranInclude Include
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
484 HiLink fortran90StorageClassR fortranStorageClass
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
485 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
486
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
487 if ( b:fortran_dialect == "F" )
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
488 HiLink fortranLabelNumber fortranObsolete
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
489 HiLink fortranTarget fortranObsolete
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
490 HiLink fortranFormatSpec fortranObsolete
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
491 HiLink fortranFloatDExp fortranObsolete
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
492 HiLink fortranFloatNoDec fortranObsolete
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
493 HiLink fortranFloatIniDec fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
494 HiLink fortranFloatEndDec fortranObsolete
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
495 HiLink fortranTypeEx fortranObsolete
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
496 HiLink fortranIOEx fortranObsolete
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
497 HiLink fortranKeywordEx fortranObsolete
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
498 HiLink fortranStringEx fortranObsolete
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
499 HiLink fortran77IntrinsicEx fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
500 HiLink fortranUnitHeaderEx fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
501 HiLink fortranConditionalEx fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
502 HiLink fortran90IntrinsicEx fortranObsolete
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
503 else
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
504 HiLink fortranLabelNumber Special
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
505 HiLink fortranTarget Special
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
506 HiLink fortranFormatSpec Identifier
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
507 HiLink fortranFloatDExp fortranFloat
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
508 HiLink fortranFloatNoDec fortranFloat
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
509 HiLink fortranFloatIniDec fortranFloat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
510 HiLink fortranFloatEndDec fortranFloat
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
511 HiLink fortranTypeEx fortranType
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
512 HiLink fortranIOEx fortranIO
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
513 HiLink fortranKeywordEx fortranKeyword
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
514 HiLink fortranStringEx fortranString
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
515 HiLink fortran77IntrinsicEx fortran90Intrinsic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
516 HiLink fortranUnitHeaderEx fortranUnitHeader
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
517 HiLink fortranConditionalEx fortranConditional
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
518 HiLink fortran90IntrinsicEx fortran90Intrinsic
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
519 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
520
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
521 HiLink fortranFloat Float
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
522 HiLink fortranPreCondit PreCondit
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
523 HiLink fortranInclude Include
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
524 HiLink cIncluded fortranString
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
525 HiLink cInclude Include
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
526 HiLink cPreProc PreProc
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
527 HiLink cPreCondit PreCondit
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
528 HiLink fortranParenError Error
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
529 HiLink fortranComment Comment
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
530 HiLink fortranSerialNumber Todo
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
531 HiLink fortranTab Error
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
532 " Vendor extensions
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 7
diff changeset
533 HiLink fortranExtraIntrinsic Function
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
534
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
535 delcommand HiLink
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
536 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
537
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
538 let b:current_syntax = "fortran"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
539
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
540 " vim: ts=8 tw=132