| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " Language:     LambdaProlog (Teyjus) | 
					
						
							|  |  |  | " Filenames:    *.mod *.sig | 
					
						
							| 
									
										
										
										
											2006-02-08 09:20:24 +00:00
										 |  |  | " Maintainer:   Markus Mottl  <markus.mottl@gmail.com> | 
					
						
							|  |  |  | " URL:          http://www.ocaml.info/vim/syntax/lprolog.vim | 
					
						
							|  |  |  | " Last Change:  2006 Feb 05 | 
					
						
							| 
									
										
										
										
											2004-07-26 12:53:41 +00:00
										 |  |  | "               2001 Apr 26 - Upgraded for new Vim version | 
					
						
							|  |  |  | "               2000 Jun  5 - Initial release | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   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. | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " Only when an item doesn't have highlighting yet | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link lprologComment     Comment | 
					
						
							|  |  |  | hi def link lprologTodo	    Todo | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link lprologKeyword     Keyword | 
					
						
							|  |  |  | hi def link lprologSpecial     Special | 
					
						
							|  |  |  | hi def link lprologOperator    Operator | 
					
						
							|  |  |  | hi def link lprologIdentifier  Normal | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link lprologInteger     Number | 
					
						
							|  |  |  | hi def link lprologReal	    Number | 
					
						
							|  |  |  | hi def link lprologString	    String | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link lprologCommentErr  Error | 
					
						
							|  |  |  | hi def link lprologBrackErr    Error | 
					
						
							|  |  |  | hi def link lprologParenErr    Error | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link lprologModuleName  Special | 
					
						
							|  |  |  | hi def link lprologTypeName    Identifier | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link lprologVariable    Keyword | 
					
						
							|  |  |  | hi def link lprologAtom	    Normal | 
					
						
							|  |  |  | hi def link lprologClause	    Type | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "lprolog" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: ts=8 |