home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file
- " Language: TSS (Thermal Synthesizer System) Command Line
- " Maintainer: Adrian Nagle, anagle@ball.com
- " Last Change: 2003 May 11
- " Filenames: *.tsscl
- " URL: http://www.naglenet.org/vim/syntax/tsscl.vim
- " MAIN URL: http://www.naglenet.org/vim/
-
-
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
-
-
-
- " Ignore case
- syn case ignore
-
-
-
- "
- "
- " Begin syntax definitions for tss geomtery file.
- "
-
- " Load TSS geometry syntax file
- "source $VIM/myvim/tssgm.vim
- "source $VIMRUNTIME/syntax/c.vim
-
- " Define keywords for TSS
- syn keyword tssclCommand begin radk list heatrates attr draw
-
- syn keyword tssclKeyword cells rays error nodes levels objects cpu
- syn keyword tssclKeyword units length positions energy time unit solar
- syn keyword tssclKeyword solar_constant albedo planet_power
-
- syn keyword tssclEnd exit
-
- syn keyword tssclUnits cm feet meters inches
- syn keyword tssclUnits Celsius Kelvin Fahrenheit Rankine
-
-
-
- " Define matches for TSS
- syn match tssclString /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits
-
- syn match tssclComment "#.*$"
-
- " rational and logical operators
- " < Less than
- " > Greater than
- " <= Less than or equal
- " >= Greater than or equal
- " == or = Equal to
- " != Not equal to
- " && or & Logical AND
- " || or | Logical OR
- " ! Logical NOT
- "
- " algebraic operators:
- " ^ or ** Exponentation
- " * Multiplication
- " / Division
- " % Remainder
- " + Addition
- " - Subtraction
- "
- syn match tssclOper "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite
-
- " CLI Directive Commands, with arguments
- "
- " BASIC COMMAND LIST
- " *ADD input_source
- " *ARITHMETIC { [ON] | OFF }
- " *CLOSE unit_number
- " *CPU
- " *DEFINE
- " *ECHO[/qualifiers] { [ON] | OFF }
- " *ELSE [IF { 0 | 1 } ]
- " *END { IF | WHILE }
- " *EXIT
- " *IF { 0 | 1 }
- " *LIST/n list variable
- " *OPEN[/r | /r+ | /w | /w+ ] unit_number file_name
- " *PROMPT prompt_string sybol_name
- " *READ/unit=unit_number[/LOCAL | /GLOBAL ] sym1 [sym2, [sym3 ...]]
- " *REWIND
- " *STOP
- " *STRCMP string_1 string_2 difference
- " *SYSTEM command
- " *UNDEFINE[/LOCAL][/GLOBAL] symbol_name
- " *WHILE { 0 | 1 }
- " *WRITE[/unit=unit_number] output text
- "
- syn match tssclDirective "\*ADD"
- syn match tssclDirective "\*ARITHMETIC \+\(ON\|OFF\)"
- syn match tssclDirective "\*CLOSE"
- syn match tssclDirective "\*CPU"
- syn match tssclDirective "\*DEFINE"
- syn match tssclDirective "\*ECHO"
- syn match tssclConditional "\*ELSE"
- syn match tssclConditional "\*END \+\(IF\|WHILE\)"
- syn match tssclDirective "\*EXIT"
- syn match tssclConditional "\*IF"
- syn match tssclDirective "\*LIST"
- syn match tssclDirective "\*OPEN"
- syn match tssclDirective "\*PROMPT"
- syn match tssclDirective "\*READ"
- syn match tssclDirective "\*REWIND"
- syn match tssclDirective "\*STOP"
- syn match tssclDirective "\*STRCMP"
- syn match tssclDirective "\*SYSTEM"
- syn match tssclDirective "\*UNDEFINE"
- syn match tssclConditional "\*WHILE"
- syn match tssclDirective "\*WRITE"
-
- syn match tssclContChar "-$"
-
- " C library functoins
- " Bessel functions (jn, yn)
- " Error and complementary error fuctions (erf, erfc)
- " Exponential functions (exp)
- " Logrithm (log, log10)
- " Power (pow)
- " Square root (sqrt)
- " Floor (floor)
- " Ceiling (ceil)
- " Floating point remainder (fmod)
- " Floating point absolute value (fabs)
- " Gamma (gamma)
- " Euclidean distance function (hypot)
- " Hperbolic functions (sinh, cosh, tanh)
- " Trigometric functions in radians (sin, cos, tan, asin, acos, atan, atan2)
- " Trigometric functions in degrees (sind, cosd, tand, asind, acosd, atand,
- " atan2d)
- "
- " local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
- " cl_args is the number of arguments
- "
- "
- " I/O: *PROMPT, *WRITE, *READ
- "
- " Conditional branching:
- " IF, ELSE IF, END
- " *IF value *IF I==10
- " *ELSE IF value *ELSE IF I<10
- " *ELSE *ELSE
- " *ENDIF *ENDIF
- "
- "
- " Iterative looping:
- " WHILE
- " *WHILE test
- " .....
- " *END WHILE
- "
- "
- " EXAMPLE:
- " *DEFINE I = 1
- " *WHILE (I <= 10)
- " *WRITE I = 'I'
- " *DEFINE I = (I + 1)
- " *END WHILE
- "
-
- syn match tssclQualifier "/[^/ ]\+"hs=s+1
- syn match tssclSymbol "'\S\+'"
- "syn match tssclSymbol2 " \S\+ " contained
-
- syn match tssclInteger "-\=\<[0-9]*\>"
- syn match tssclFloat "-\=\<[0-9]*\.[0-9]*"
- syn match tssclScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
-
-
-
- " Define the default highlighting
- " For version 5.7 and earlier: only when not done already
- " For version 5.8 and later: only when an item doesn't have highlighting yet
- if version >= 508 || !exists("did_tsscl_syntax_inits")
- if version < 508
- let did_tsscl_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink tssclCommand Statement
- HiLink tssclKeyword Special
- HiLink tssclEnd Macro
- HiLink tssclUnits Special
-
- HiLink tssclComment Comment
- HiLink tssclDirective Statement
- HiLink tssclConditional Conditional
- HiLink tssclContChar Macro
- HiLink tssclQualifier Typedef
- HiLink tssclSymbol Identifier
- HiLink tssclSymbol2 Symbol
- HiLink tssclString String
- HiLink tssclOper Operator
-
- HiLink tssclInteger Number
- HiLink tssclFloat Number
- HiLink tssclScientific Number
-
- delcommand HiLink
- endif
-
-
- let b:current_syntax = "tsscl"
-
- " vim: ts=8 sw=2
-