neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

spup.vim (13926B)


      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:  2012 Feb 03 by Thilo Six
      6 " Filename:     spup.vim
      7 
      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.
     16 "
     17 " If you encounter problems or have questions or suggestions, mail me
     18 
     19 " Remove old syntax stuff
     20 " quit when a syntax file was already loaded
     21 if exists("b:current_syntax")
     22    finish
     23 endif
     24 
     25 let s:cpo_save = &cpo
     26 set cpo&vim
     27 
     28 " don't highlight several keywords like subsections
     29 "let strict_subsections = 1
     30 
     31 " highlight types usually found in DECLARE section
     32 if !exists("highlight_types")
     33    let highlight_types = 1
     34 endif
     35 
     36 " one line comment syntax (# comments)
     37 " 1. allow appended code after comment, do not complain
     38 " 2. show code beginning 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
     43 
     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
     64 
     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
     82 
     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
     95 
     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
    126 
    127 " stream types
    128 syn keyword spupStreams  mainstream vapour liquid contained
    129 
    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
    175 
    176 syn cluster spupOrdinary  contains=spupNumber,spupIdentifier,spupSymbol
    177 syn cluster spupOrdinary  add=spupError,spupString,spupComment
    178 syn cluster spupTextproc  contains=spupTextprocGeneric,spupTextprocError
    179 
    180 " define synchronizing; especially OPERATION sections can become very large
    181 syn sync clear
    182 syn sync minlines=100
    183 syn sync maxlines=500
    184 
    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"
    204 
    205 " Define the default highlighting.
    206 " Only when an item doesn't have highlighting yet
    207 
    208 hi def link spupCdi	    spupSection
    209 hi def link spupConditions   spupSection
    210 hi def link spupDeclare	    spupSection
    211 hi def link spupEstimation   spupSection
    212 hi def link spupExternal	    spupSection
    213 hi def link spupFlowsheet    spupSection
    214 hi def link spupFunction	    spupSection
    215 hi def link spupGlobal	    spupSection
    216 hi def link spupHomotopy	    spupSection
    217 hi def link spupMacro	    spupSection
    218 hi def link spupModel	    spupSection
    219 hi def link spupOperation    spupSection
    220 hi def link spupOptions	    spupSection
    221 hi def link spupProcedure    spupSection
    222 hi def link spupProfiles	    spupSection
    223 hi def link spupReport	    spupSection
    224 hi def link spupTitle	    spupConstant  " this is correct, truly ;)
    225 hi def link spupUnit	    spupSection
    226 
    227 hi def link spupCdiSubs	      spupSubs
    228 hi def link spupConditionsSubs spupSubs
    229 hi def link spupDeclareSubs    spupSubs
    230 hi def link spupEstimationSubs spupSubs
    231 hi def link spupExternalSubs   spupSubs
    232 hi def link spupFlowsheetSubs  spupSubs
    233 hi def link spupFunctionSubs   spupSubs
    234 hi def link spupHomotopySubs   spupSubs
    235 hi def link spupMacroSubs      spupSubs
    236 hi def link spupModelSubs      spupSubs
    237 hi def link spupOperationSubs  spupSubs
    238 hi def link spupOptionsSubs    spupSubs
    239 hi def link spupProcedureSubs  spupSubs
    240 hi def link spupReportSubs     spupSubs
    241 hi def link spupUnitSubs	      spupSubs
    242 
    243 hi def link spupCode	       Normal
    244 hi def link spupComment	       Comment
    245 hi def link spupComment2	       spupComment
    246 hi def link spupConditional     Statement
    247 hi def link spupConstant	       Constant
    248 hi def link spupError	       Error
    249 hi def link spupHelp	       Normal
    250 hi def link spupIdentifier      Identifier
    251 hi def link spupNumber	       Constant
    252 hi def link spupOperator	       Special
    253 hi def link spupOpenBrace       spupError
    254 hi def link spupSection	       Statement
    255 hi def link spupSpecial	       spupTextprocGeneric
    256 hi def link spupStreams	       Type
    257 hi def link spupString	       Constant
    258 hi def link spupSubs	       Statement
    259 hi def link spupSymbol	       Special
    260 hi def link spupTextprocError   Normal
    261 hi def link spupTextprocGeneric PreProc
    262 hi def link spupTypes	       Type
    263 
    264 
    265 let b:current_syntax = "spup"
    266 
    267 let &cpo = s:cpo_save
    268 unlet s:cpo_save
    269 " vim:ts=8