summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/cdl.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/cdl.vim')
-rw-r--r--runtime/syntax/cdl.vim78
1 files changed, 78 insertions, 0 deletions
diff --git a/runtime/syntax/cdl.vim b/runtime/syntax/cdl.vim
new file mode 100644
index 0000000..2a458d4
--- /dev/null
+++ b/runtime/syntax/cdl.vim
@@ -0,0 +1,78 @@
+" Vim syntax file
+" Language: Comshare Dimension Definition Language
+" Maintainer: Raul Segura Acevedo <raulseguraaceved@netscape.net>
+" Last change: 2016 Sep 20
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+sy case ignore
+sy sync fromstart
+sy keyword cdlStatement dimension hierarchy group grouphierarchy schedule class
+sy keyword cdlType add update file category main altername removeall required notrequired
+sy keyword cdlConditional if then elseif else endif and or not cons rpt xlt
+sy keyword cdlFunction ChildOf IChildOf LeafChildOf DescendantOf IDescendantOf LeafDescendantOf MemberIs CountOf
+
+sy keyword cdlIdentifier contained id name desc description xlttype precision symbol curr_ name group_name rate_name
+sy keyword cdlIdentifier contained xcheck endbal accounttype natsign consolidate formula pctown usage periodicity
+sy match cdlIdentifier contained 'child\s*name'
+sy match cdlIdentifier contained 'parent\s*name'
+sy match cdlIdentifier contained 'grp\s*description'
+sy match cdlIdentifier contained 'grpchild\s*name'
+sy match cdlIdentifier contained 'grpparent\s*name'
+sy match cdlIdentifier contained 'preceding\s*member'
+sy match cdlIdentifier contained 'unit\s*name'
+sy match cdlIdentifier contained 'unit\s*id'
+sy match cdlIdentifier contained 'schedule\s*name'
+sy match cdlIdentifier contained 'schedule\s*id'
+
+sy match cdlString /\[[^]]*]/ contains=cdlRestricted,cdlNotSupported
+sy match cdlRestricted contained /[&*,_]/
+" not supported
+sy match cdlNotSupported contained /[:"!']/
+
+sy keyword cdlTodo contained TODO FIXME XXX
+sy cluster cdlCommentGroup contains=cdlTodo
+sy match cdlComment '//.*' contains=@cdlCommentGroup
+sy region cdlComment start="/\*" end="\*/" contains=@cdlCommentGroup fold
+sy match cdlCommentE "\*/"
+
+sy region cdlParen transparent start='(' end=')' contains=ALLBUT,cdlParenE,cdlRestricted,cdlNotSupported
+"sy region cdlParen transparent start='(' end=')' contains=cdlIdentifier,cdlComment,cdlParenWordE
+sy match cdlParenE ")"
+"sy match cdlParenWordE contained "\k\+"
+
+sy keyword cdlFxType allocation downfoot expr xltgain
+"sy keyword cdlFxType contained allocation downfoot expr xltgain
+"sy region cdlFx transparent start='\k\+(' end=')' contains=cdlConditional,cdlFunction,cdlString,cdlComment,cdlFxType
+
+set foldmethod=expr
+set foldexpr=(getline(v:lnum+1)=~'{'\|\|getline(v:lnum)=~'//\\s\\*\\{5}.*table')?'>1':1
+%foldo!
+set foldmethod=manual
+let b:match_words='\<if\>:\<then\>:\<elseif\>:\<else\>:\<endif\>'
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+hi def link cdlStatement Statement
+hi def link cdlType Type
+hi def link cdlFxType Type
+hi def link cdlIdentifier Identifier
+hi def link cdlString String
+hi def link cdlRestricted WarningMsg
+hi def link cdlNotSupported ErrorMsg
+hi def link cdlTodo Todo
+hi def link cdlComment Comment
+hi def link cdlCommentE ErrorMsg
+hi def link cdlParenE ErrorMsg
+hi def link cdlParenWordE ErrorMsg
+hi def link cdlFunction Function
+hi def link cdlConditional Conditional
+
+
+let b:current_syntax = "cdl"
+
+" vim: ts=8