Merge branch 'hack/autopaste'
[vim-kana.git] / runtime / syntax / tsscl.vim
blob3fc18c68476aa82dac5295815472e9c9b53ea7ce
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/
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
21 " Ignore case
22 syn case ignore
28 " Begin syntax definitions for tss geomtery file.
31 " Load TSS geometry syntax file
32 "source $VIM/myvim/tssgm.vim
33 "source $VIMRUNTIME/syntax/c.vim
35 " Define keywords for TSS
36 syn keyword tssclCommand  begin radk list heatrates attr draw
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
42 syn keyword tssclEnd    exit
44 syn keyword tssclUnits  cm feet meters inches
45 syn keyword tssclUnits  Celsius Kelvin Fahrenheit Rankine
49 " Define matches for TSS
50 syn match  tssclString    /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits
52 syn match  tssclComment     "#.*$"
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
65 " algebraic operators:
66 "  ^ or ** Exponentation
67 "  *       Multiplication
68 "  /       Division
69 "  %       Remainder
70 "  +       Addition
71 "  -       Subtraction
73 syn match  tssclOper      "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite
75 " CLI Directive Commands, with arguments
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
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"
122 syn match  tssclContChar  "-$"
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)
142 " local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
143 " cl_args is the number of arguments
146 " I/O: *PROMPT, *WRITE, *READ
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
156 " Iterative looping:
157 " WHILE
158 " *WHILE test
159 " .....
160 " *END WHILE
163 " EXAMPLE:
164 " *DEFINE I = 1
165 " *WHILE (I <= 10)
166 "    *WRITE I = 'I'
167 "    *DEFINE I = (I + 1)
168 " *END WHILE
171 syn match  tssclQualifier "/[^/ ]\+"hs=s+1
172 syn match  tssclSymbol    "'\S\+'"
173 "syn match  tssclSymbol2   " \S\+ " contained
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]\+\>"
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
192   HiLink tssclCommand           Statement
193   HiLink tssclKeyword           Special
194   HiLink tssclEnd               Macro
195   HiLink tssclUnits             Special
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
207   HiLink tssclInteger           Number
208   HiLink tssclFloat             Number
209   HiLink tssclScientific        Number
211   delcommand HiLink
212 endif
215 let b:current_syntax = "tsscl"
217 " vim: ts=8 sw=2