xref: /vim-8.2.3635/runtime/syntax/cdl.vim (revision 89bcfda6)
1" Vim syntax file
2" Language: Comshare Dimension Definition Language
3" Maintainer:	Raul Segura Acevedo <[email protected]>
4" Last change:	2001 Jul 31
5
6" quit when a syntax file was already loaded
7if exists("b:current_syntax")
8	finish
9endif
10
11sy case ignore
12sy sync fromstart
13sy keyword	cdlStatement	dimension hierarchy group grouphierarchy schedule class
14sy keyword	cdlType		add update file category main altername removeall required notrequired
15sy keyword	cdlConditional	if then elseif else endif and or not cons rpt xlt
16sy keyword	cdlFunction	ChildOf IChildOf LeafChildOf DescendantOf IDescendantOf LeafDescendantOf MemberIs CountOf
17
18sy keyword	cdlIdentifier	contained id name desc description xlttype precision symbol curr_ name group_name rate_name
19sy keyword	cdlIdentifier	contained xcheck endbal accounttype natsign consolidate formula pctown usage periodicity
20sy match	cdlIdentifier	contained 'child\s*name'
21sy match	cdlIdentifier	contained 'parent\s*name'
22sy match	cdlIdentifier	contained 'grp\s*description'
23sy match	cdlIdentifier	contained 'grpchild\s*name'
24sy match	cdlIdentifier	contained 'grpparent\s*name'
25sy match	cdlIdentifier	contained 'preceding\s*member'
26sy match	cdlIdentifier	contained 'unit\s*name'
27sy match	cdlIdentifier	contained 'unit\s*id'
28sy match	cdlIdentifier	contained 'schedule\s*name'
29sy match	cdlIdentifier	contained 'schedule\s*id'
30
31sy match	cdlString	/\[[^]]*]/	contains=cdlRestricted,cdlNotSupported
32sy match	cdlRestricted	contained /[&*,_]/
33" not supported �, [, ]
34sy match	cdlNotSupported	contained /[:"!']/
35
36sy keyword	cdlTodo		contained TODO FIXME XXX
37sy cluster	cdlCommentGroup contains=cdlTodo
38sy match	cdlComment	'//.*' contains=@cdlCommentGroup
39sy region	cdlComment	start="/\*" end="\*/" contains=@cdlCommentGroup fold
40sy match	cdlCommentE	"\*/"
41
42sy region	cdlParen	transparent start='(' end=')' contains=ALLBUT,cdlParenE,cdlRestricted,cdlNotSupported
43"sy region	cdlParen	transparent start='(' end=')' contains=cdlIdentifier,cdlComment,cdlParenWordE
44sy match	cdlParenE	")"
45"sy match	cdlParenWordE	contained "\k\+"
46
47sy keyword	cdlFxType	allocation downfoot expr xltgain
48"sy keyword	cdlFxType	contained allocation downfoot expr xltgain
49"sy region	cdlFx		transparent start='\k\+(' end=')' contains=cdlConditional,cdlFunction,cdlString,cdlComment,cdlFxType
50
51set foldmethod=expr
52set foldexpr=(getline(v:lnum+1)=~'{'\|\|getline(v:lnum)=~'//\\s\\*\\{5}.*table')?'>1':1
53%foldo!
54set foldmethod=manual
55let b:match_words='\<if\>:\<then\>:\<elseif\>:\<else\>:\<endif\>'
56
57" Define the default highlighting.
58" Only when an item doesn't have highlighting yet
59command -nargs=+ HiLink hi def link <args>
60
61HiLink cdlStatement	Statement
62HiLink cdlType		Type
63HiLink cdlFxType	Type
64HiLink cdlIdentifier	Identifier
65HiLink cdlString	String
66HiLink cdlRestricted	WarningMsg
67HiLink cdlNotSupported	ErrorMsg
68HiLink cdlTodo		Todo
69HiLink cdlComment	Comment
70HiLink cdlCommentE	ErrorMsg
71HiLink cdlParenE	ErrorMsg
72HiLink cdlParenWordE	ErrorMsg
73HiLink cdlFunction	Function
74HiLink cdlConditional	Conditional
75
76delcommand HiLink
77
78let b:current_syntax = "cdl"
79
80" vim: ts=8
81