Merge branch 'vim-with-runtime' into feat/quickfix-title
[vim_extended.git] / runtime / syntax / csc.vim
blob8d67334aaef12594e2d8eb8f93e9275b2a19ddbf
1 " Vim syntax file
2 " Language: Essbase script
3 " Maintainer:   Raul Segura Acevedo <raulseguraaceved@netscape.net>
4 " Last change:  2001 Sep 25
6 " For version 5.x: Clear all syntax items
7 " For version 6.x: Quit when a syntax file was already loaded
8 if version < 600
9         syntax clear
10 elseif exists("b:current_syntax")
11         finish
12 endif
14 " folds: fix/endfix and comments
15 sy      region  EssFold start="\<Fix" end="EndFix" transparent fold
17 sy      keyword cscTodo contained TODO FIXME XXX
19 " cscCommentGroup allows adding matches for special things in comments
20 sy      cluster cscCommentGroup contains=cscTodo
22 " Strings in quotes
23 sy      match   cscError        '"'
24 sy      match   cscString       '"[^"]*"'
26 "when wanted, highlight trailing white space
27 if exists("csc_space_errors")
28         if !exists("csc_no_trail_space_error")
29                 sy      match   cscSpaceE       "\s\+$"
30         endif
31         if !exists("csc_no_tab_space_error")
32                 sy      match   cscSpaceE       " \+\t"me=e-1
33         endif
34 endif
36 "catch errors caused by wrong parenthesis and brackets
37 sy      cluster cscParenGroup   contains=cscParenE,@cscCommentGroup,cscUserCont,cscBitField,cscFormat,cscNumber,cscFloat,cscOctal,cscNumbers,cscIfError,cscComW,cscCom,cscFormula,cscBPMacro
38 sy      region  cscParen        transparent start='(' end=')' contains=ALLBUT,@cscParenGroup
39 sy      match   cscParenE       ")"
41 "integer number, or floating point number without a dot and with "f".
42 sy      case    ignore
43 sy      match   cscNumbers      transparent "\<\d\|\.\d" contains=cscNumber,cscFloat,cscOctal
44 sy      match   cscNumber       contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>"
45 "hex number
46 sy      match   cscNumber       contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
47 " Flag the first zero of an octal number as something special
48 sy      match   cscOctal        contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>"
49 sy      match   cscFloat        contained "\d\+f"
50 "floating point number, with dot, optional exponent
51 sy      match   cscFloat        contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
52 "floating point number, starting with a dot, optional exponent
53 sy      match   cscFloat        contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
54 "floating point number, without dot, with exponent
55 sy      match   cscFloat        contained "\d\+e[-+]\=\d\+[fl]\=\>"
57 sy      region  cscComment      start="/\*" end="\*/" contains=@cscCommentGroup,cscSpaceE fold
58 sy      match   cscCommentE     "\*/"
60 sy      keyword cscIfError      IF ELSE ENDIF ELSEIF
61 sy      keyword cscCondition    contained IF ELSE ENDIF ELSEIF
62 sy      keyword cscFunction     contained VARPER VAR UDA TRUNCATE SYD SUMRANGE SUM
63 sy      keyword cscFunction     contained STDDEVRANGE STDDEV SPARENTVAL SLN SIBLINGS SHIFT
64 sy      keyword cscFunction     contained SANCESTVAL RSIBLINGS ROUND REMAINDER RELATIVE PTD
65 sy      keyword cscFunction     contained PRIOR POWER PARENTVAL NPV NEXT MOD MINRANGE MIN
66 sy      keyword cscFunction     contained MDSHIFT MDPARENTVAL MDANCESTVAL MAXRANGE MAX MATCH
67 sy      keyword cscFunction     contained LSIBLINGS LEVMBRS LEV
68 sy      keyword cscFunction     contained ISUDA ISSIBLING ISSAMELEV ISSAMEGEN ISPARENT ISMBR
69 sy      keyword cscFunction     contained ISLEV ISISIBLING ISIPARENT ISIDESC ISICHILD ISIBLINGS
70 sy      keyword cscFunction     contained ISIANCEST ISGEN ISDESC ISCHILD ISANCEST ISACCTYPE
71 sy      keyword cscFunction     contained IRSIBLINGS IRR INTEREST INT ILSIBLINGS IDESCENDANTS
72 sy      keyword cscFunction     contained ICHILDREN IANCESTORS IALLANCESTORS
73 sy      keyword cscFunction     contained GROWTH GENMBRS GEN FACTORIAL DISCOUNT DESCENDANTS
74 sy      keyword cscFunction     contained DECLINE CHILDREN CURRMBRRANGE CURLEV CURGEN
75 sy      keyword cscFunction     contained COMPOUNDGROWTH COMPOUND AVGRANGE AVG ANCESTVAL
76 sy      keyword cscFunction     contained ANCESTORS ALLANCESTORS ACCUM ABS
77 sy      keyword cscFunction     contained @VARPER @VAR @UDA @TRUNCATE @SYD @SUMRANGE @SUM
78 sy      keyword cscFunction     contained @STDDEVRANGE @STDDEV @SPARENTVAL @SLN @SIBLINGS @SHIFT
79 sy      keyword cscFunction     contained @SANCESTVAL @RSIBLINGS @ROUND @REMAINDER @RELATIVE @PTD
80 sy      keyword cscFunction     contained @PRIOR @POWER @PARENTVAL @NPV @NEXT @MOD @MINRANGE @MIN
81 sy      keyword cscFunction     contained @MDSHIFT @MDPARENTVAL @MDANCESTVAL @MAXRANGE @MAX @MATCH
82 sy      keyword cscFunction     contained @LSIBLINGS @LEVMBRS @LEV
83 sy      keyword cscFunction     contained @ISUDA @ISSIBLING @ISSAMELEV @ISSAMEGEN @ISPARENT @ISMBR
84 sy      keyword cscFunction     contained @ISLEV @ISISIBLING @ISIPARENT @ISIDESC @ISICHILD @ISIBLINGS
85 sy      keyword cscFunction     contained @ISIANCEST @ISGEN @ISDESC @ISCHILD @ISANCEST @ISACCTYPE
86 sy      keyword cscFunction     contained @IRSIBLINGS @IRR @INTEREST @INT @ILSIBLINGS @IDESCENDANTS
87 sy      keyword cscFunction     contained @ICHILDREN @IANCESTORS @IALLANCESTORS
88 sy      keyword cscFunction     contained @GROWTH @GENMBRS @GEN @FACTORIAL @DISCOUNT @DESCENDANTS
89 sy      keyword cscFunction     contained @DECLINE @CHILDREN @CURRMBRRANGE @CURLEV @CURGEN
90 sy      keyword cscFunction     contained @COMPOUNDGROWTH @COMPOUND @AVGRANGE @AVG @ANCESTVAL
91 sy      keyword cscFunction     contained @ANCESTORS @ALLANCESTORS @ACCUM @ABS
92 sy      match   cscFunction     contained "@"
93 sy      match   cscError        "@\s*\a*" contains=cscFunction
95 sy      match   cscStatement    "&"
96 sy      keyword cscStatement    AGG ARRAY VAR CCONV CLEARDATA DATACOPY
98 sy      match   cscComE contained "^\s*CALC.*"
99 sy      match   cscComE contained "^\s*CLEARBLOCK.*"
100 sy      match   cscComE contained "^\s*SET.*"
101 sy      match   cscComE contained "^\s*FIX"
102 sy      match   cscComE contained "^\s*ENDFIX"
103 sy      match   cscComE contained "^\s*ENDLOOP"
104 sy      match   cscComE contained "^\s*LOOP"
105 " sy    keyword cscCom  FIX ENDFIX LOOP ENDLOOP
107 sy      match   cscComW "^\s*CALC.*"
108 sy      match   cscCom  "^\s*CALC\s*ALL"
109 sy      match   cscCom  "^\s*CALC\s*AVERAGE"
110 sy      match   cscCom  "^\s*CALC\s*DIM"
111 sy      match   cscCom  "^\s*CALC\s*FIRST"
112 sy      match   cscCom  "^\s*CALC\s*LAST"
113 sy      match   cscCom  "^\s*CALC\s*TWOPASS"
115 sy      match   cscComW "^\s*CLEARBLOCK.*"
116 sy      match   cscCom  "^\s*CLEARBLOCK\s\+ALL"
117 sy      match   cscCom  "^\s*CLEARBLOCK\s\+UPPER"
118 sy      match   cscCom  "^\s*CLEARBLOCK\s\+NONINPUT"
120 sy      match   cscComW "^\s*\<SET.*"
121 sy      match   cscCom  "^\s*\<SET\s\+Commands"
122 sy      match   cscCom  "^\s*\<SET\s\+AGGMISSG"
123 sy      match   cscCom  "^\s*\<SET\s\+CACHE"
124 sy      match   cscCom  "^\s*\<SET\s\+CALCHASHTBL"
125 sy      match   cscCom  "^\s*\<SET\s\+CLEARUPDATESTATUS"
126 sy      match   cscCom  "^\s*\<SET\s\+FRMLBOTTOMUP"
127 sy      match   cscCom  "^\s*\<SET\s\+LOCKBLOCK"
128 sy      match   cscCom  "^\s*\<SET\s\+MSG"
129 sy      match   cscCom  "^\s*\<SET\s\+NOTICE"
130 sy      match   cscCom  "^\s*\<SET\s\+UPDATECALC"
131 sy      match   cscCom  "^\s*\<SET\s\+UPTOLOCAL"
133 sy      keyword cscBPMacro      contained !LoopOnAll !LoopOnLevel !LoopOnSelected
134 sy      keyword cscBPMacro      contained !CurrentMember !LoopOnDimensions !CurrentDimension
135 sy      keyword cscBPMacro      contained !CurrentOtherLoopDimension !LoopOnOtherLoopDimensions
136 sy      keyword cscBPMacro      contained !EndLoop !AllMembers !SelectedMembers !If !Else !EndIf
137 sy      keyword cscBPMacro      contained LoopOnAll LoopOnLevel LoopOnSelected
138 sy      keyword cscBPMacro      contained CurrentMember LoopOnDimensions CurrentDimension
139 sy      keyword cscBPMacro      contained CurrentOtherLoopDimension LoopOnOtherLoopDimensions
140 sy      keyword cscBPMacro      contained EndLoop AllMembers SelectedMembers If Else EndIf
141 sy      match   cscBPMacro      contained       "!"
142 sy      match   cscBPW  "!\s*\a*"       contains=cscBPmacro
144 " when wanted, highlighting lhs members or erros in asignments (may lag the editing)
145 if version >= 600 && exists("csc_asignment")
146         sy      match   cscEqError      '\("[^"]*"\s*\|[^][\t !%()*+,--/:;<=>{}~]\+\s*\|->\s*\)*=\([^=]\@=\|$\)'
147         sy      region  cscFormula      transparent matchgroup=cscVarName start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\s*=\([^=]\@=\|\n\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition
148         sy      region  cscFormulaIn    matchgroup=cscVarName transparent start='\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\(->\("[^"]*"\|[^][\t !%()*+,--/:;<=>{}~]\+\)\)*\s*=\([^=]\@=\|$\)' skip='"[^"]*"' end=';' contains=ALLBUT,cscFormula,cscFormulaIn,cscBPMacro,cscCondition contained
149         sy      match   cscEq   "=="
150 endif
152 if !exists("csc_minlines")
153         let csc_minlines = 50   " mostly for () constructs
154 endif
155 exec "sy sync ccomment cscComment minlines=" . csc_minlines
157 " Define the default highlighting.
158 " For version 5.7 and earlier: only when not done already
159 " For version 5.8 and later: only when an item doesn't have highlighting yet
160 if version >= 508 || !exists("did_csc_syntax_inits")
161         if version < 508
162                 let did_csc_syntax_inits = 1
163                 command -nargs=+ HiLink hi link <args>
164         else
165                 command -nargs=+ HiLink hi def link <args>
166         endif
168         hi cscVarName term=bold ctermfg=9 gui=bold guifg=blue
170         HiLink  cscNumber       Number
171         HiLink  cscOctal        Number
172         HiLink  cscFloat        Float
173         HiLink  cscParenE       Error
174         HiLink  cscCommentE     Error
175         HiLink  cscSpaceE       Error
176         HiLink  cscError        Error
177         HiLink  cscString       String
178         HiLink  cscComment      Comment
179         HiLink  cscTodo         Todo
180         HiLink  cscStatement    Statement
181         HiLink  cscIfError      Error
182         HiLink  cscEqError      Error
183         HiLink  cscFunction     Statement
184         HiLink  cscCondition    Statement
185         HiLink  cscWarn         WarningMsg
187         HiLink  cscComE Error
188         HiLink  cscCom  Statement
189         HiLink  cscComW WarningMsg
191         HiLink  cscBPMacro      Identifier
192         HiLink  cscBPW          WarningMsg
194         delcommand HiLink
195 endif
197 let b:current_syntax = "csc"
199 " vim: ts=8