| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language: Essbase script | 
					
						
							|  |  |  | " Maintainer:	Raul Segura Acevedo <raulseguraaceved@netscape.net> | 
					
						
							| 
									
										
										
										
											2011-12-30 13:11:27 +01:00
										 |  |  | " Last change:	2011 Dec 25 by Thilo Six | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-30 13:11:27 +01:00
										 |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " 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" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-12-30 13:11:27 +01:00
										 |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " vim: ts=8 |