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