diff options
Diffstat (limited to 'runtime/syntax/csc.vim')
-rw-r--r-- | runtime/syntax/csc.vim | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/runtime/syntax/csc.vim b/runtime/syntax/csc.vim new file mode 100644 index 000000000..8d67334aa --- /dev/null +++ b/runtime/syntax/csc.vim @@ -0,0 +1,199 @@ +" Vim syntax file +" Language: Essbase script +" Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net> +" Last change: 2001 Sep 25 + +" 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 + +" 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 version >= 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 <args> + else + command -nargs=+ HiLink hi def link <args> + 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" + +" vim: ts=8 |