tsscl.vim 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  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/
  8. " quit when a syntax file was already loaded
  9. if exists("b:current_syntax")
  10. finish
  11. endif
  12. " Ignore case
  13. syn case ignore
  14. "
  15. "
  16. " Begin syntax definitions for tss geomtery file.
  17. "
  18. " Load TSS geometry syntax file
  19. "source $VIM/myvim/tssgm.vim
  20. "source $VIMRUNTIME/syntax/c.vim
  21. " Define keywords for TSS
  22. syn keyword tssclCommand begin radk list heatrates attr draw
  23. syn keyword tssclKeyword cells rays error nodes levels objects cpu
  24. syn keyword tssclKeyword units length positions energy time unit solar
  25. syn keyword tssclKeyword solar_constant albedo planet_power
  26. syn keyword tssclEnd exit
  27. syn keyword tssclUnits cm feet meters inches
  28. syn keyword tssclUnits Celsius Kelvin Fahrenheit Rankine
  29. " Define matches for TSS
  30. syn match tssclString /"[^"]\+"/ contains=ALLBUT,tssInteger,tssclKeyword,tssclCommand,tssclEnd,tssclUnits
  31. syn match tssclComment "#.*$"
  32. " rational and logical operators
  33. " < Less than
  34. " > Greater than
  35. " <= Less than or equal
  36. " >= Greater than or equal
  37. " == or = Equal to
  38. " != Not equal to
  39. " && or & Logical AND
  40. " || or | Logical OR
  41. " ! Logical NOT
  42. "
  43. " algebraic operators:
  44. " ^ or ** Exponentation
  45. " * Multiplication
  46. " / Division
  47. " % Remainder
  48. " + Addition
  49. " - Subtraction
  50. "
  51. syn match tssclOper "||\||\|&&\|&\|!=\|!\|>=\|<=\|>\|<\|+\|-\|^\|\*\*\|\*\|/\|%\|==\|=\|\." skipwhite
  52. " CLI Directive Commands, with arguments
  53. "
  54. " BASIC COMMAND LIST
  55. " *ADD input_source
  56. " *ARITHMETIC { [ON] | OFF }
  57. " *CLOSE unit_number
  58. " *CPU
  59. " *DEFINE
  60. " *ECHO[/qualifiers] { [ON] | OFF }
  61. " *ELSE [IF { 0 | 1 } ]
  62. " *END { IF | WHILE }
  63. " *EXIT
  64. " *IF { 0 | 1 }
  65. " *LIST/n list variable
  66. " *OPEN[/r | /r+ | /w | /w+ ] unit_number file_name
  67. " *PROMPT prompt_string sybol_name
  68. " *READ/unit=unit_number[/LOCAL | /GLOBAL ] sym1 [sym2, [sym3 ...]]
  69. " *REWIND
  70. " *STOP
  71. " *STRCMP string_1 string_2 difference
  72. " *SYSTEM command
  73. " *UNDEFINE[/LOCAL][/GLOBAL] symbol_name
  74. " *WHILE { 0 | 1 }
  75. " *WRITE[/unit=unit_number] output text
  76. "
  77. syn match tssclDirective "\*ADD"
  78. syn match tssclDirective "\*ARITHMETIC \+\(ON\|OFF\)"
  79. syn match tssclDirective "\*CLOSE"
  80. syn match tssclDirective "\*CPU"
  81. syn match tssclDirective "\*DEFINE"
  82. syn match tssclDirective "\*ECHO"
  83. syn match tssclConditional "\*ELSE"
  84. syn match tssclConditional "\*END \+\(IF\|WHILE\)"
  85. syn match tssclDirective "\*EXIT"
  86. syn match tssclConditional "\*IF"
  87. syn match tssclDirective "\*LIST"
  88. syn match tssclDirective "\*OPEN"
  89. syn match tssclDirective "\*PROMPT"
  90. syn match tssclDirective "\*READ"
  91. syn match tssclDirective "\*REWIND"
  92. syn match tssclDirective "\*STOP"
  93. syn match tssclDirective "\*STRCMP"
  94. syn match tssclDirective "\*SYSTEM"
  95. syn match tssclDirective "\*UNDEFINE"
  96. syn match tssclConditional "\*WHILE"
  97. syn match tssclDirective "\*WRITE"
  98. syn match tssclContChar "-$"
  99. " C library functoins
  100. " Bessel functions (jn, yn)
  101. " Error and complementary error fuctions (erf, erfc)
  102. " Exponential functions (exp)
  103. " Logrithm (log, log10)
  104. " Power (pow)
  105. " Square root (sqrt)
  106. " Floor (floor)
  107. " Ceiling (ceil)
  108. " Floating point remainder (fmod)
  109. " Floating point absolute value (fabs)
  110. " Gamma (gamma)
  111. " Euclidean distance function (hypot)
  112. " Hperbolic functions (sinh, cosh, tanh)
  113. " Trigometric functions in radians (sin, cos, tan, asin, acos, atan, atan2)
  114. " Trigometric functions in degrees (sind, cosd, tand, asind, acosd, atand,
  115. " atan2d)
  116. "
  117. " local varialbles: cl_arg1, cl_arg2, etc. (cl_arg is an array of arguments)
  118. " cl_args is the number of arguments
  119. "
  120. "
  121. " I/O: *PROMPT, *WRITE, *READ
  122. "
  123. " Conditional branching:
  124. " IF, ELSE IF, END
  125. " *IF value *IF I==10
  126. " *ELSE IF value *ELSE IF I<10
  127. " *ELSE *ELSE
  128. " *ENDIF *ENDIF
  129. "
  130. "
  131. " Iterative looping:
  132. " WHILE
  133. " *WHILE test
  134. " .....
  135. " *END WHILE
  136. "
  137. "
  138. " EXAMPLE:
  139. " *DEFINE I = 1
  140. " *WHILE (I <= 10)
  141. " *WRITE I = 'I'
  142. " *DEFINE I = (I + 1)
  143. " *END WHILE
  144. "
  145. syn match tssclQualifier "/[^/ ]\+"hs=s+1
  146. syn match tssclSymbol "'\S\+'"
  147. "syn match tssclSymbol2 " \S\+ " contained
  148. syn match tssclInteger "-\=\<[0-9]*\>"
  149. syn match tssclFloat "-\=\<[0-9]*\.[0-9]*"
  150. syn match tssclScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"
  151. " Define the default highlighting
  152. " Only when an item doesn't have highlighting yet
  153. hi def link tssclCommand Statement
  154. hi def link tssclKeyword Special
  155. hi def link tssclEnd Macro
  156. hi def link tssclUnits Special
  157. hi def link tssclComment Comment
  158. hi def link tssclDirective Statement
  159. hi def link tssclConditional Conditional
  160. hi def link tssclContChar Macro
  161. hi def link tssclQualifier Typedef
  162. hi def link tssclSymbol Identifier
  163. hi def link tssclSymbol2 Symbol
  164. hi def link tssclString String
  165. hi def link tssclOper Operator
  166. hi def link tssclInteger Number
  167. hi def link tssclFloat Number
  168. hi def link tssclScientific Number
  169. let b:current_syntax = "tsscl"
  170. " vim: ts=8 sw=2