xref: /vim-8.2.3635/runtime/syntax/lprolog.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     LambdaProlog (Teyjus)
3071d4279SBram Moolenaar" Filenames:    *.mod *.sig
48b6144bdSBram Moolenaar" Maintainer:   Markus Mottl  <[email protected]>
58b6144bdSBram Moolenaar" URL:          http://www.ocaml.info/vim/syntax/lprolog.vim
68b6144bdSBram Moolenaar" Last Change:  2006 Feb 05
7071d4279SBram Moolenaar"               2001 Apr 26 - Upgraded for new Vim version
8071d4279SBram Moolenaar"               2000 Jun  5 - Initial release
9071d4279SBram Moolenaar
1089bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1189bcfda6SBram Moolenaarif exists("b:current_syntax")
12071d4279SBram Moolenaar  finish
13071d4279SBram Moolenaarendif
14071d4279SBram Moolenaar
15071d4279SBram Moolenaar" Lambda Prolog is case sensitive.
16071d4279SBram Moolenaarsyn case match
17071d4279SBram Moolenaar
18071d4279SBram Moolenaarsyn match   lprologBrackErr    "\]"
19071d4279SBram Moolenaarsyn match   lprologParenErr    ")"
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsyn cluster lprologContained contains=lprologTodo,lprologModuleName,lprologTypeNames,lprologTypeName
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" Enclosing delimiters
24071d4279SBram Moolenaarsyn region  lprologEncl transparent matchgroup=lprologKeyword start="(" matchgroup=lprologKeyword end=")" contains=ALLBUT,@lprologContained,lprologParenErr
25071d4279SBram Moolenaarsyn region  lprologEncl transparent matchgroup=lprologKeyword start="\[" matchgroup=lprologKeyword end="\]" contains=ALLBUT,@lprologContained,lprologBrackErr
26071d4279SBram Moolenaar
27071d4279SBram Moolenaar" General identifiers
28071d4279SBram Moolenaarsyn match   lprologIdentifier  "\<\(\w\|[-+*/\\^<>=`'~?@#$&!_]\)*\>"
29071d4279SBram Moolenaarsyn match   lprologVariable    "\<\(\u\|_\)\(\w\|[-+*/\\^<>=`'~?@#$&!]\)*\>"
30071d4279SBram Moolenaar
31071d4279SBram Moolenaarsyn match   lprologOperator  "/"
32071d4279SBram Moolenaar
33071d4279SBram Moolenaar" Comments
34071d4279SBram Moolenaarsyn region  lprologComment  start="/\*" end="\*/" contains=lprologComment,lprologTodo
35071d4279SBram Moolenaarsyn region  lprologComment  start="%" end="$" contains=lprologTodo
36071d4279SBram Moolenaarsyn keyword lprologTodo  contained TODO FIXME XXX
37071d4279SBram Moolenaar
38071d4279SBram Moolenaarsyn match   lprologInteger  "\<\d\+\>"
39071d4279SBram Moolenaarsyn match   lprologReal     "\<\(\d\+\)\=\.\d+\>"
40071d4279SBram Moolenaarsyn region  lprologString   start=+"+ skip=+\\\\\|\\"+ end=+"+
41071d4279SBram Moolenaar
42071d4279SBram Moolenaar" Clause definitions
43071d4279SBram Moolenaarsyn region  lprologClause start="^\w\+" end=":-\|\."
44071d4279SBram Moolenaar
45071d4279SBram Moolenaar" Modules
46071d4279SBram Moolenaarsyn region  lprologModule matchgroup=lprologKeyword start="^\<module\>" matchgroup=lprologKeyword end="\."
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" Types
49071d4279SBram Moolenaarsyn match   lprologKeyword "^\<type\>" skipwhite nextgroup=lprologTypeNames
50071d4279SBram Moolenaarsyn region  lprologTypeNames matchgroup=lprologBraceErr start="\<\w\+\>" matchgroup=lprologKeyword end="\." contained contains=lprologTypeName,lprologOperator
51071d4279SBram Moolenaarsyn match   lprologTypeName "\<\w\+\>" contained
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar" Keywords
54071d4279SBram Moolenaarsyn keyword lprologKeyword  end import accumulate accum_sig
55071d4279SBram Moolenaarsyn keyword lprologKeyword  local localkind closed sig
56071d4279SBram Moolenaarsyn keyword lprologKeyword  kind exportdef useonly
57071d4279SBram Moolenaarsyn keyword lprologKeyword  infixl infixr infix prefix
58071d4279SBram Moolenaarsyn keyword lprologKeyword  prefixr postfix postfixl
59071d4279SBram Moolenaar
60071d4279SBram Moolenaarsyn keyword lprologSpecial  pi sigma is true fail halt stop not
61071d4279SBram Moolenaar
62071d4279SBram Moolenaar" Operators
63071d4279SBram Moolenaarsyn match   lprologSpecial ":-"
64071d4279SBram Moolenaarsyn match   lprologSpecial "->"
65071d4279SBram Moolenaarsyn match   lprologSpecial "=>"
66071d4279SBram Moolenaarsyn match   lprologSpecial "\\"
67071d4279SBram Moolenaarsyn match   lprologSpecial "!"
68071d4279SBram Moolenaar
69071d4279SBram Moolenaarsyn match   lprologSpecial ","
70071d4279SBram Moolenaarsyn match   lprologSpecial ";"
71071d4279SBram Moolenaarsyn match   lprologSpecial "&"
72071d4279SBram Moolenaar
73071d4279SBram Moolenaarsyn match   lprologOperator "+"
74071d4279SBram Moolenaarsyn match   lprologOperator "-"
75071d4279SBram Moolenaarsyn match   lprologOperator "*"
76071d4279SBram Moolenaarsyn match   lprologOperator "\~"
77071d4279SBram Moolenaarsyn match   lprologOperator "\^"
78071d4279SBram Moolenaarsyn match   lprologOperator "<"
79071d4279SBram Moolenaarsyn match   lprologOperator ">"
80071d4279SBram Moolenaarsyn match   lprologOperator "=<"
81071d4279SBram Moolenaarsyn match   lprologOperator ">="
82071d4279SBram Moolenaarsyn match   lprologOperator "::"
83071d4279SBram Moolenaarsyn match   lprologOperator "="
84071d4279SBram Moolenaar
85071d4279SBram Moolenaarsyn match   lprologOperator "\."
86071d4279SBram Moolenaarsyn match   lprologOperator ":"
87071d4279SBram Moolenaarsyn match   lprologOperator "|"
88071d4279SBram Moolenaar
89071d4279SBram Moolenaarsyn match   lprologCommentErr  "\*/"
90071d4279SBram Moolenaar
91071d4279SBram Moolenaarsyn sync minlines=50
92071d4279SBram Moolenaarsyn sync maxlines=500
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar
95071d4279SBram Moolenaar" Define the default highlighting.
9689bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
97071d4279SBram Moolenaar
98*f37506f6SBram Moolenaarhi def link lprologComment     Comment
99*f37506f6SBram Moolenaarhi def link lprologTodo	    Todo
100071d4279SBram Moolenaar
101*f37506f6SBram Moolenaarhi def link lprologKeyword     Keyword
102*f37506f6SBram Moolenaarhi def link lprologSpecial     Special
103*f37506f6SBram Moolenaarhi def link lprologOperator    Operator
104*f37506f6SBram Moolenaarhi def link lprologIdentifier  Normal
105071d4279SBram Moolenaar
106*f37506f6SBram Moolenaarhi def link lprologInteger     Number
107*f37506f6SBram Moolenaarhi def link lprologReal	    Number
108*f37506f6SBram Moolenaarhi def link lprologString	    String
109071d4279SBram Moolenaar
110*f37506f6SBram Moolenaarhi def link lprologCommentErr  Error
111*f37506f6SBram Moolenaarhi def link lprologBrackErr    Error
112*f37506f6SBram Moolenaarhi def link lprologParenErr    Error
113071d4279SBram Moolenaar
114*f37506f6SBram Moolenaarhi def link lprologModuleName  Special
115*f37506f6SBram Moolenaarhi def link lprologTypeName    Identifier
116071d4279SBram Moolenaar
117*f37506f6SBram Moolenaarhi def link lprologVariable    Keyword
118*f37506f6SBram Moolenaarhi def link lprologAtom	    Normal
119*f37506f6SBram Moolenaarhi def link lprologClause	    Type
120071d4279SBram Moolenaar
121071d4279SBram Moolenaar
122071d4279SBram Moolenaarlet b:current_syntax = "lprolog"
123071d4279SBram Moolenaar
124071d4279SBram Moolenaar" vim: ts=8
125