7
|
1 " Vim syntax file
|
|
2 " Language: TSS (Thermal Synthesizer System) Command Line
|
|
3 " Maintainer: Adrian Nagle, anagle@ball.com
|
|
4 " Last Change: 2003 May 11
|
|
5 " Filenames: *.tsscl
|
|
6 " URL: http://www.naglenet.org/vim/syntax/tsscl.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
|
|
13 if version < 600
|
|
14 syntax clear
|
|
15 elseif exists("b:current_syntax")
|
|
16 finish
|
|
17 endif
|
|
18
|
|
19
|
|
20
|
|
21 " Ignore case
|
|
22 syn case ignore
|
|
23
|
|
24
|
|
25
|
|
26 "
|
|
27 "
|
|
28 " Begin syntax definitions for tss geomtery file.
|
|
29 "
|
|
30
|
|
31 " Load TSS geometry syntax file
|
|
32 "source $VIM/myvim/tssgm.vim
|
|
33 "source $VIMRUNTIME/syntax/c.vim
|
|
34
|
|
35 " Define keywords for TSS
|
|
36 syn keyword tssclCommand begin radk list heatrates attr draw
|
|
37
|
|
38 syn keyword tssclKeyword cells rays error nodes levels objects cpu
|
|
39 syn keyword tssclKeyword units length positions energy time unit solar
|
|
40 syn keyword tssclKeyword solar_constant albedo planet_power
|
|
41
|
|
42 syn keyword tssclEnd exit
|
|
43
|
|
44 syn keyword tssclUnits cm feet meters inches
|
|
45 syn keyword tssclUnits Celsius Kelvin Fahrenheit Rankine
|
|
46
|
|
47
|
|
48
|
|
49 " Define matches for TSS
|
|
50 syn match tssclString /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits
|
|
51
|
|
52 syn match tssclComment "#.*$"
|
|
53
|
|
54 " rational and logical operators
|
|
55 " < Less than
|
|
56 " > Greater than
|
|
57 " <= Less than or equal
|
|
58 " >= Greater than or equal
|
|
59 " == or = Equal to
|
|
60 " != Not equal to
|
|
61 " && or & Logical AND
|
|
62 " || or | Logical OR
|
|
63 " ! Logical NOT
|
|
64 "
|
|
65 " algebraic operators:
|
|
66 " ^ or ** Exponentation
|
|
67 " * Multiplication
|
|
68 " / Division
|
|
69 " % Remainder
|
|
70 " + Addition
|
|
71 " - Subtraction
|
|
72 "
|
|
73 syn match tssclOper "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite
|
|
74
|
|
75 " CLI Directive Commands, with arguments
|
|
76 "
|
|
77 " BASIC COMMAND LIST
|
|
78 " *ADD input_source
|
|
79 " *ARITHMETIC { [ON] | OFF }
|
|
80 " *CLOSE unit_number
|
|
81 " *CPU
|
|
82 " *DEFINE
|
|
83 " *ECHO[/qualifiers] { [ON] | OFF }
|
|
84 " *ELSE [IF { 0 | 1 } ]
|
|
85 " *END { IF | WHILE }
|
|
86 " *EXIT
|
|
87 " *IF { 0 | 1 }
|
|
88 " *LIST/n list variable
|
|
89 " *OPEN[/r | /r+ | /w | /w+ ] unit_number file_name
|
|
90 " *PROMPT prompt_string sybol_name
|
|
91 " *READ/unit=unit_number[/LOCAL | /GLOBAL ] sym1 [sym2, [sym3 ...]]
|
|
92 " *REWIND
|
|
93 " *STOP
|
|
94 " *STRCMP string_1 string_2 difference
|
|
95 " *SYSTEM command
|
|
96 " *UNDEFINE[/LOCAL][/GLOBAL] symbol_name
|
|
97 " *WHILE { 0 | 1 }
|
|
98 " *WRITE[/unit=unit_number] output text
|
|
99 "
|
|
100 syn match tssclDirective "\*ADD"
|
|
101 syn match tssclDirective "\*ARITHMETIC \+\(ON\|OFF\)"
|
|
102 syn match tssclDirective "\*CLOSE"
|
|
103 syn match tssclDirective "\*CPU"
|
|
104 syn match tssclDirective "\*DEFINE"
|
|
105 syn match tssclDirective "\*ECHO"
|
|
106 syn match tssclConditional "\*ELSE"
|
|
107 syn match tssclConditional "\*END \+\(IF\|WHILE\)"
|
|
108 syn match tssclDirective "\*EXIT"
|
|
109 syn match tssclConditional "\*IF"
|
|
110 syn match tssclDirective "\*LIST"
|
|
111 syn match tssclDirective "\*OPEN"
|
|
112 syn match tssclDirective "\*PROMPT"
|
|
113 syn match tssclDirective "\*READ"
|
|
114 syn match tssclDirective "\*REWIND"
|
|
115 syn match tssclDirective "\*STOP"
|
|
116 syn match tssclDirective "\*STRCMP"
|
|
117 syn match tssclDirective "\*SYSTEM"
|
|
118 syn match tssclDirective "\*UNDEFINE"
|
|
119 syn match tssclConditional "\*WHILE"
|
|
120 syn match tssclDirective "\*WRITE"
|
|
121
|
|
122 syn match tssclContChar "-$"
|
|
123
|
|
124 " C library functoins
|
|
125 " Bessel functions (jn, yn)
|
|
126 " Error and complementary error fuctions (erf, erfc)
|
|
127 " Exponential functions (exp)
|
|
128 " Logrithm (log, log10)
|
|
129 " Power (pow)
|
|
130 " Square root (sqrt)
|
|
131 " Floor (floor)
|
|
132 " Ceiling (ceil)
|
|
133 " Floating point remainder (fmod)
|
|
134 " Floating point absolute value (fabs)
|
|
135 " Gamma (gamma)
|
|
136 " Euclidean distance function (hypot)
|
|
137 " Hperbolic functions (sinh, cosh, tanh)
|
|
138 " Trigometric functions in radians (sin, cos, tan, asin, acos, atan, atan2)
|
|
139 " Trigometric functions in degrees (sind, cosd, tand, asind, acosd, atand,
|
|
140 " atan2d)
|
|
141 "
|
|
142 " local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
|
|
143 " cl_args is the number of arguments
|
|
144 "
|
|
145 "
|
|
146 " I/O: *PROMPT, *WRITE, *READ
|
|
147 "
|
|
148 " Conditional branching:
|
|
149 " IF, ELSE IF, END
|
|
150 " *IF value *IF I==10
|
|
151 " *ELSE IF value *ELSE IF I<10
|
|
152 " *ELSE *ELSE
|
|
153 " *ENDIF *ENDIF
|
|
154 "
|
|
155 "
|
|
156 " Iterative looping:
|
|
157 " WHILE
|
|
158 " *WHILE test
|
|
159 " .....
|
|
160 " *END WHILE
|
|
161 "
|
|
162 "
|
|
163 " EXAMPLE:
|
|
164 " *DEFINE I = 1
|
|
165 " *WHILE (I <= 10)
|
|
166 " *WRITE I = 'I'
|
|
167 " *DEFINE I = (I + 1)
|
|
168 " *END WHILE
|
|
169 "
|
|
170
|
|
171 syn match tssclQualifier "/[^/ ]\+"hs=s+1
|
|
172 syn match tssclSymbol "'\S\+'"
|
|
173 "syn match tssclSymbol2 " \S\+ " contained
|
|
174
|
|
175 syn match tssclInteger "-\=\<[0-9]*\>"
|
|
176 syn match tssclFloat "-\=\<[0-9]*\.[0-9]*"
|
|
177 syn match tssclScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
|
|
178
|
|
179
|
|
180
|
|
181 " Define the default highlighting
|
|
182 " For version 5.7 and earlier: only when not done already
|
|
183 " For version 5.8 and later: only when an item doesn't have highlighting yet
|
|
184 if version >= 508 || !exists("did_tsscl_syntax_inits")
|
|
185 if version < 508
|
|
186 let did_tsscl_syntax_inits = 1
|
|
187 command -nargs=+ HiLink hi link <args>
|
|
188 else
|
|
189 command -nargs=+ HiLink hi def link <args>
|
|
190 endif
|
|
191
|
|
192 HiLink tssclCommand Statement
|
|
193 HiLink tssclKeyword Special
|
|
194 HiLink tssclEnd Macro
|
|
195 HiLink tssclUnits Special
|
|
196
|
|
197 HiLink tssclComment Comment
|
|
198 HiLink tssclDirective Statement
|
|
199 HiLink tssclConditional Conditional
|
|
200 HiLink tssclContChar Macro
|
|
201 HiLink tssclQualifier Typedef
|
|
202 HiLink tssclSymbol Identifier
|
|
203 HiLink tssclSymbol2 Symbol
|
|
204 HiLink tssclString String
|
|
205 HiLink tssclOper Operator
|
|
206
|
|
207 HiLink tssclInteger Number
|
|
208 HiLink tssclFloat Number
|
|
209 HiLink tssclScientific Number
|
|
210
|
|
211 delcommand HiLink
|
|
212 endif
|
|
213
|
|
214
|
|
215 let b:current_syntax = "tsscl"
|
|
216
|
|
217 " vim: ts=8 sw=2
|