xref: /vim-8.2.3635/runtime/syntax/tsscl.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     TSS (Thermal Synthesizer System) Command Line
3071d4279SBram Moolenaar" Maintainer:   Adrian Nagle, [email protected]
4071d4279SBram Moolenaar" Last Change:  2003 May 11
5071d4279SBram Moolenaar" Filenames:    *.tsscl
6071d4279SBram Moolenaar" URL:		http://www.naglenet.org/vim/syntax/tsscl.vim
7071d4279SBram Moolenaar" MAIN URL:     http://www.naglenet.org/vim/
8071d4279SBram Moolenaar
9071d4279SBram Moolenaar
10071d4279SBram Moolenaar
1189bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1289bcfda6SBram Moolenaarif exists("b:current_syntax")
13071d4279SBram Moolenaar  finish
14071d4279SBram Moolenaarendif
15071d4279SBram Moolenaar
16071d4279SBram Moolenaar
17071d4279SBram Moolenaar
18071d4279SBram Moolenaar" Ignore case
19071d4279SBram Moolenaarsyn case ignore
20071d4279SBram Moolenaar
21071d4279SBram Moolenaar
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar"
24071d4279SBram Moolenaar"
25071d4279SBram Moolenaar" Begin syntax definitions for tss geomtery file.
26071d4279SBram Moolenaar"
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" Load TSS geometry syntax file
29071d4279SBram Moolenaar"source $VIM/myvim/tssgm.vim
30071d4279SBram Moolenaar"source $VIMRUNTIME/syntax/c.vim
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" Define keywords for TSS
33071d4279SBram Moolenaarsyn keyword tssclCommand  begin radk list heatrates attr draw
34071d4279SBram Moolenaar
35071d4279SBram Moolenaarsyn keyword tssclKeyword   cells rays error nodes levels objects cpu
36071d4279SBram Moolenaarsyn keyword tssclKeyword   units length positions energy time unit solar
37071d4279SBram Moolenaarsyn keyword tssclKeyword   solar_constant albedo planet_power
38071d4279SBram Moolenaar
39071d4279SBram Moolenaarsyn keyword tssclEnd    exit
40071d4279SBram Moolenaar
41071d4279SBram Moolenaarsyn keyword tssclUnits  cm feet meters inches
42071d4279SBram Moolenaarsyn keyword tssclUnits  Celsius Kelvin Fahrenheit Rankine
43071d4279SBram Moolenaar
44071d4279SBram Moolenaar
45071d4279SBram Moolenaar
46071d4279SBram Moolenaar" Define matches for TSS
47071d4279SBram Moolenaarsyn match  tssclString    /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits
48071d4279SBram Moolenaar
49071d4279SBram Moolenaarsyn match  tssclComment     "#.*$"
50071d4279SBram Moolenaar
51071d4279SBram Moolenaar"  rational and logical operators
52071d4279SBram Moolenaar"  <       Less than
53071d4279SBram Moolenaar"  >       Greater than
54071d4279SBram Moolenaar"  <=      Less than or equal
55071d4279SBram Moolenaar"  >=      Greater than or equal
56071d4279SBram Moolenaar"  == or = Equal to
57071d4279SBram Moolenaar"  !=      Not equal to
58071d4279SBram Moolenaar"  && or & Logical AND
59071d4279SBram Moolenaar"  || or | Logical OR
60071d4279SBram Moolenaar"  !       Logical NOT
61071d4279SBram Moolenaar"
62071d4279SBram Moolenaar" algebraic operators:
63071d4279SBram Moolenaar"  ^ or ** Exponentation
64071d4279SBram Moolenaar"  *       Multiplication
65071d4279SBram Moolenaar"  /       Division
66071d4279SBram Moolenaar"  %       Remainder
67071d4279SBram Moolenaar"  +       Addition
68071d4279SBram Moolenaar"  -       Subtraction
69071d4279SBram Moolenaar"
70071d4279SBram Moolenaarsyn match  tssclOper      "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite
71071d4279SBram Moolenaar
72071d4279SBram Moolenaar" CLI Directive Commands, with arguments
73071d4279SBram Moolenaar"
74071d4279SBram Moolenaar" BASIC COMMAND LIST
75071d4279SBram Moolenaar" *ADD input_source
76071d4279SBram Moolenaar" *ARITHMETIC { [ON] | OFF }
77071d4279SBram Moolenaar" *CLOSE unit_number
78071d4279SBram Moolenaar" *CPU
79071d4279SBram Moolenaar" *DEFINE
80071d4279SBram Moolenaar" *ECHO[/qualifiers] { [ON] | OFF }
81071d4279SBram Moolenaar" *ELSE [IF { 0 | 1 } ]
82071d4279SBram Moolenaar" *END { IF | WHILE }
83071d4279SBram Moolenaar" *EXIT
84071d4279SBram Moolenaar" *IF { 0 | 1 }
85071d4279SBram Moolenaar" *LIST/n list variable
86071d4279SBram Moolenaar" *OPEN[/r | /r+ | /w | /w+ ] unit_number file_name
87071d4279SBram Moolenaar" *PROMPT prompt_string sybol_name
88071d4279SBram Moolenaar" *READ/unit=unit_number[/LOCAL | /GLOBAL ] sym1 [sym2, [sym3 ...]]
89071d4279SBram Moolenaar" *REWIND
90071d4279SBram Moolenaar" *STOP
91071d4279SBram Moolenaar" *STRCMP string_1 string_2 difference
92071d4279SBram Moolenaar" *SYSTEM command
93071d4279SBram Moolenaar" *UNDEFINE[/LOCAL][/GLOBAL] symbol_name
94071d4279SBram Moolenaar" *WHILE { 0 | 1 }
95071d4279SBram Moolenaar" *WRITE[/unit=unit_number] output text
96071d4279SBram Moolenaar"
97071d4279SBram Moolenaarsyn match  tssclDirective "\*ADD"
98071d4279SBram Moolenaarsyn match  tssclDirective "\*ARITHMETIC \+\(ON\|OFF\)"
99071d4279SBram Moolenaarsyn match  tssclDirective "\*CLOSE"
100071d4279SBram Moolenaarsyn match  tssclDirective "\*CPU"
101071d4279SBram Moolenaarsyn match  tssclDirective "\*DEFINE"
102071d4279SBram Moolenaarsyn match  tssclDirective "\*ECHO"
103071d4279SBram Moolenaarsyn match  tssclConditional "\*ELSE"
104071d4279SBram Moolenaarsyn match  tssclConditional "\*END \+\(IF\|WHILE\)"
105071d4279SBram Moolenaarsyn match  tssclDirective "\*EXIT"
106071d4279SBram Moolenaarsyn match  tssclConditional "\*IF"
107071d4279SBram Moolenaarsyn match  tssclDirective "\*LIST"
108071d4279SBram Moolenaarsyn match  tssclDirective "\*OPEN"
109071d4279SBram Moolenaarsyn match  tssclDirective "\*PROMPT"
110071d4279SBram Moolenaarsyn match  tssclDirective "\*READ"
111071d4279SBram Moolenaarsyn match  tssclDirective "\*REWIND"
112071d4279SBram Moolenaarsyn match  tssclDirective "\*STOP"
113071d4279SBram Moolenaarsyn match  tssclDirective "\*STRCMP"
114071d4279SBram Moolenaarsyn match  tssclDirective "\*SYSTEM"
115071d4279SBram Moolenaarsyn match  tssclDirective "\*UNDEFINE"
116071d4279SBram Moolenaarsyn match  tssclConditional "\*WHILE"
117071d4279SBram Moolenaarsyn match  tssclDirective "\*WRITE"
118071d4279SBram Moolenaar
119071d4279SBram Moolenaarsyn match  tssclContChar  "-$"
120071d4279SBram Moolenaar
121071d4279SBram Moolenaar" C library functoins
122071d4279SBram Moolenaar" Bessel functions (jn, yn)
123071d4279SBram Moolenaar" Error and complementary error fuctions (erf, erfc)
124071d4279SBram Moolenaar" Exponential functions (exp)
125071d4279SBram Moolenaar" Logrithm (log, log10)
126071d4279SBram Moolenaar" Power (pow)
127071d4279SBram Moolenaar" Square root (sqrt)
128071d4279SBram Moolenaar" Floor (floor)
129071d4279SBram Moolenaar" Ceiling (ceil)
130071d4279SBram Moolenaar" Floating point remainder (fmod)
131071d4279SBram Moolenaar" Floating point absolute value (fabs)
132071d4279SBram Moolenaar" Gamma (gamma)
133071d4279SBram Moolenaar" Euclidean distance function (hypot)
134071d4279SBram Moolenaar" Hperbolic functions (sinh, cosh, tanh)
135071d4279SBram Moolenaar" Trigometric functions in radians (sin, cos, tan, asin, acos, atan, atan2)
136071d4279SBram Moolenaar" Trigometric functions in degrees (sind, cosd, tand, asind, acosd, atand,
137071d4279SBram Moolenaar"    atan2d)
138071d4279SBram Moolenaar"
139071d4279SBram Moolenaar" local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
140071d4279SBram Moolenaar" cl_args is the number of arguments
141071d4279SBram Moolenaar"
142071d4279SBram Moolenaar"
143071d4279SBram Moolenaar" I/O: *PROMPT, *WRITE, *READ
144071d4279SBram Moolenaar"
145071d4279SBram Moolenaar" Conditional branching:
146071d4279SBram Moolenaar" IF, ELSE IF, END
147071d4279SBram Moolenaar" *IF value       *IF I==10
148071d4279SBram Moolenaar" *ELSE IF value  *ELSE IF I<10
149071d4279SBram Moolenaar" *ELSE		  *ELSE
150071d4279SBram Moolenaar" *ENDIF	  *ENDIF
151071d4279SBram Moolenaar"
152071d4279SBram Moolenaar"
153071d4279SBram Moolenaar" Iterative looping:
154071d4279SBram Moolenaar" WHILE
155071d4279SBram Moolenaar" *WHILE test
156071d4279SBram Moolenaar" .....
157071d4279SBram Moolenaar" *END WHILE
158071d4279SBram Moolenaar"
159071d4279SBram Moolenaar"
160071d4279SBram Moolenaar" EXAMPLE:
161071d4279SBram Moolenaar" *DEFINE I = 1
162071d4279SBram Moolenaar" *WHILE (I <= 10)
163071d4279SBram Moolenaar"    *WRITE I = 'I'
164071d4279SBram Moolenaar"    *DEFINE I = (I + 1)
165071d4279SBram Moolenaar" *END WHILE
166071d4279SBram Moolenaar"
167071d4279SBram Moolenaar
168071d4279SBram Moolenaarsyn match  tssclQualifier "/[^/ ]\+"hs=s+1
169071d4279SBram Moolenaarsyn match  tssclSymbol    "'\S\+'"
170071d4279SBram Moolenaar"syn match  tssclSymbol2   " \S\+ " contained
171071d4279SBram Moolenaar
172071d4279SBram Moolenaarsyn match  tssclInteger     "-\=\<[0-9]*\>"
173071d4279SBram Moolenaarsyn match  tssclFloat       "-\=\<[0-9]*\.[0-9]*"
174071d4279SBram Moolenaarsyn match  tssclScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
175071d4279SBram Moolenaar
176071d4279SBram Moolenaar
177071d4279SBram Moolenaar
178071d4279SBram Moolenaar" Define the default highlighting
17989bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
180071d4279SBram Moolenaar
181*f37506f6SBram Moolenaarhi def link tssclCommand		Statement
182*f37506f6SBram Moolenaarhi def link tssclKeyword		Special
183*f37506f6SBram Moolenaarhi def link tssclEnd		Macro
184*f37506f6SBram Moolenaarhi def link tssclUnits		Special
185071d4279SBram Moolenaar
186*f37506f6SBram Moolenaarhi def link tssclComment		Comment
187*f37506f6SBram Moolenaarhi def link tssclDirective		Statement
188*f37506f6SBram Moolenaarhi def link tssclConditional	Conditional
189*f37506f6SBram Moolenaarhi def link tssclContChar		Macro
190*f37506f6SBram Moolenaarhi def link tssclQualifier		Typedef
191*f37506f6SBram Moolenaarhi def link tssclSymbol		Identifier
192*f37506f6SBram Moolenaarhi def link tssclSymbol2		Symbol
193*f37506f6SBram Moolenaarhi def link tssclString		String
194*f37506f6SBram Moolenaarhi def link tssclOper		Operator
195071d4279SBram Moolenaar
196*f37506f6SBram Moolenaarhi def link tssclInteger		Number
197*f37506f6SBram Moolenaarhi def link tssclFloat		Number
198*f37506f6SBram Moolenaarhi def link tssclScientific	Number
199071d4279SBram Moolenaar
200071d4279SBram Moolenaar
201071d4279SBram Moolenaar
202071d4279SBram Moolenaarlet b:current_syntax = "tsscl"
203071d4279SBram Moolenaar
204071d4279SBram Moolenaar" vim: ts=8 sw=2
205