if polyglot#init#is_disabled(expand('<sfile>:p'), 'tssgm', 'syntax/tssgm.vim')
  finish
endif

" Vim syntax file
" Language:     TSS (Thermal Synthesizer System) Geometry
" Maintainer:   Adrian Nagle, anagle@ball.com
" Last Change:  2003 May 11
" Filenames:    *.tssgm
" URL:		http://www.naglenet.org/vim/syntax/tssgm.vim
" MAIN URL:     http://www.naglenet.org/vim/



" quit when a syntax file was already loaded
if exists("b:current_syntax")
  finish
endif



" Ignore case
syn case ignore



"
"
" Begin syntax definitions for tss geomtery file.
"

" Define keywords for TSS
syn keyword tssgmParam  units mirror param active sides submodel include
syn keyword tssgmParam  iconductor nbeta ngamma optics material thickness color
syn keyword tssgmParam  initial_temp
syn keyword tssgmParam  initial_id node_ids node_add node_type
syn keyword tssgmParam  gamma_boundaries gamma_add beta_boundaries
syn keyword tssgmParam  p1 p2 p3 p4 p5 p6 rot1 rot2 rot3 tx ty tz

syn keyword tssgmSurfType  rectangle trapezoid disc ellipse triangle
syn keyword tssgmSurfType  polygon cylinder cone sphere ellipic-cone
syn keyword tssgmSurfType  ogive torus box paraboloid hyperboloid ellipsoid
syn keyword tssgmSurfType  quadrilateral trapeziod

syn keyword tssgmArgs   OUT IN DOWN BOTH DOUBLE NONE SINGLE RADK CC FECC
syn keyword tssgmArgs   white red blue green yellow orange violet pink
syn keyword tssgmArgs   turquoise grey black
syn keyword tssgmArgs   Arithmetic Boundary Heater

syn keyword tssgmDelim  assembly

syn keyword tssgmEnd    end

syn keyword tssgmUnits  cm feet meters inches
syn keyword tssgmUnits  Celsius Kelvin Fahrenheit Rankine



" Define matches for TSS
syn match  tssgmDefault     "^DEFAULT/LENGTH = \(ft\|in\|cm\|m\)"
syn match  tssgmDefault     "^DEFAULT/TEMP = [CKFR]"

syn match  tssgmComment       /comment \+= \+".*"/ contains=tssParam,tssgmCommentString
syn match  tssgmCommentString /".*"/ contained

syn match  tssgmSurfIdent   " \S\+\.\d\+ \=$"

syn match  tssgmString      /"[^" ]\+"/ms=s+1,me=e-1 contains=ALLBUT,tssInteger

syn match  tssgmArgs	    / = [xyz],"/ms=s+3,me=e-2

syn match  tssgmInteger     "-\=\<[0-9]*\>"
syn match  tssgmFloat       "-\=\<[0-9]*\.[0-9]*"
syn match  tssgmScientific  "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>"



" Define the default highlighting
" Only when an item doesn't have highlighting yet

hi def link tssgmParam		Statement
hi def link tssgmSurfType		Type
hi def link tssgmArgs		Special
hi def link tssgmDelim		Typedef
hi def link tssgmEnd		Macro
hi def link tssgmUnits		Special

hi def link tssgmDefault		SpecialComment
hi def link tssgmComment		Statement
hi def link tssgmCommentString	Comment
hi def link tssgmSurfIdent		Identifier
hi def link tssgmString		Delimiter

hi def link tssgmInteger		Number
hi def link tssgmFloat		Float
hi def link tssgmScientific	Float



let b:current_syntax = "tssgm"

" vim: ts=8 sw=2
