blob: 4fd718e05b82b44eb4858fda22e5b9d338d674f0 [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
87command -nargs=+ HiLink hi def link <args>
Bram Moolenaar238a5642006-02-21 22:12:05 +000088
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020089HiLink mglBoolean Boolean
90HiLink mglComment Comment
91HiLink mglConditional Conditional
92HiLink mglConstant Constant
93HiLink mglException Exception
94HiLink mglFunction Function
95HiLink mglLabel Label
96HiLink mglMatrixDelimiter Identifier
97HiLink mglNumber Number
98HiLink mglHexNumber Number
99HiLink mglCharacter Number
100HiLink mglIpAddr Number
101HiLink mglOperator Operator
102HiLink mglPredefined mglFunction
103HiLink mglPreProc PreProc
104HiLink mglRepeat Repeat
105HiLink mglStatement Statement
106HiLink mglString String
107HiLink mglStringEscape Special
108HiLink mglStringEscapeGPC Special
109HiLink mglStringError Error
110HiLink mglStruct mglStatement
111HiLink mglSymbolOperator mglOperator
112HiLink mglType Type
Bram Moolenaar238a5642006-02-21 22:12:05 +0000113
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200114delcommand HiLink
Bram Moolenaar238a5642006-02-21 22:12:05 +0000115
116
117let b:current_syntax = "mgl"
118
119" vim: ts=8 sw=2