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