xref: /vim-8.2.3635/runtime/syntax/mgl.vim (revision 36e294c0)
1" Vim syntax file
2" Language:	MGL
3" Version: 1.0
4" Last Change:	2006 Feb 21
5" Maintainer:  Gero Kuhlmann <[email protected]>
6"
7" $Id: mgl.vim,v 1.1 2006/02/21 22:08:20 vimboss Exp $
8"
9if version < 600
10  syntax clear
11elseif exists("b:current_syntax")
12  finish
13endif
14
15
16syn sync lines=250
17
18syn keyword mglBoolean		true false
19syn keyword mglConditional	if else then
20syn keyword mglConstant		nil
21syn keyword mglPredefined	maxint
22syn keyword mglLabel		case goto label
23syn keyword mglOperator		to downto in of with
24syn keyword mglOperator		and not or xor div mod
25syn keyword mglRepeat		do for repeat while to until
26syn keyword mglStatement	procedure function break continue return restart
27syn keyword mglStatement	program begin end const var type
28syn keyword mglStruct		record
29syn keyword mglType		integer string char boolean char ipaddr array
30
31
32" String
33if !exists("mgl_one_line_string")
34  syn region  mglString matchgroup=mglString start=+'+ end=+'+ contains=mglStringEscape
35  syn region  mglString matchgroup=mglString start=+"+ end=+"+ contains=mglStringEscapeGPC
36else
37  "wrong strings
38  syn region  mglStringError matchgroup=mglStringError start=+'+ end=+'+ end=+$+ contains=mglStringEscape
39  syn region  mglStringError matchgroup=mglStringError start=+"+ end=+"+ end=+$+ contains=mglStringEscapeGPC
40  "right strings
41  syn region  mglString matchgroup=mglString start=+'+ end=+'+ oneline contains=mglStringEscape
42  syn region  mglString matchgroup=mglString start=+"+ end=+"+ oneline contains=mglStringEscapeGPC
43end
44syn match   mglStringEscape	contained "''"
45syn match   mglStringEscapeGPC	contained '""'
46
47
48if exists("mgl_symbol_operator")
49  syn match   mglSymbolOperator		"[+\-/*=\%]"
50  syn match   mglSymbolOperator		"[<>]=\="
51  syn match   mglSymbolOperator		"<>"
52  syn match   mglSymbolOperator		":="
53  syn match   mglSymbolOperator		"[()]"
54  syn match   mglSymbolOperator		"\.\."
55  syn match   mglMatrixDelimiter	"(."
56  syn match   mglMatrixDelimiter	".)"
57  syn match   mglMatrixDelimiter	"[][]"
58endif
59
60syn match  mglNumber	"-\=\<\d\+\>"
61syn match  mglHexNumber	"\$[0-9a-fA-F]\+\>"
62syn match  mglCharacter	"\#[0-9]\+\>"
63syn match  mglIpAddr	"[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\>"
64
65syn region mglComment	start="(\*"  end="\*)"
66syn region mglComment	start="{"  end="}"
67syn region mglComment	start="//"  end="$"
68
69if !exists("mgl_no_functions")
70  syn keyword mglFunction	dispose new
71  syn keyword mglFunction	get load print select
72  syn keyword mglFunction	odd pred succ
73  syn keyword mglFunction	chr ord abs sqr
74  syn keyword mglFunction	exit
75  syn keyword mglOperator	at timeout
76endif
77
78
79syn region mglPreProc	start="(\*\$"  end="\*)"
80syn region mglPreProc	start="{\$"  end="}"
81
82syn keyword mglException	try except raise
83syn keyword mglPredefined	exception
84
85
86" Define the default highlighting.
87" For version 5.7 and earlier: only when not done already
88" For version 5.8 and later: only when an item doesn't have highlighting yet
89if version >= 508 || !exists("did_mgl_syn_inits")
90  if version < 508
91    let did_mgl_syn_inits = 1
92    command -nargs=+ HiLink hi link <args>
93  else
94    command -nargs=+ HiLink hi def link <args>
95  endif
96
97  HiLink mglBoolean		Boolean
98  HiLink mglComment		Comment
99  HiLink mglConditional		Conditional
100  HiLink mglConstant		Constant
101  HiLink mglException		Exception
102  HiLink mglFunction		Function
103  HiLink mglLabel		Label
104  HiLink mglMatrixDelimiter	Identifier
105  HiLink mglNumber		Number
106  HiLink mglHexNumber		Number
107  HiLink mglCharacter		Number
108  HiLink mglIpAddr		Number
109  HiLink mglOperator		Operator
110  HiLink mglPredefined		mglFunction
111  HiLink mglPreProc		PreProc
112  HiLink mglRepeat		Repeat
113  HiLink mglStatement		Statement
114  HiLink mglString		String
115  HiLink mglStringEscape	Special
116  HiLink mglStringEscapeGPC	Special
117  HiLink mglStringError		Error
118  HiLink mglStruct		mglStatement
119  HiLink mglSymbolOperator	mglOperator
120  HiLink mglType		Type
121
122  delcommand HiLink
123endif
124
125
126let b:current_syntax = "mgl"
127
128" vim: ts=8 sw=2
129