Merge branch 'master' of http://repo.or.cz/r/msysgit into devel
[msysgit/historical-msysgit.git] / share / vim / vim58 / syntax / spup.vim
bloba2ff15cfcd23bdca1fdc4e320dd835c970b63fef
1 " Vim syntax file
2 " Language:     Speedup, plant simulator from AspenTech
3 " Maintainer:   Stefan.Schwarzer <s.schwarzer@ndh.net>
4 " URL:          http://www.ndh.net/home/sschwarzer/download/spup.vim
5 " Last Change:  2001 Apr 29
6 " Filename:     spup.vim
8 " Bugs
9 " - in the appropriate sections keywords are always highlighted
10 "   even if they are not used with the appropriate meaning;
11 "   example: in
12 "       MODEL demonstration
13 "       TYPE
14 "      *area AS area
15 "   both "area" are highlighted as spupType.
17 " If you encounter problems or have questions or suggestions, mail me
19 " Remove old syntax stuff
20 " For version 5.x: Clear all syntax items
21 " For version 6.x: Quit when a syntax file was already loaded
22 if version < 600
23     syntax clear
24 elseif exists("b:current_syntax")
25     finish
26 endif
28 " don't hightlight several keywords like subsections
29 "let strict_subsections = 1
31 " highlight types usually found in DECLARE section
32 if !exists("hightlight_types")
33     let highlight_types = 1
34 endif
36 " one line comment syntax (# comments)
37 " 1. allow appended code after comment, do not complain
38 " 2. show code beginnig with the second # as an error
39 " 3. show whole lines with more than one # as an error
40 if !exists("oneline_comments")
41     let oneline_comments = 2
42 endif
44 " Speedup SECTION regions
45 syn case ignore
46 syn region spupCdi        matchgroup=spupSection start="^CDI"        end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
47 syn region spupConditions matchgroup=spupSection start="^CONDITIONS" end="^\*\*\*\*" contains=spupConditionsSubs,@spupOrdinary,spupConditional,spupOperator,spupCode
48 syn region spupDeclare    matchgroup=spupSection start="^DECLARE"    end="^\*\*\*\*" contains=spupDeclareSubs,@spupOrdinary,spupTypes,spupCode
49 syn region spupEstimation matchgroup=spupSection start="^ESTIMATION" end="^\*\*\*\*" contains=spupEstimationSubs,@spupOrdinary
50 syn region spupExternal   matchgroup=spupSection start="^EXTERNAL"   end="^\*\*\*\*" contains=spupExternalSubs,@spupOrdinary
51 syn region spupFlowsheet  matchgroup=spupSection start="^FLOWSHEET"  end="^\*\*\*\*" contains=spupFlowsheetSubs,@spupOrdinary,spupStreams,@spupTextproc
52 syn region spupFunction   matchgroup=spupSection start="^FUNCTION"   end="^\*\*\*\*" contains=spupFunctionSubs,@spupOrdinary,spupHelp,spupCode,spupTypes
53 syn region spupGlobal     matchgroup=spupSection start="^GLOBAL"     end="^\*\*\*\*" contains=spupGlobalSubs,@spupOrdinary
54 syn region spupHomotopy   matchgroup=spupSection start="^HOMOTOPY"   end="^\*\*\*\*" contains=spupHomotopySubs,@spupOrdinary
55 syn region spupMacro      matchgroup=spupSection start="^MACRO"      end="^\*\*\*\*" contains=spupMacroSubs,@spupOrdinary,@spupTextproc,spupTypes,spupStreams,spupOperator
56 syn region spupModel      matchgroup=spupSection start="^MODEL"      end="^\*\*\*\*" contains=spupModelSubs,@spupOrdinary,spupConditional,spupOperator,spupTypes,spupStreams,@spupTextproc,spupHelp
57 syn region spupOperation  matchgroup=spupSection start="^OPERATION"  end="^\*\*\*\*" contains=spupOperationSubs,@spupOrdinary,@spupTextproc
58 syn region spupOptions    matchgroup=spupSection start="^OPTIONS"    end="^\*\*\*\*" contains=spupOptionsSubs,@spupOrdinary
59 syn region spupProcedure  matchgroup=spupSection start="^PROCEDURE"  end="^\*\*\*\*" contains=spupProcedureSubs,@spupOrdinary,spupHelp,spupCode,spupTypes
60 syn region spupProfiles   matchgroup=spupSection start="^PROFILES"   end="^\*\*\*\*" contains=@spupOrdinary,@spupTextproc
61 syn region spupReport     matchgroup=spupSection start="^REPORT"     end="^\*\*\*\*" contains=spupReportSubs,@spupOrdinary,spupHelp,@spupTextproc
62 syn region spupTitle      matchgroup=spupSection start="^TITLE"      end="^\*\*\*\*" contains=spupTitleSubs,spupComment,spupConstant,spupError
63 syn region spupUnit       matchgroup=spupSection start="^UNIT"       end="^\*\*\*\*" contains=spupUnitSubs,@spupOrdinary
65 " Subsections
66 syn keyword spupCdiSubs        INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
67 syn keyword spupDeclareSubs    TYPE STREAM contained
68 syn keyword spupEstimationSubs ESTIMATE SSEXP DYNEXP RESULT contained
69 syn keyword spupExternalSubs   TRANSMIT RECEIVE contained
70 syn keyword spupFlowsheetSubs  STREAM contained
71 syn keyword spupFunctionSubs   INPUT OUTPUT contained
72 syn keyword spupGlobalSubs     VARIABLES MAXIMIZE MINIMIZE CONSTRAINT contained
73 syn keyword spupHomotopySubs   VARY OPTIONS contained
74 syn keyword spupMacroSubs      MODEL FLOWSHEET contained
75 syn keyword spupModelSubs      CATEGORY SET TYPE STREAM EQUATION PROCEDURE contained
76 syn keyword spupOperationSubs  SET PRESET INITIAL SSTATE FREE contained
77 syn keyword spupOptionsSubs    ROUTINES TRANSLATE EXECUTION contained
78 syn keyword spupProcedureSubs  INPUT OUTPUT SPACE PRECALL POSTCALL DERIVATIVE STREAM contained
79 " no subsections for Profiles
80 syn keyword spupReportSubs     SET INITIAL FIELDS FIELDMARK DISPLAY WITHIN contained
81 syn keyword spupUnitSubs       ROUTINES SET contained
83 " additional keywords for subsections
84 if !exists( "strict_subsections" )
85     syn keyword spupConditionsSubs STOP PRINT contained
86     syn keyword spupDeclareSubs    UNIT SET COMPONENTS THERMO OPTIONS contained
87     syn keyword spupEstimationSubs VARY MEASURE INITIAL contained
88     syn keyword spupFlowsheetSubs  TYPE FEED PRODUCT INPUT OUTPUT CONNECTION OF IS contained
89     syn keyword spupMacroSubs      CONNECTION STREAM SET INPUT OUTPUT OF IS FEED PRODUCT TYPE contained
90     syn keyword spupModelSubs      AS ARRAY OF INPUT OUTPUT CONNECTION contained
91     syn keyword spupOperationSubs  WITHIN contained
92     syn keyword spupReportSubs     LEFT RIGHT CENTER CENTRE UOM TIME DATE VERSION RELDATE contained
93     syn keyword spupUnitSubs       IS A contained
94 endif
96 " Speedup data types
97 if exists( "highlight_types" )
98     syn keyword spupTypes act_coeff_liq area coefficient concentration contained
99     syn keyword spupTypes control_signal cond_liq cond_vap cp_mass_liq contained
100     syn keyword spupTypes cp_mol_liq cp_mol_vap cv_mol_liq cv_mol_vap contained
101     syn keyword spupTypes diffus_liq diffus_vap delta_p dens_mass contained
102     syn keyword spupTypes dens_mass_sol dens_mass_liq dens_mass_vap dens_mol contained
103     syn keyword spupTypes dens_mol_sol dens_mol_liq dens_mol_vap enthflow contained
104     syn keyword spupTypes enth_mass enth_mass_liq enth_mass_vap enth_mol contained
105     syn keyword spupTypes enth_mol_sol enth_mol_liq enth_mol_vap entr_mol contained
106     syn keyword spupTypes entr_mol_sol entr_mol_liq entr_mol_vap fraction contained
107     syn keyword spupTypes flow_mass flow_mass_liq flow_mass_vap flow_mol contained
108     syn keyword spupTypes flow_mol_vap flow_mol_liq flow_vol flow_vol_vap contained
109     syn keyword spupTypes flow_vol_liq fuga_vap fuga_liq fuga_sol contained
110     syn keyword spupTypes gibb_mol_sol heat_react heat_trans_coeff contained
111     syn keyword spupTypes holdup_heat holdup_heat_liq holdup_heat_vap contained
112     syn keyword spupTypes holdup_mass holdup_mass_liq holdup_mass_vap contained
113     syn keyword spupTypes holdup_mol holdup_mol_liq holdup_mol_vap k_value contained
114     syn keyword spupTypes length length_delta length_short liqfraction contained
115     syn keyword spupTypes liqmassfraction mass massfraction molefraction contained
116     syn keyword spupTypes molweight moment_inertia negative notype percent contained
117     syn keyword spupTypes positive pressure press_diff press_drop press_rise contained
118     syn keyword spupTypes ratio reaction reaction_mass rotation surf_tens contained
119     syn keyword spupTypes temperature temperature_abs temp_diff temp_drop contained
120     syn keyword spupTypes temp_rise time vapfraction vapmassfraction contained
121     syn keyword spupTypes velocity visc_liq visc_vap volume zmom_rate contained
122     syn keyword spupTypes seg_rate smom_rate tmom_rate zmom_mass seg_mass contained
123     syn keyword spupTypes smom_mass tmom_mass zmom_holdup seg_holdup contained
124     syn keyword spupTypes smom_holdup tmom_holdup contained
125 endif
127 " stream types
128 syn keyword spupStreams  mainstream vapour liquid contained
130 " "conditional" keywords
131 syn keyword spupConditional  IF THEN ELSE ENDIF contained
132 " Operators, symbols etc.
133 syn keyword spupOperator  AND OR NOT contained
134 syn match spupSymbol  "[,\-+=:;*/\"<>@%()]" contained
135 syn match spupSpecial  "[&\$?]" contained
136 " Surprisingly, Speedup allows no unary + instead of the -
137 syn match spupError  "[(=+\-*/]\s*+\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained
138 syn match spupError  "[(=+\-*/]\s*+\d\+\.\([ed][+-]\=\d\+\)\=\>"lc=1 contained
139 syn match spupError  "[(=+\-*/]\s*+\d*\.\d\+\([ed][+-]\=\d\+\)\=\>"lc=1 contained
140 " String
141 syn region spupString  start=+"+  end=+"+  oneline contained
142 syn region spupString  start=+'+  end=+'+  oneline contained
143 " Identifier
144 syn match spupIdentifier  "\<[a-z][a-z0-9_]*\>" contained
145 " Textprocessor directives
146 syn match spupTextprocGeneric  "?[a-z][a-z0-9_]*\>" contained
147 syn region spupTextprocError matchgroup=spupTextprocGeneric start="?ERROR"  end="?END"he=s-1 contained
148 " Number, without decimal point
149 syn match spupNumber  "-\=\d\+\([ed][+-]\=\d\+\)\=" contained
150 " Number, allows 1. before exponent
151 syn match spupNumber  "-\=\d\+\.\([ed][+-]\=\d\+\)\=" contained
152 " Number allows .1 before exponent
153 syn match spupNumber  "-\=\d*\.\d\+\([ed][+-]\=\d\+\)\=" contained
154 " Help subsections
155 syn region spupHelp  start="^HELP"hs=e+1  end="^\$ENDHELP"he=s-1 contained
156 " Fortran code
157 syn region spupCode  start="^CODE"hs=e+1  end="^\$ENDCODE"he=s-1 contained
158 " oneline comments
159 if oneline_comments > 3
160     oneline_comments = 2   " default
161 endif
162 if oneline_comments == 1
163     syn match spupComment  "#[^#]*#\="
164 elseif oneline_comments == 2
165     syn match spupError  "#.*$"
166     syn match spupComment  "#[^#]*"  nextgroup=spupError
167 elseif oneline_comments == 3
168     syn match spupComment  "#[^#]*"
169     syn match spupError  "#[^#]*#.*"
170 endif
171 " multiline comments
172 syn match spupOpenBrace "{" contained
173 syn match spupError  "}"
174 syn region spupComment  matchgroup=spupComment2  start="{"  end="}"  keepend  contains=spupOpenBrace
176 syn cluster spupOrdinary  contains=spupNumber,spupIdentifier,spupSymbol
177 syn cluster spupOrdinary  add=spupError,spupString,spupComment
178 syn cluster spupTextproc  contains=spupTextprocGeneric,spupTextprocError
180 " define syncronizing; especially OPERATION sections can become very large
181 syn sync clear
182 syn sync minlines=100
183 syn sync maxlines=500
185 syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
186 syn sync match spupSyncCdi        grouphere spupCdi        "^CDI"
187 syn sync match spupSyncConditions grouphere spupConditions "^CONDITIONS"
188 syn sync match spupSyncDeclare    grouphere spupDeclare    "^DECLARE"
189 syn sync match spupSyncEstimation grouphere spupEstimation "^ESTIMATION"
190 syn sync match spupSyncExternal   grouphere spupExternal   "^EXTERNAL"
191 syn sync match spupSyncFlowsheet  grouphere spupFlowsheet  "^FLOWSHEET"
192 syn sync match spupSyncFunction   grouphere spupFunction   "^FUNCTION"
193 syn sync match spupSyncGlobal     grouphere spupGlobal     "^GLOBAL"
194 syn sync match spupSyncHomotopy   grouphere spupHomotopy   "^HOMOTOPY"
195 syn sync match spupSyncMacro      grouphere spupMacro      "^MACRO"
196 syn sync match spupSyncModel      grouphere spupModel      "^MODEL"
197 syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
198 syn sync match spupSyncOptions    grouphere spupOptions    "^OPTIONS"
199 syn sync match spupSyncProcedure  grouphere spupProcedure  "^PROCEDURE"
200 syn sync match spupSyncProfiles   grouphere spupProfiles   "^PROFILES"
201 syn sync match spupSyncReport     grouphere spupReport     "^REPORT"
202 syn sync match spupSyncTitle      grouphere spupTitle      "^TITLE"
203 syn sync match spupSyncUnit       grouphere spupUnit       "^UNIT"
205 " Define the default highlighting.
206 " For version 5.7 and earlier: only when not done already
207 " For version 5.8 and later: only when an item doesn't have highlighting yet
208 if version >= 508 || !exists("did_spup_syn_inits")
209     if version < 508
210         let did_spup_syn_inits = 1
211         command -nargs=+ HiLink hi link <args>
212     else
213         command -nargs=+ HiLink hi def link <args>
214     endif
216     HiLink spupCdi        spupSection
217     HiLink spupConditions spupSection
218     HiLink spupDeclare    spupSection
219     HiLink spupEstimation spupSection
220     HiLink spupExternal   spupSection
221     HiLink spupFlowsheet  spupSection
222     HiLink spupFunction   spupSection
223     HiLink spupGlobal     spupSection
224     HiLink spupHomotopy   spupSection
225     HiLink spupMacro      spupSection
226     HiLink spupModel      spupSection
227     HiLink spupOperation  spupSection
228     HiLink spupOptions    spupSection
229     HiLink spupProcedure  spupSection
230     HiLink spupProfiles   spupSection
231     HiLink spupReport     spupSection
232     HiLink spupTitle      spupConstant  " this is correct, truly ;)
233     HiLink spupUnit       spupSection
235     HiLink spupCdiSubs        spupSubs
236     HiLink spupConditionsSubs spupSubs
237     HiLink spupDeclareSubs    spupSubs
238     HiLink spupEstimationSubs spupSubs
239     HiLink spupExternalSubs   spupSubs
240     HiLink spupFlowsheetSubs  spupSubs
241     HiLink spupFunctionSubs   spupSubs
242     HiLink spupHomotopySubs   spupSubs
243     HiLink spupMacroSubs      spupSubs
244     HiLink spupModelSubs      spupSubs
245     HiLink spupOperationSubs  spupSubs
246     HiLink spupOptionsSubs    spupSubs
247     HiLink spupProcedureSubs  spupSubs
248     HiLink spupReportSubs     spupSubs
249     HiLink spupUnitSubs       spupSubs
251     HiLink spupCode            Normal
252     HiLink spupComment         Comment
253     HiLink spupComment2        spupComment
254     HiLink spupConditional     Statement
255     HiLink spupConstant        Constant
256     HiLink spupError           Error
257     HiLink spupHelp            Normal
258     HiLink spupIdentifier      Identifier
259     HiLink spupNumber          Constant
260     HiLink spupOperator        Special
261     HiLink spupOpenBrace       spupError
262     HiLink spupSection         Statement
263     HiLink spupSpecial         spupTextprocGeneric
264     HiLink spupStreams         Type
265     HiLink spupString          Constant
266     HiLink spupSubs            Statement
267     HiLink spupSymbol          Special
268     HiLink spupTextprocError   Normal
269     HiLink spupTextprocGeneric PreProc
270     HiLink spupTypes           Type
272     delcommand HiLink
273 endif
275 let b:current_syntax = "spup"
277 " vim:ts=4