blob: 125675804958e44a11d72aec549b9851c4e1e030 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
" Vim syntax file
" Language: LambdaProlog (Teyjus)
" Filenames: *.mod *.sig
" Maintainer: Markus Mottl <markus.mottl@gmail.com>
" URL: http://www.ocaml.info/vim/syntax/lprolog.vim
" Last Change: 2006 Feb 05
" 2001 Apr 26 - Upgraded for new Vim version
" 2000 Jun 5 - Initial release
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" Lambda Prolog is case sensitive.
syn case match
syn match lprologBrackErr "\]"
syn match lprologParenErr ")"
syn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName
" Enclosing delimiters
syn region lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr
syn region lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr
" General identifiers
syn match lprologIdentifier "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>"
syn match lprologVariable "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>"
syn match lprologOperator "/"
" Comments
syn region lprologComment start="/\*" end="\*/" contains=lprologComment,lprologTodo
syn region lprologComment start="%" end="$" contains=lprologTodo
syn keyword lprologTodo contained TODO FIXME XXX
syn match lprologInteger "\<\d\+\>"
syn match lprologReal "\<\(\d\+\)\=\.\d+\>"
syn region lprologString start=+"+ skip=+\\\\\|\\"+ end=+"+
" Clause definitions
syn region lprologClause start="^\w\+" end=":-\|\."
" Modules
syn region lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\."
" Types
syn match lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames
syn region lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator
syn match lprologTypeName "\<\w\+\>" contained
" Keywords
syn keyword lprologKeyword end import accumulate accum_sig
syn keyword lprologKeyword local localkind closed sig
syn keyword lprologKeyword kind exportdef useonly
syn keyword lprologKeyword infixl infixr infix prefix
syn keyword lprologKeyword prefixr postfix postfixl
syn keyword lprologSpecial pi sigma is true fail halt stop not
" Operators
syn match lprologSpecial ":-"
syn match lprologSpecial "->"
syn match lprologSpecial "=>"
syn match lprologSpecial "\\"
syn match lprologSpecial "!"
syn match lprologSpecial ","
syn match lprologSpecial ";"
syn match lprologSpecial "&"
syn match lprologOperator "+"
syn match lprologOperator "-"
syn match lprologOperator "*"
syn match lprologOperator "\~"
syn match lprologOperator "\^"
syn match lprologOperator "<"
syn match lprologOperator ">"
syn match lprologOperator "=<"
syn match lprologOperator ">="
syn match lprologOperator "::"
syn match lprologOperator "="
syn match lprologOperator "\."
syn match lprologOperator ":"
syn match lprologOperator "|"
syn match lprologCommentErr "\*/"
syn sync minlines=50
syn sync maxlines=500
" Define the default highlighting.
" Only when an item doesn't have highlighting yet
command -nargs=+ HiLink hi def link <args>
HiLink lprologComment Comment
HiLink lprologTodo Todo
HiLink lprologKeyword Keyword
HiLink lprologSpecial Special
HiLink lprologOperator Operator
HiLink lprologIdentifier Normal
HiLink lprologInteger Number
HiLink lprologReal Number
HiLink lprologString String
HiLink lprologCommentErr Error
HiLink lprologBrackErr Error
HiLink lprologParenErr Error
HiLink lprologModuleName Special
HiLink lprologTypeName Identifier
HiLink lprologVariable Keyword
HiLink lprologAtom Normal
HiLink lprologClause Type
delcommand HiLink
let b:current_syntax = "lprolog"
" vim: ts=8
|