blob: 55ae137f2faf133c2e2f6b81149ee2b0599b18c8 [file] [log] [blame]
Bram Moolenaar238a5642006-02-21 22:12:05 +00001" Vim syntax file
2" Language: MGL
3" Version: 1.0
4" Last Change: 2006 Feb 21
5" Maintainer: Gero Kuhlmann <gero@gkminix.han.de>
6"
Bram Moolenaar5c736222010-01-06 20:54:52 +01007" $Id: mgl.vim,v 1.1 2006/02/21 22:08:20 vimboss Exp $
Bram Moolenaar238a5642006-02-21 22:12:05 +00008"
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