1" Vim syntax file 2" Language: NASTRAN input/DMAP 3" Maintainer: Tom Kowalski <[email protected]> 4" Last change: April 27, 2001 5" Thanks to the authors and maintainers of fortran.vim. 6" Since DMAP shares some traits with fortran, this syntax file 7" is based on the fortran.vim syntax file. 8"---------------------------------------------------------------------- 9" Remove any old syntax stuff hanging around 10"syn clear 11if version < 600 12 syntax clear 13elseif exists("b:current_syntax") 14 finish 15endif 16" DMAP is not case dependent 17syn case ignore 18" 19"--------------------DMAP SYNTAX--------------------------------------- 20" 21" -------Executive Modules and Statements 22" 23syn keyword nastranDmapexecmod call dbview delete end equiv equivx exit 24syn keyword nastranDmapexecmod file message purge purgex return subdmap 25syn keyword nastranDmapType type 26syn keyword nastranDmapLabel go to goto 27syn keyword nastranDmapRepeat if else elseif endif then 28syn keyword nastranDmapRepeat do while 29syn region nastranDmapString start=+"+ end=+"+ oneline 30syn region nastranDmapString start=+'+ end=+'+ oneline 31" If you don't like initial tabs in dmap (or at all) 32"syn match nastranDmapIniTab "^\t.*$" 33"syn match nastranDmapTab "\t" 34 35" Any integer 36syn match nastranDmapNumber "-\=\<[0-9]\+\>" 37" floating point number, with dot, optional exponent 38syn match nastranDmapFloat "\<[0-9]\+\.[0-9]*\([edED][-+]\=[0-9]\+\)\=\>" 39" floating point number, starting with a dot, optional exponent 40syn match nastranDmapFloat "\.[0-9]\+\([edED][-+]\=[0-9]\+\)\=\>" 41" floating point number, without dot, with exponent 42syn match nastranDmapFloat "\<[0-9]\+[edED][-+]\=[0-9]\+\>" 43 44syn match nastranDmapLogical "\(true\|false\)" 45 46syn match nastranDmapPreCondit "^#define\>" 47syn match nastranDmapPreCondit "^#include\>" 48" 49" -------Comments may be contained in another line. 50" 51syn match nastranDmapComment "^[\$].*$" 52syn match nastranDmapComment "\$.*$" 53syn match nastranDmapComment "^[\$].*$" contained 54syn match nastranDmapComment "\$.*$" contained 55" Treat all past 72nd column as a comment. Do not work with tabs! 56" Breaks down when 72-73rd column is in another match (eg number or keyword) 57syn match nastranDmapComment "^.\{-72}.*$"lc=72 contained 58 59" 60" -------Utility Modules 61" 62syn keyword nastranDmapUtilmod append copy dbc dbdict dbdir dmin drms1 63syn keyword nastranDmapUtilmod dtiin eltprt ifp ifp1 inputt2 inputt4 lamx 64syn keyword nastranDmapUtilmod matgen matgpr matmod matpch matprn matprt 65syn keyword nastranDmapUtilmod modtrl mtrxin ofp output2 output4 param 66syn keyword nastranDmapUtilmod paraml paramr prtparam pvt scalar 67syn keyword nastranDmapUtilmod seqp setval tabedit tabprt tabpt vec vecplot 68syn keyword nastranDmapUtilmod xsort 69" 70" -------Matrix Modules 71" 72syn keyword nastranDmapMatmod add add5 cead dcmp decomp diagonal fbs merge 73syn keyword nastranDmapMatmod mpyad norm read reigl smpyad solve solvit 74syn keyword nastranDmapMatmod trnsp umerge umerge1 upartn dmiin partn 75syn region nastranDmapMatmod start=+^ *[Dd][Mm][Ii]+ end=+[\/]+ 76" 77" -------Implicit Functions 78" 79syn keyword nastranDmapImplicit abs acos acosh andl asin asinh atan atan2 80syn keyword nastranDmapImplicit atanh atanh2 char clen clock cmplx concat1 81syn keyword nastranDmapImplicit concat2 concat3 conjg cos cosh dble diagoff 82syn keyword nastranDmapImplicit diagon dim dlablank dlxblank dprod eqvl exp 83syn keyword nastranDmapImplicit getdiag getsys ichar imag impl index indexstr 84syn keyword nastranDmapImplicit int itol leq lge lgt lle llt lne log log10 85syn keyword nastranDmapImplicit logx ltoi mcgetsys mcputsys max min mod neqvl 86syn keyword nastranDmapImplicit nint noop normal notl numeq numge numgt numle 87syn keyword nastranDmapImplicit numlt numne orl pi precison putdiag putsys 88syn keyword nastranDmapImplicit rand rdiagon real rtimtogo setcore sign sin 89syn keyword nastranDmapImplicit sinh sngl sprod sqrt substrin tan tanh 90syn keyword nastranDmapImplicit timetogo wlen xorl 91" 92" 93"--------------------INPUT FILE SYNTAX--------------------------------------- 94" 95" 96" -------Nastran Statement 97" 98syn keyword nastranNastranCard nastran 99" 100" -------The File Management Section (FMS) 101" 102syn region nastranFMSCard start=+^ *[Aa][Cc][Qq][Uu][Ii]+ end=+$+ oneline 103syn region nastranFMSCard start=+^ *[Aa][Ss][Ss][Ii][Gg]+ end=+$+ oneline 104syn region nastranFMSCard start=+^ *[Cc][oO][Nn][Nn][Ee]+ end=+$+ oneline 105syn region nastranFMSCard start=+^ *[Dd][Bb][Cc][Ll][Ee]+ end=+$+ oneline 106syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Cc]+ end=+$+ oneline 107syn region nastranFMSCard start=+^ *[Dd][Bb][Dd][Ii][Rr]+ end=+$+ oneline 108syn region nastranFMSCard start=+^ *[Dd][Bb][Ff][Ii][Xx]+ end=+$+ oneline 109syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Aa]+ end=+$+ oneline 110syn region nastranFMSCard start=+^ *[Dd][Bb][Ll][Oo][Cc]+ end=+$+ oneline 111syn region nastranFMSCard start=+^ *[Dd][Bb][Ss][Ee][Tt]+ end=+$+ oneline 112syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Nn][Ll]+ end=+$+ oneline 113syn region nastranFMSCard start=+^ *[Dd][Bb][Uu][Pp][Dd]+ end=+$+ oneline 114syn region nastranFMSCard start=+^ *[Dd][Ee][Ff][Ii][Nn]+ end=+$+ oneline 115syn region nastranFMSCard start=+^ *[Ee][Nn][Dd][Jj][Oo]+ end=+$+ oneline 116syn region nastranFMSCard start=+^ *[Ee][Xx][Pp][Aa][Nn]+ end=+$+ oneline 117syn region nastranFMSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+ oneline 118syn region nastranFMSCard start=+^ *[Ii][Nn][Ii][Tt]+ end=+$+ oneline 119syn region nastranFMSCard start=+^ *[Pp][Rr][Oo][Jj]+ end=+$+ oneline 120syn region nastranFMSCard start=+^ *[Rr][Ee][Ss][Tt]+ end=+$+ oneline 121syn match nastranDmapUtilmod "^ *[Rr][Ee][Ss][Tt][Aa].*,.*," contains=nastranDmapComment 122" 123" -------Executive Control Section 124" 125syn region nastranECSCard start=+^ *[Aa][Ll][Tt][Ee][Rr]+ end=+$+ oneline 126syn region nastranECSCard start=+^ *[Aa][Pp][Pp]+ end=+$+ oneline 127syn region nastranECSCard start=+^ *[Cc][Oo][Mm][Pp][Ii]+ end=+$+ oneline 128syn region nastranECSCard start=+^ *[Dd][Ii][Aa][Gg] + end=+$+ oneline 129syn region nastranECSCard start=+^ *[Ee][Cc][Hh][Oo]+ end=+$+ oneline 130syn region nastranECSCard start=+^ *[Ee][Nn][Dd][Aa][Ll]+ end=+$+ oneline 131syn region nastranECSCard start=+^ *[Ii][Dd]+ end=+$+ oneline 132syn region nastranECSCard start=+^ *[Ii][Nn][Cc][Ll][Uu]+ end=+$+ oneline 133syn region nastranECSCard start=+^ *[Ll][Ii][Nn][Kk]+ end=+$+ oneline 134syn region nastranECSCard start=+^ *[Mm][Aa][Ll][Tt][Ee]+ end=+$+ oneline 135syn region nastranECSCard start=+^ *[Ss][Oo][Ll] + end=+$+ oneline 136syn region nastranECSCard start=+^ *[Tt][Ii][Mm][Ee]+ end=+$+ oneline 137" 138" -------Delimiters 139" 140syn match nastranDelimiter "[Cc][Ee][Nn][Dd]" contained 141syn match nastranDelimiter "[Bb][Ee][Gg][Ii][Nn]" contained 142syn match nastranDelimiter " *[Bb][Uu][Ll][Kk]" contained 143syn match nastranDelimiter "[Ee][Nn][Dd] *[dD][Aa][Tt][Aa]" contained 144" 145" -------Case Control section 146" 147syn region nastranCC start=+^ *[Cc][Ee][Nn][Dd]+ end=+^ *[Bb][Ee][Gg][Ii][Nn]+ contains=nastranDelimiter,nastranBulkData,nastranDmapComment 148 149" 150" -------Bulk Data section 151" 152syn region nastranBulkData start=+ *[Bb][Uu][Ll][Kk] *$+ end=+^ [Ee][Nn][Dd] *[Dd]+ contains=nastranDelimiter,nastranDmapComment 153" 154" -------The following cards may appear in multiple sections of the file 155" 156syn keyword nastranUtilCard ECHOON ECHOOFF INCLUDE PARAM 157 158 159if version >= 508 || !exists("did_nastran_syntax_inits") 160 if version < 508 161 let did_nastran_syntax_inits = 1 162 command -nargs=+ HiLink hi link <args> 163 else 164 command -nargs=+ HiLink hi link <args> 165 endif 166 " The default methods for highlighting. Can be overridden later 167 HiLink nastranDmapexecmod Statement 168 HiLink nastranDmapType Type 169 HiLink nastranDmapPreCondit Error 170 HiLink nastranDmapUtilmod PreProc 171 HiLink nastranDmapMatmod nastranDmapUtilmod 172 HiLink nastranDmapString String 173 HiLink nastranDmapNumber Constant 174 HiLink nastranDmapFloat nastranDmapNumber 175 HiLink nastranDmapInitTab nastranDmapNumber 176 HiLink nastranDmapTab nastranDmapNumber 177 HiLink nastranDmapLogical nastranDmapExecmod 178 HiLink nastranDmapImplicit Identifier 179 HiLink nastranDmapComment Comment 180 HiLink nastranDmapRepeat nastranDmapexecmod 181 HiLink nastranNastranCard nastranDmapPreCondit 182 HiLink nastranECSCard nastranDmapUtilmod 183 HiLink nastranFMSCard nastranNastranCard 184 HiLink nastranCC nastranDmapexecmod 185 HiLink nastranDelimiter Special 186 HiLink nastranBulkData nastranDmapType 187 HiLink nastranUtilCard nastranDmapexecmod 188 delcommand HiLink 189endif 190 191let b:current_syntax = "nastran" 192 193"EOF vim: ts=8 noet tw=120 sw=8 sts=0 194