blob: f7bc617f5a89876d9bdbd208615152b329b92346 [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"
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02009" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaar238a5642006-02-21 22:12:05 +000011 finish
12endif
13
14
15syn sync lines=250
16
17syn keyword mglBoolean true false
18syn keyword mglConditional if else then
19syn keyword mglConstant nil
20syn keyword mglPredefined maxint
21syn keyword mglLabel case goto label
22syn keyword mglOperator to downto in of with
23syn keyword mglOperator and not or xor div mod
24syn keyword mglRepeat do for repeat while to until
25syn keyword mglStatement procedure function break continue return restart
26syn keyword mglStatement program begin end const var type
27syn keyword mglStruct record
28syn keyword mglType integer string char boolean char ipaddr array
29
30
31" String
32if !exists("mgl_one_line_string")
33 syn region mglString matchgroup=mglString start=+'+ end=+'+ contains=mglStringEscape
34 syn region mglString matchgroup=mglString start=+"+ end=+"+ contains=mglStringEscapeGPC
35else
36 "wrong strings
37 syn region mglStringError matchgroup=mglStringError start=+'+ end=+'+ end=+$+ contains=mglStringEscape
38 syn region mglStringError matchgroup=mglStringError start=+"+ end=+"+ end=+$+ contains=mglStringEscapeGPC
39 "right strings
40 syn region mglString matchgroup=mglString start=+'+ end=+'+ oneline contains=mglStringEscape
41 syn region mglString matchgroup=mglString start=+"+ end=+"+ oneline contains=mglStringEscapeGPC
42end
43syn match mglStringEscape contained "''"
44syn match mglStringEscapeGPC contained '""'
45
46
47if exists("mgl_symbol_operator")
48 syn match mglSymbolOperator "[+\-/*=\%]"
49 syn match mglSymbolOperator "[<>]=\="
50 syn match mglSymbolOperator "<>"
51 syn match mglSymbolOperator ":="
52 syn match mglSymbolOperator "[()]"
53 syn match mglSymbolOperator "\.\."
54 syn match mglMatrixDelimiter "(."
55 syn match mglMatrixDelimiter ".)"
56 syn match mglMatrixDelimiter "[][]"
57endif
58
59syn match mglNumber "-\=\<\d\+\>"
60syn match mglHexNumber "\$[0-9a-fA-F]\+\>"
61syn match mglCharacter "\#[0-9]\+\>"
62syn match mglIpAddr "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\>"
63
64syn region mglComment start="(\*" end="\*)"
65syn region mglComment start="{" end="}"
66syn region mglComment start="//" end="$"
67
68if !exists("mgl_no_functions")
69 syn keyword mglFunction dispose new
70 syn keyword mglFunction get load print select
71 syn keyword mglFunction odd pred succ
72 syn keyword mglFunction chr ord abs sqr
73 syn keyword mglFunction exit
74 syn keyword mglOperator at timeout
75endif
76
77
78syn region mglPreProc start="(\*\$" end="\*)"
79syn region mglPreProc start="{\$" end="}"
80
81syn keyword mglException try except raise
82syn keyword mglPredefined exception
83
84
85" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020086" Only when an item doesn't have highlighting yet
Bram Moolenaar238a5642006-02-21 22:12:05 +000087
Bram Moolenaarf37506f2016-08-31 22:22:10 +020088hi def link mglBoolean Boolean
89hi def link mglComment Comment
90hi def link mglConditional Conditional
91hi def link mglConstant Constant
92hi def link mglException Exception
93hi def link mglFunction Function
94hi def link mglLabel Label
95hi def link mglMatrixDelimiter Identifier
96hi def link mglNumber Number
97hi def link mglHexNumber Number
98hi def link mglCharacter Number
99hi def link mglIpAddr Number
100hi def link mglOperator Operator
101hi def link mglPredefined mglFunction
102hi def link mglPreProc PreProc
103hi def link mglRepeat Repeat
104hi def link mglStatement Statement
105hi def link mglString String
106hi def link mglStringEscape Special
107hi def link mglStringEscapeGPC Special
108hi def link mglStringError Error
109hi def link mglStruct mglStatement
110hi def link mglSymbolOperator mglOperator
111hi def link mglType Type
Bram Moolenaar238a5642006-02-21 22:12:05 +0000112
Bram Moolenaar238a5642006-02-21 22:12:05 +0000113
114
115let b:current_syntax = "mgl"
116
117" vim: ts=8 sw=2