mirror of
				https://github.com/vim/vim.git
				synced 2025-10-31 09:57:14 -04:00 
			
		
		
		
	
		
			
	
	
		
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			218 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " 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 |