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