1" Vim syntax file 2" Language: TAK2, TAK3, TAK2000 thermal modeling input file 3" Maintainer: Adrian Nagle, anagle@ball.com 4" Last Change: 2003 May 11 5" Filenames: *.tak 6" URL: http://www.naglenet.org/vim/syntax/tak.vim 7" MAIN URL: http://www.naglenet.org/vim/ 8 9 10 11" For version 5.x: Clear all syntax items 12" For version 6.x: Quit when a syntax file was already loaded 13if version < 600 14 syntax clear 15elseif exists("b:current_syntax") 16 finish 17endif 18 19 20 21" Ignore case 22syn case ignore 23 24 25 26" 27" 28" Begin syntax definitions for tak input file. 29" 30 31" Force free-form fortran format 32let fortran_free_source=1 33 34" Load FORTRAN syntax file 35if version < 600 36 source <sfile>:p:h/fortran.vim 37else 38 runtime! syntax/fortran.vim 39endif 40unlet b:current_syntax 41 42 43 44" Define keywords for TAK and TAKOUT 45syn keyword takOptions AUTODAMP CPRINT CSGDUMP GPRINT HPRINT LODTMP 46syn keyword takOptions LOGIC LPRINT NCVPRINT PLOTQ QPRINT QDUMP 47syn keyword takOptions SUMMARY SOLRTN UID DICTIONARIES 48 49syn keyword takRoutine SSITER FWDWRD FWDBCK BCKWRD 50 51syn keyword takControl ABSZRO BACKUP DAMP DTIMEI DTIMEL DTIMEH IFC 52syn keyword takControl MAXTEMP NLOOPS NLOOPT NODELIST OUTPUT PLOT 53syn keyword takControl SCALE SIGMA SSCRIT TIMEND TIMEN TIMEO TRCRIT 54syn keyword takControl PLOT 55 56syn keyword takSolids PLATE CYL 57syn keyword takSolidsArg ID MATNAM NTYPE TEMP XL YL ZL ISTRN ISTRG NNX 58syn keyword takSolidsArg NNY NNZ INCX INCY INCZ IAK IAC DIFF ARITH BOUN 59syn keyword takSolidsArg RMIN RMAX AXMAX NNR NNTHETA INCR INCTHETA END 60 61syn case ignore 62 63syn keyword takMacro fac pstart pstop 64syn keyword takMacro takcommon fstart fstop 65 66syn keyword takIdentifier flq flx gen ncv per sim siv stf stv tvd tvs 67syn keyword takIdentifier tvt pro thm 68 69 70 71" Define matches for TAK 72syn match takFortran "^F[0-9 ]"me=e-1 73syn match takMotran "^M[0-9 ]"me=e-1 74 75syn match takComment "^C.*$" 76syn match takComment "^R.*$" 77syn match takComment "\$.*$" 78 79syn match takHeader "^header[^,]*" 80 81syn match takIncludeFile "include \+[^ ]\+"hs=s+8 contains=fortranInclude 82 83syn match takInteger "-\=\<[0-9]*\>" 84syn match takFloat "-\=\<[0-9]*\.[0-9]*" 85syn match takScientific "-\=\<[0-9]*\.[0-9]*E[-+]\=[0-9]\+\>" 86 87syn match takEndData "END OF DATA" 88 89if exists("thermal_todo") 90 execute 'syn match takTodo ' . '"^'.thermal_todo.'.*$"' 91else 92 syn match takTodo "^?.*$" 93endif 94 95 96 97" Define the default highlighting 98" For version 5.7 and earlier: only when not done already 99" For version 5.8 and later: only when an item doesn't have highlighting yet 100if version >= 508 || !exists("did_tak_syntax_inits") 101 if version < 508 102 let did_tak_syntax_inits = 1 103 command -nargs=+ HiLink hi link <args> 104 else 105 command -nargs=+ HiLink hi def link <args> 106 endif 107 108 HiLink takMacro Macro 109 HiLink takOptions Special 110 HiLink takRoutine Type 111 HiLink takControl Special 112 HiLink takSolids Special 113 HiLink takSolidsArg Statement 114 HiLink takIdentifier Identifier 115 116 HiLink takFortran PreProc 117 HiLink takMotran PreProc 118 119 HiLink takComment Comment 120 HiLink takHeader Typedef 121 HiLink takIncludeFile Type 122 HiLink takInteger Number 123 HiLink takFloat Float 124 HiLink takScientific Float 125 126 HiLink takEndData Macro 127 128 HiLink takTodo Todo 129 130 delcommand HiLink 131endif 132 133 134let b:current_syntax = "tak" 135 136" vim: ts=8 sw=2 137