123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- " Vim syntax file
- " Language: Essbase script
- " Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net>
- " Last change: 2011 Dec 25 by Thilo Six
- " quit when a syntax file was already loaded
- if exists("b:current_syntax")
- finish
- endif
- let s:cpo_save = &cpo
- set cpo&vim
- " folds: fix/endfix and comments
- sy region EssFold start="\<Fix" end="EndFix" transparent fold
- sy keyword cscTodo contained TODO FIXME XXX
- " cscCommentGroup allows adding matches for special things in comments
- sy cluster cscCommentGroup contains=cscTodo
- " Strings in quotes
- sy match cscError '"'
- sy match cscString '"[^"]*"'
- "when wanted, highlight trailing white space
- if exists("csc_space_errors")
- if !exists("csc_no_trail_space_error")
- sy match cscSpaceE "\s\+$"
- endif
- if !exists("csc_no_tab_space_error")
- sy match cscSpaceE " \+\t"me=e-1
- endif
- endif
- "catch errors caused by wrong parenthesis and brackets
- sy cluster cscParenGroup contains=cscParenE,@cscCommentGroup,cscUserCont,cscBitField,cscFormat,cscNumber,cscFloat,cscOctal,cscNumbers,cscIfError,cscComW,cscCom,cscFormula,cscBPMacro
- sy region cscParen transparent start='(' end=')' contains=ALLBUT,@cscParenGroup
- sy match cscParenE ")"
- "integer number, or floating point number without a dot and with "f".
- sy case ignore
- sy match cscNumbers transparent "\<\d\|\.\d" contains=cscNumber,cscFloat,cscOctal
- sy match cscNumber contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
- "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*\<SET.*"
- sy match cscCom "^\s*\<SET\s\+Commands"
- sy match cscCom "^\s*\<SET\s\+AGGMISSG"
- sy match cscCom "^\s*\<SET\s\+CACHE"
- sy match cscCom "^\s*\<SET\s\+CALCHASHTBL"
- sy match cscCom "^\s*\<SET\s\+CLEARUPDATESTATUS"
- sy match cscCom "^\s*\<SET\s\+FRMLBOTTOMUP"
- sy match cscCom "^\s*\<SET\s\+LOCKBLOCK"
- sy match cscCom "^\s*\<SET\s\+MSG"
- sy match cscCom "^\s*\<SET\s\+NOTICE"
- sy match cscCom "^\s*\<SET\s\+UPDATECALC"
- sy match cscCom "^\s*\<SET\s\+UPTOLOCAL"
- sy keyword cscBPMacro contained !LoopOnAll !LoopOnLevel !LoopOnSelected
- sy keyword cscBPMacro contained !CurrentMember !LoopOnDimensions !CurrentDimension
- sy keyword cscBPMacro contained !CurrentOtherLoopDimension !LoopOnOtherLoopDimensions
- sy keyword cscBPMacro contained !EndLoop !AllMembers !SelectedMembers !If !Else !EndIf
- sy keyword cscBPMacro contained LoopOnAll LoopOnLevel LoopOnSelected
- sy keyword cscBPMacro contained CurrentMember LoopOnDimensions CurrentDimension
- sy keyword cscBPMacro contained CurrentOtherLoopDimension LoopOnOtherLoopDimensions
- sy keyword cscBPMacro contained EndLoop AllMembers SelectedMembers If Else EndIf
- sy match cscBPMacro contained "!"
- sy match cscBPW "!\s*\a*" contains=cscBPmacro
- " when wanted, highlighting lhs members or erros in asignments (may lag the editing)
- if 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.
- " Only when an item doesn't have highlighting yet
- hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue
- hi def link cscNumber Number
- hi def link cscOctal Number
- hi def link cscFloat Float
- hi def link cscParenE Error
- hi def link cscCommentE Error
- hi def link cscSpaceE Error
- hi def link cscError Error
- hi def link cscString String
- hi def link cscComment Comment
- hi def link cscTodo Todo
- hi def link cscStatement Statement
- hi def link cscIfError Error
- hi def link cscEqError Error
- hi def link cscFunction Statement
- hi def link cscCondition Statement
- hi def link cscWarn WarningMsg
- hi def link cscComE Error
- hi def link cscCom Statement
- hi def link cscComW WarningMsg
- hi def link cscBPMacro Identifier
- hi def link cscBPW WarningMsg
- let b:current_syntax = "csc"
- let &cpo = s:cpo_save
- unlet s:cpo_save
- " vim: ts=8
|