| 
									
										
										
										
											2006-11-07 18:47:24 +00:00
										 |  |  | " Vim syntax file | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | " Language:	Logtalk | 
					
						
							|  |  |  | " Maintainer:	Paulo Moura <pmoura@logtalk.org> | 
					
						
							| 
									
										
										
										
											2007-03-28 22:44:31 +00:00
										 |  |  | " Last Change:	March 24, 2007 | 
					
						
							| 
									
										
										
										
											2006-11-07 18:47:24 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Quit when a syntax file was already loaded: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if version < 600 | 
					
						
							|  |  |  | 	syntax clear | 
					
						
							|  |  |  | elseif exists("b:current_syntax") | 
					
						
							|  |  |  | 	finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk is case sensitive: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn case match | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk variables | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match   logtalkVariable		"\<\(\u\|_\)\(\w\)*\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk clause functor | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		":-" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk quoted atoms and strings | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkString		start=+"+	skip=+\\"+	end=+"+ | 
					
						
							|  |  |  | syn region	logtalkAtom		start=+'+	skip=+\\'+	end=+'+ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk message sending operators | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"::" | 
					
						
							| 
									
										
										
										
											2007-06-12 10:39:47 +00:00
										 |  |  | syn match	logtalkOperator		":" | 
					
						
							| 
									
										
										
										
											2006-11-07 18:47:24 +00:00
										 |  |  | syn match	logtalkOperator		"\^\^" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk external call | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkExtCall		matchgroup=logtalkExtCallTag		start="{"		matchgroup=logtalkExtCallTag		end="}"		contains=ALL | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk opening entity directives | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel | 
					
						
							|  |  |  | syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel | 
					
						
							|  |  |  | syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk closing entity directives | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkCloseEntityDir	":- end_object\." | 
					
						
							|  |  |  | syn match	logtalkCloseEntityDir	":- end_protocol\." | 
					
						
							|  |  |  | syn match	logtalkCloseEntityDir	":- end_category\." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk entity relations | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="instantiates("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator	contained | 
					
						
							|  |  |  | syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="specializes("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator	contained | 
					
						
							|  |  |  | syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="extends("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator	contained | 
					
						
							|  |  |  | syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="imports("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator	contained | 
					
						
							|  |  |  | syn region	logtalkEntityRel	matchgroup=logtalkEntityRelTag	start="implements("	matchgroup=logtalkEntityRelTag	end=")"		contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator	contained | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk directives | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- alias("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							| 
									
										
										
										
											2006-12-28 13:03:34 +00:00
										 |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- calls("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- encoding("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							| 
									
										
										
										
											2006-11-07 18:47:24 +00:00
										 |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- initialization("	matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- info("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- mode("		matchgroup=logtalkDirTag	end=")\."	contains=logtalkOperator, logtalkAtom | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- dynamic("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn match	logtalkDirTag		":- dynamic\." | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- discontiguous("	matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- multifile("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- public("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- protected("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- private("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_predicate("	matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- op("			matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							| 
									
										
										
										
											2006-12-28 13:03:34 +00:00
										 |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- synchronized("	matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							| 
									
										
										
										
											2007-02-19 18:58:28 +00:00
										 |  |  | syn match	logtalkDirTag		":- synchronized\." | 
					
						
							| 
									
										
										
										
											2006-11-07 18:47:24 +00:00
										 |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- uses("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn match	logtalkDirTag		":- threaded\." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Module directives | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- export("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- use_module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk built-in predicates | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<\(object\|protocol\|category\)_property\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<extends_\(object\|protocol\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<imp\(orts_category\|lements_protocol\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<\(instantiates\|specializes\)_class\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<\(abolish\|define\)_events\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<current_event\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<\(current\|set\)_logtalk_flag\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\)\)\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltIn		"\<\(for\|retract\)all\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-03-28 22:44:31 +00:00
										 |  |  | syn match	logtalkBuiltIn		"\<threaded\(_\(call\|once\|ignore\|race\|exit\|peek\|wait\|notify\)\)\?\ze(" | 
					
						
							| 
									
										
										
										
											2006-12-28 13:03:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-11-07 18:47:24 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Logtalk built-in methods | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<parameter\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<se\(lf\|nder\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<this\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<current_predicate\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<predicate_property\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<a\(bolish\|ssert\(a\|z\)\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<clause\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<retract\(all\)\?\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<\(bag\|set\)of\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<f\(ind\|or\)all\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<before\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<after\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<expand_term\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<term_expansion\ze(" | 
					
						
							|  |  |  | syn match	logtalkBuiltInMethod	"\<phrase\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Mode operators | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"?" | 
					
						
							|  |  |  | syn match	logtalkOperator		"@" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Control constructs | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<true\>" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<fail\>" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<ca\(ll\|tch\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkOperator		"!" | 
					
						
							|  |  |  | " syn match	logtalkOperator		"," | 
					
						
							|  |  |  | syn match	logtalkOperator		";" | 
					
						
							|  |  |  | syn match	logtalkOperator		"-->" | 
					
						
							|  |  |  | syn match	logtalkOperator		"->" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<throw\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Term unification | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"=" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<unify_with_occurs_check\ze(" | 
					
						
							|  |  |  | syn match	logtalkOperator		"\\=" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Term testing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<var\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<atom\(ic\)\?\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<integer\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<float\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<compound\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<n\(onvar\|umber\)\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Term comparison | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"@=<" | 
					
						
							|  |  |  | syn match	logtalkOperator		"==" | 
					
						
							|  |  |  | syn match	logtalkOperator		"\\==" | 
					
						
							|  |  |  | syn match	logtalkOperator		"@<" | 
					
						
							|  |  |  | syn match	logtalkOperator		"@>" | 
					
						
							|  |  |  | syn match	logtalkOperator		"@>=" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Term creation and decomposition | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<functor\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<arg\ze(" | 
					
						
							|  |  |  | syn match	logtalkOperator		"=\.\." | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<copy_term\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Arithemtic evaluation | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"\<is\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Arithemtic comparison | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"=:=" | 
					
						
							|  |  |  | syn match	logtalkOperator		"=\\=" | 
					
						
							|  |  |  | syn match	logtalkOperator		"<" | 
					
						
							|  |  |  | syn match	logtalkOperator		"=<" | 
					
						
							|  |  |  | syn match	logtalkOperator		">" | 
					
						
							|  |  |  | syn match	logtalkOperator		">=" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Stream selection and control | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<\(current\|set\)_\(in\|out\)put\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<open\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<close\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<flush_output\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<flush_output\>" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<stream_property\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<at_end_of_stream\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<at_end_of_stream\>" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<set_stream_position\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Character and byte input/output | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<\(get\|p\(eek\|ut\)\)_\(c\(har\|ode\)\|byte\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<nl\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<nl\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Term input/output | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<read\(_term\)\?\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<write\(q\|_\(canonical\|term\)\)\?\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<\(current_\)\?op\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<\(current\)\?char_conversion\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logic and control | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"\\+" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<once\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<repeat\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Atomic term processing | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<atom_\(length\|c\(hars\|o\(ncat\|des\)\)\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<sub_atom\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<char_code\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<number_\(c\(hars\|odes\)\)\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Implementation defined hooks functions | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<\(current\|set\)_prolog_flag\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<halt\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<halt\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Evaluable functors | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"+" | 
					
						
							|  |  |  | syn match	logtalkOperator		"-" | 
					
						
							|  |  |  | syn match	logtalkOperator		"\*" | 
					
						
							|  |  |  | syn match	logtalkOperator		"//" | 
					
						
							|  |  |  | syn match	logtalkOperator		"/" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<r\(ound\|em\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<rem\>" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<mod\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<mod\>" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<abs\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<sign\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<truncate\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<ceiling\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Other arithemtic functors | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"\*\*" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<s\(in\|qrt\)\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<cos\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<atan\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<exp\ze(" | 
					
						
							|  |  |  | syn match	logtalkKeyword		"\<log\ze(" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Bitwise functors | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		">>" | 
					
						
							|  |  |  | syn match	logtalkOperator		"<<" | 
					
						
							|  |  |  | syn match	logtalkOperator		"/\\" | 
					
						
							|  |  |  | syn match	logtalkOperator		"\\/" | 
					
						
							|  |  |  | syn match	logtalkOperator		"\\" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk list operator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"|" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk numbers  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<\d\+\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<\d\+\.\d\+\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<\d\+[eE][-+]\=\d\+\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<\d\+\.\d\+[eE][-+]\=\d\+\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<0'.\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<0b[0-1]\+\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<0o\o\+\>" | 
					
						
							|  |  |  | syn match	logtalkNumber		"\<0x\x\+\>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk end-of-clause | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn match	logtalkOperator		"\." | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk comments | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region	logtalkBlockComment	start="/\*"	end="\*/"	fold | 
					
						
							|  |  |  | syn match	logtalkLineComment	"%.*" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Logtalk entity folding | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region logtalkEntity transparent fold keepend start=":- object(" end=":- end_object\." contains=ALL | 
					
						
							|  |  |  | syn region logtalkEntity transparent fold keepend start=":- protocol(" end=":- end_protocol\." contains=ALL | 
					
						
							|  |  |  | syn region logtalkEntity transparent fold keepend start=":- category(" end=":- end_category\." contains=ALL | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn sync ccomment logtalkBlockComment maxlines=50 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Define the default highlighting. | 
					
						
							|  |  |  | " For version 5.7 and earlier: only when not done already | 
					
						
							|  |  |  | " For version 5.8 and later: only when an item doesn't have highlighting yet | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if version >= 508 || !exists("did_logtalk_syn_inits") | 
					
						
							|  |  |  | 	if version < 508 | 
					
						
							|  |  |  | 		let did_logtalk_syn_inits = 1 | 
					
						
							|  |  |  | 		command -nargs=+ HiLink hi link <args> | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		command -nargs=+ HiLink hi def link <args> | 
					
						
							|  |  |  | 	endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkBlockComment	Comment | 
					
						
							|  |  |  | 	HiLink	logtalkLineComment	Comment | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkOpenEntityDir	Normal | 
					
						
							|  |  |  | 	HiLink	logtalkOpenEntityDirTag	PreProc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkEntity		Normal | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkEntityRel	Normal | 
					
						
							|  |  |  | 	HiLink	logtalkEntityRelTag	PreProc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkCloseEntityDir	PreProc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkDir		Normal | 
					
						
							|  |  |  | 	HiLink	logtalkDirTag		PreProc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkAtom		String | 
					
						
							|  |  |  | 	HiLink	logtalkString		String | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkNumber		Number | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkKeyword		Keyword | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkBuiltIn		Keyword | 
					
						
							|  |  |  | 	HiLink	logtalkBuiltInMethod	Keyword | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkOperator		Operator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkExtCall		Normal | 
					
						
							|  |  |  | 	HiLink	logtalkExtCallTag	Operator | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	HiLink	logtalkVariable		Identifier | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	delcommand HiLink | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "logtalk" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | setlocal ts=4 | 
					
						
							|  |  |  | setlocal sw=4 | 
					
						
							|  |  |  | setlocal fdm=syntax | 
					
						
							|  |  |  | setlocal fdc=2 | 
					
						
							|  |  |  | setlocal autoindent |