updated for version 7.0077
diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim
index 753df4e..480220c 100644
--- a/runtime/syntax/logtalk.vim
+++ b/runtime/syntax/logtalk.vim
@@ -2,7 +2,7 @@
 "
 " Language:	Logtalk
 " Maintainer:	Paulo Moura <pmoura@logtalk.org>
-" Last Change:	April 5, 2005
+" Last Change:	May 30, 2005
 
 
 " Quit when a syntax file was already loaded:
@@ -89,14 +89,10 @@
 
 " Logtalk built-in predicates
 
-syn match	logtalkBuiltIn		"\<current_\(object\|protocol\|category\)\ze("
-
-syn match	logtalkBuiltIn		"\<create_\(object\|protocol\|category\)\ze("
+syn match	logtalkBuiltIn		"\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze("
 
 syn match	logtalkBuiltIn		"\<\(object\|protocol\|category\)_property\ze("
 
-syn match	logtalkBuiltIn		"\<abolish_\(object\|protocol\|category\)\ze("
-
 syn match	logtalkBuiltIn		"\<extends_\(object\|protocol\)\ze("
 syn match	logtalkBuiltIn		"\<imp\(orts_category\|lements_protocol\)\ze("
 syn match	logtalkBuiltIn		"\<\(instantiates\|specializes\)_class\ze("
@@ -120,11 +116,9 @@
 syn match	logtalkBuiltInMethod	"\<current_predicate\ze("
 syn match	logtalkBuiltInMethod	"\<predicate_property\ze("
 
-syn match	logtalkBuiltInMethod	"\<abolish\ze("
-syn match	logtalkBuiltInMethod	"\<assert\(a\|z\)\ze("
+syn match	logtalkBuiltInMethod	"\<a\(bolish\|ssert\(a\|z\)\)\ze("
 syn match	logtalkBuiltInMethod	"\<clause\ze("
-syn match	logtalkBuiltInMethod	"\<retract\ze("
-syn match	logtalkBuiltInMethod	"\<retractall\ze("
+syn match	logtalkBuiltInMethod	"\<retract\(all\)\?\ze("
 
 syn match	logtalkBuiltInMethod	"\<\(bag\|set\)of\ze("
 syn match	logtalkBuiltInMethod	"\<f\(ind\|or\)all\ze("
@@ -165,10 +159,9 @@
 " Term testing
 
 syn match	logtalkKeyword		"\<var\ze("
-syn match	logtalkKeyword		"\<atom\ze("
+syn match	logtalkKeyword		"\<atom\(ic\)\?\ze("
 syn match	logtalkKeyword		"\<integer\ze("
 syn match	logtalkKeyword		"\<float\ze("
-syn match	logtalkKeyword		"\<atomic\ze("
 syn match	logtalkKeyword		"\<compound\ze("
 syn match	logtalkKeyword		"\<n\(onvar\|umber\)\ze("
 
@@ -208,8 +201,7 @@
 
 " Stream selection and control
 
-syn match	logtalkKeyword		"\<current_\(input\|output\)\ze("
-syn match	logtalkKeyword		"\<set_\(input\|output\)\ze("
+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("
@@ -222,22 +214,17 @@
 
 " Character and byte input/output
 
-syn match	logtalkKeyword		"\<\(get\|peek\|put\)_\(char\|code\|byte\)\ze("
+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		"\<read\ze("
-syn match	logtalkKeyword		"\<write\ze("
-syn match	logtalkKeyword		"\<writeq\ze("
-syn match	logtalkKeyword		"\<write_\(canonical\|term\)\ze("
-syn match	logtalkKeyword		"\<op\ze("
-syn match	logtalkKeyword		"\<current_op\ze("
-syn match	logtalkKeyword		"\<char_conversion\ze("
-syn match	logtalkKeyword		"\<current_char_conversion\ze("
+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
@@ -249,10 +236,10 @@
 
 " Atomic term processing
 
-syn match	logtalkKeyword		"\<atom_\(length\|concat\|chars\|codes\)\ze("
+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_\(chars\|codes\)\ze("
+syn match	logtalkKeyword		"\<number_\(c\(hars\|odes\)\)\ze("
 
 
 " Implementation defined hooks functions
@@ -269,17 +256,14 @@
 syn match	logtalkOperator		"\*"
 syn match	logtalkOperator		"//"
 syn match	logtalkOperator		"/"
-syn match	logtalkKeyword		"\<rem(?=[(])"
+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		"\<float_\(integer\|fractional\)_part\ze("
-syn match	logtalkKeyword		"\<float\ze("
-syn match	logtalkKeyword		"\<floor\ze("
+syn match	logtalkKeyword		"\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze("
 syn match	logtalkKeyword		"\<truncate\ze("
-syn match	logtalkKeyword		"\<round\ze("
 syn match	logtalkKeyword		"\<ceiling\ze("
 
 
@@ -302,33 +286,34 @@
 syn match	logtalkOperator		"\\"
 
 
-" Logtalk end-of-clause
-
-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'[0-9a-zA-Z]\>"
+syn match	logtalkNumber		"\<0b[0-1]\+\>"
+syn match	logtalkNumber		"\<0o[0-7]\+\>"
+syn match	logtalkNumber		"\<0x\x\+\>"
+
+
+" Logtalk end-of-clause
+
+syn match	logtalkOperator		"\."
+
+
 " Logtalk comments
 
 syn region	logtalkBlockComment	start="/\*"	end="\*/"
 syn match	logtalkLineComment	"%.*"
 
 
-" Logtalk numbers
-
-syn match	logtalkNumber		"\<[0-9]\+\>"
-syn match	logtalkNumber		"\<[0-9]\+\.[0-9]\+\>"
-syn match	logtalkNumber		"\<[0-9]\+\.[0-9]\+[eE][-+][0-9]+\>"
-syn match	logtalkNumber		"\<0'[0-9a-zA-Z]\>"
-syn match	logtalkNumber		"\<0b[0-1]\+\>"
-syn match	logtalkNumber		"\<0o[0-7]\+\>"
-syn match	logtalkNumber		"\<0x[0-9a-fA-F]\+\>"
-
-
 syn sync ccomment logtalkBlockComment maxlines=50
 
 
@@ -343,7 +328,7 @@
 	else
 		command -nargs=+ HiLink hi def link <args>
 	endif
-
+	
 	HiLink	logtalkBlockComment	Comment
 	HiLink	logtalkLineComment	Comment