xref: /vim-8.2.3635/runtime/syntax/nastran.vim (revision 00a927d6)
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