diff runtime/syntax/csc.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 91e53bcb7946
line wrap: on
line diff
new file mode 100644
--- /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