blob: 20186db1432a32bd47dc131540a10c795201321e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: TAK2, TAK3, TAK2000 thermal modeling input file
3" Maintainer: Adrian Nagle, anagle@ball.com
4" Last Change: 2003 May 11
5" Filenames: *.tak
6" URL: http://www.naglenet.org/vim/syntax/tak.vim
7" MAIN URL: http://www.naglenet.org/vim/
8
9
10
11" For version 5.x: Clear all syntax items
12" For version 6.x: Quit when a syntax file was already loaded
13if version < 600
14 syntax clear
15elseif exists("b:current_syntax")
16 finish
17endif
18
19
20
21" Ignore case
22syn case ignore
23
24
25
26"
27"
28" Begin syntax definitions for tak input file.
29"
30
31" Force free-form fortran format
32let fortran_free_source=1
33
34" Load FORTRAN syntax file
35if version < 600
36 source <sfile>:p:h/fortran.vim
37else
38 runtime! syntax/fortran.vim
39endif
40unlet b:current_syntax
41
42
43
44" Define keywords for TAK and TAKOUT
45syn keyword takOptions AUTODAMP CPRINT CSGDUMP GPRINT HPRINT LODTMP
46syn keyword takOptions LOGIC LPRINT NCVPRINT PLOTQ QPRINT QDUMP
47syn keyword takOptions SUMMARY SOLRTN UID DICTIONARIES
48
49syn keyword takRoutine SSITER FWDWRD FWDBCK BCKWRD
50
51syn keyword takControl ABSZRO BACKUP DAMP DTIMEI DTIMEL DTIMEH IFC
52syn keyword takControl MAXTEMP NLOOPS NLOOPT NODELIST OUTPUT PLOT
53syn keyword takControl SCALE SIGMA SSCRIT TIMEND TIMEN TIMEO TRCRIT
54syn keyword takControl PLOT
55
56syn keyword takSolids PLATE CYL
57syn keyword takSolidsArg ID MATNAM NTYPE TEMP XL YL ZL ISTRN ISTRG NNX
58syn keyword takSolidsArg NNY NNZ INCX INCY INCZ IAK IAC DIFF ARITH BOUN
59syn keyword takSolidsArg RMIN RMAX AXMAX NNR NNTHETA INCR INCTHETA END
60
61syn case ignore
62
63syn keyword takMacro fac pstart pstop
64syn keyword takMacro takcommon fstart fstop
65
66syn keyword takIdentifier flq flx gen ncv per sim siv stf stv tvd tvs
67syn keyword takIdentifier tvt pro thm
68
69
70
71" Define matches for TAK
72syn match takFortran "^F[0-9 ]"me=e-1
73syn match takMotran "^M[0-9 ]"me=e-1
74
75syn match takComment "^C.*$"
76syn match takComment "^R.*$"
77syn match takComment "\$.*$"
78
79syn match takHeader "^header[^,]*"
80
81syn match takIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude
82
83syn match takInteger "-\=\<[0-9]*\>"
84syn match takFloat "-\=\<[0-9]*\.[0-9]*"
85syn match takScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
86
87syn match takEndData "END OF DATA"
88
89if exists("thermal_todo")
90 execute 'syn match takTodo ' . '"^'.thermal_todo.'.*$"'
91else
92 syn match takTodo "^?.*$"
93endif
94
95
96
97" Define the default highlighting
98" For version 5.7 and earlier: only when not done already
99" For version 5.8 and later: only when an item doesn't have highlighting yet
100if version >= 508 || !exists("did_tak_syntax_inits")
101 if version < 508
102 let did_tak_syntax_inits = 1
103 command -nargs=+ HiLink hi link <args>
104 else
105 command -nargs=+ HiLink hi def link <args>
106 endif
107
108 HiLink takMacro Macro
109 HiLink takOptions Special
110 HiLink takRoutine Type
111 HiLink takControl Special
112 HiLink takSolids Special
113 HiLink takSolidsArg Statement
114 HiLink takIdentifier Identifier
115
116 HiLink takFortran PreProc
117 HiLink takMotran PreProc
118
119 HiLink takComment Comment
120 HiLink takHeader Typedef
121 HiLink takIncludeFile Type
122 HiLink takInteger Number
123 HiLink takFloat Float
124 HiLink takScientific Float
125
126 HiLink takEndData Macro
127
128 HiLink takTodo Todo
129
130 delcommand HiLink
131endif
132
133
134let b:current_syntax = "tak"
135
136" vim: ts=8 sw=2