" Vim syntax file " Language: Essbase script " Maintainer: Raul Segura Acevedo " Last change: 2011 Dec 25 by Thilo Six " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim " folds: fix/endfix and comments sy region EssFold start="\" "hex number sy match cscNumber contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" " Flag the first zero of an octal number as something special sy match cscOctal contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" sy match cscFloat contained "\d\+f" "floating point number, with dot, optional exponent sy match cscFloat contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" "floating point number, starting with a dot, optional exponent sy match cscFloat contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" "floating point number, without dot, with exponent sy match cscFloat contained "\d\+e[-+]\=\d\+[fl]\=\>" sy region cscComment start="/\*" end="\*/" contains=@cscCommentGroup,cscSpaceE fold sy match cscCommentE "\*/" sy keyword cscIfError IF ELSE ENDIF ELSEIF sy keyword cscCondition contained IF ELSE ENDIF ELSEIF sy keyword cscFunction contained VARPER VAR UDA TRUNCATE SYD SUMRANGE SUM sy keyword cscFunction contained STDDEVRANGE STDDEV SPARENTVAL SLN SIBLINGS SHIFT sy keyword cscFunction contained SANCESTVAL RSIBLINGS ROUND REMAINDER RELATIVE PTD sy keyword cscFunction contained PRIOR POWER PARENTVAL NPV NEXT MOD MINRANGE MIN sy keyword cscFunction contained MDSHIFT MDPARENTVAL MDANCESTVAL MAXRANGE MAX MATCH sy keyword cscFunction contained LSIBLINGS LEVMBRS LEV sy keyword cscFunction contained ISUDA ISSIBLING ISSAMELEV ISSAMEGEN ISPARENT ISMBR sy keyword cscFunction contained ISLEV ISISIBLING ISIPARENT ISIDESC ISICHILD ISIBLINGS sy keyword cscFunction contained ISIANCEST ISGEN ISDESC ISCHILD ISANCEST ISACCTYPE sy keyword cscFunction contained IRSIBLINGS IRR INTEREST INT ILSIBLINGS IDESCENDANTS sy keyword cscFunction contained ICHILDREN IANCESTORS IALLANCESTORS sy keyword cscFunction contained GROWTH GENMBRS GEN FACTORIAL DISCOUNT DESCENDANTS sy keyword cscFunction contained DECLINE CHILDREN CURRMBRRANGE CURLEV CURGEN sy keyword cscFunction contained COMPOUNDGROWTH COMPOUND AVGRANGE AVG ANCESTVAL sy keyword cscFunction contained ANCESTORS ALLANCESTORS ACCUM ABS sy keyword cscFunction contained @VARPER @VAR @UDA @TRUNCATE @SYD @SUMRANGE @SUM sy keyword cscFunction contained @STDDEVRANGE @STDDEV @SPARENTVAL @SLN @SIBLINGS @SHIFT sy keyword cscFunction contained @SANCESTVAL @RSIBLINGS @ROUND @REMAINDER @RELATIVE @PTD sy keyword cscFunction contained @PRIOR @POWER @PARENTVAL @NPV @NEXT @MOD @MINRANGE @MIN sy keyword cscFunction contained @MDSHIFT @MDPARENTVAL @MDANCESTVAL @MAXRANGE @MAX @MATCH sy keyword cscFunction contained @LSIBLINGS @LEVMBRS @LEV sy keyword cscFunction contained @ISUDA @ISSIBLING @ISSAMELEV @ISSAMEGEN @ISPARENT @ISMBR sy keyword cscFunction contained @ISLEV @ISISIBLING @ISIPARENT @ISIDESC @ISICHILD @ISIBLINGS sy keyword cscFunction contained @ISIANCEST @ISGEN @ISDESC @ISCHILD @ISANCEST @ISACCTYPE sy keyword cscFunction contained @IRSIBLINGS @IRR @INTEREST @INT @ILSIBLINGS @IDESCENDANTS sy keyword cscFunction contained @ICHILDREN @IANCESTORS @IALLANCESTORS sy keyword cscFunction contained @GROWTH @GENMBRS @GEN @FACTORIAL @DISCOUNT @DESCENDANTS sy keyword cscFunction contained @DECLINE @CHILDREN @CURRMBRRANGE @CURLEV @CURGEN sy keyword cscFunction contained @COMPOUNDGROWTH @COMPOUND @AVGRANGE @AVG @ANCESTVAL sy keyword cscFunction contained @ANCESTORS @ALLANCESTORS @ACCUM @ABS sy match cscFunction contained "@" sy match cscError "@\s*\a*" contains=cscFunction sy match cscStatement "&" sy keyword cscStatement AGG ARRAY VAR CCONV CLEARDATA DATACOPY sy match cscComE contained "^\s*CALC.*" sy match cscComE contained "^\s*CLEARBLOCK.*" sy match cscComE contained "^\s*SET.*" sy match cscComE contained "^\s*FIX" sy match cscComE contained "^\s*ENDFIX" sy match cscComE contained "^\s*ENDLOOP" sy match cscComE contained "^\s*LOOP" " sy keyword cscCom FIX ENDFIX LOOP ENDLOOP sy match cscComW "^\s*CALC.*" sy match cscCom "^\s*CALC\s*ALL" sy match cscCom "^\s*CALC\s*AVERAGE" sy match cscCom "^\s*CALC\s*DIM" sy match cscCom "^\s*CALC\s*FIRST" sy match cscCom "^\s*CALC\s*LAST" sy match cscCom "^\s*CALC\s*TWOPASS" sy match cscComW "^\s*CLEARBLOCK.*" sy match cscCom "^\s*CLEARBLOCK\s\+ALL" sy match cscCom "^\s*CLEARBLOCK\s\+UPPER" sy match cscCom "^\s*CLEARBLOCK\s\+NONINPUT" sy match cscComW "^\s*\= 600 && exists("csc_asignment") sy match cscEqError '\("[^"]*"\s*\|[^][\t !%()*+,--/:;<=>{}~]\+\s*\|->\s*\)*=\([^=]\@=\|$\)' sy region cscFormula transparent matchgroup=cscVarName start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\s*=\([^=]\@=\|\n\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition sy region cscFormulaIn matchgroup=cscVarName transparent start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\(->\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\)*\s*=\([^=]\@=\|$\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition contained sy match cscEq "==" endif if !exists("csc_minlines") let csc_minlines = 50 " mostly for () constructs endif exec "sy sync ccomment cscComment minlines=" . csc_minlines " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_csc_syntax_inits") if version < 508 let did_csc_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue HiLink cscNumber Number HiLink cscOctal Number HiLink cscFloat Float HiLink cscParenE Error HiLink cscCommentE Error HiLink cscSpaceE Error HiLink cscError Error HiLink cscString String HiLink cscComment Comment HiLink cscTodo Todo HiLink cscStatement Statement HiLink cscIfError Error HiLink cscEqError Error HiLink cscFunction Statement HiLink cscCondition Statement HiLink cscWarn WarningMsg HiLink cscComE Error HiLink cscCom Statement HiLink cscComW WarningMsg HiLink cscBPMacro Identifier HiLink cscBPW WarningMsg delcommand HiLink endif let b:current_syntax = "csc" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8