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