aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/logtalk.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/logtalk.vim')
-rw-r--r--runtime/syntax/logtalk.vim51
1 files changed, 26 insertions, 25 deletions
diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim
index bc70ef41b4..2c6c82aaa0 100644
--- a/runtime/syntax/logtalk.vim
+++ b/runtime/syntax/logtalk.vim
@@ -1,8 +1,9 @@
" Vim syntax file
"
" Language: Logtalk
-" Maintainer: Paulo Moura <pmoura@logtalk.org>
-" Last Change: August 3, 2018
+" Maintainer: Paulo Moura <pmoura@logtalk.org>
+" Last Change: December 16, 2023
+
" quit when a syntax file was already loaded
@@ -30,7 +31,7 @@ syn match logtalkOperator ":-"
" Logtalk quoted atoms and strings
-syn region logtalkString start=+"+ skip=+\\"+ end=+"+
+syn region logtalkString start=+"+ skip=+\\"+ end=+"+ contains=logtalkEscapeSequence
syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+ contains=logtalkEscapeSequence
syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)"
@@ -39,7 +40,7 @@ syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+
" Logtalk message sending operators
syn match logtalkOperator "::"
-syn match logtalkOperator ":"
+syn match logtalkOperator "\(0'\)\@<!:"
syn match logtalkOperator "\^\^"
@@ -138,7 +139,7 @@ syn match logtalkBuiltIn "\<logtalk_make\>"
syn match logtalkBuiltIn "\<\(for\|retract\)all\ze("
-syn match logtalkBuiltIn "\<threaded\(_\(call\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("
+syn match logtalkBuiltIn "\<threaded\(_\(ca\(ll\|ncel\)\|once\|ignore\|exit\|peek\|wait\|notify\)\)\?\ze("
syn match logtalkBuiltIn "\<threaded_engine\(_\(create\|destroy\|self\|next\|next_reified\|yield\|post\|fetch\)\)\?\ze("
@@ -171,8 +172,8 @@ syn match logtalkBuiltInMethod "\<phrase\ze("
" Mode operators
-syn match logtalkOperator "?"
-syn match logtalkOperator "@"
+syn match logtalkOperator "\(0'\)\@<!?"
+syn match logtalkOperator "\(0'\)\@<!@"
" Control constructs
@@ -181,19 +182,19 @@ syn match logtalkKeyword "\<true\>"
syn match logtalkKeyword "\<fail\>"
syn match logtalkKeyword "\<false\>"
syn match logtalkKeyword "\<ca\(ll\|tch\)\ze("
-syn match logtalkOperator "!"
-" syn match logtalkOperator ","
-syn match logtalkOperator ";"
+syn match logtalkOperator "\(0'\)\@<!!"
+" syn match logtalkOperator "\(0'\)\@<!,"
+syn match logtalkOperator "\(0'\)\@<!;"
syn match logtalkOperator "-->"
syn match logtalkOperator "->"
syn match logtalkKeyword "\<throw\ze("
syn match logtalkKeyword "\<\(instantiation\|system\)_error\>"
-syn match logtalkKeyword "\<\(type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze("
+syn match logtalkKeyword "\<\(uninstantiation\|type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze("
" Term unification
-syn match logtalkOperator "="
+syn match logtalkOperator "\(0'\)\@<!="
syn match logtalkKeyword "\<subsumes_term\ze("
syn match logtalkKeyword "\<unify_with_occurs_check\ze("
syn match logtalkOperator "\\="
@@ -246,9 +247,9 @@ syn match logtalkOperator "\<is\>"
syn match logtalkOperator "=:="
syn match logtalkOperator "=\\="
-syn match logtalkOperator "<"
+syn match logtalkOperator "\(0'\)\@<!<"
syn match logtalkOperator "=<"
-syn match logtalkOperator ">"
+syn match logtalkOperator "\(0'\)\@<!>"
syn match logtalkOperator ">="
@@ -310,11 +311,11 @@ syn match logtalkKeyword "\<\(key\)\?sort\ze("
" Evaluable functors
-syn match logtalkOperator "+"
-syn match logtalkOperator "-"
-syn match logtalkOperator "\*"
+syn match logtalkOperator "\(0'\)\@<![+]"
+syn match logtalkOperator "\(0'\)\@<![-]"
+syn match logtalkOperator "\(0'\)\@<!\*"
syn match logtalkOperator "//"
-syn match logtalkOperator "/"
+syn match logtalkOperator "\(0'\)\@<!/"
syn match logtalkKeyword "\<div\ze("
syn match logtalkKeyword "\<r\(ound\|em\)\ze("
syn match logtalkKeyword "\<e\>"
@@ -330,7 +331,7 @@ syn match logtalkKeyword "\<t\(an\|runcate\)\ze("
syn match logtalkKeyword "\<ceiling\ze("
-" Other arithmetic functors
+" Other arithemtic functors
syn match logtalkOperator "\*\*"
syn match logtalkKeyword "\<s\(in\|qrt\)\ze("
@@ -346,18 +347,18 @@ syn match logtalkOperator ">>"
syn match logtalkOperator "<<"
syn match logtalkOperator "/\\"
syn match logtalkOperator "\\/"
-syn match logtalkOperator "\\"
+syn match logtalkOperator "0'\@<!\\"
syn match logtalkKeyword "\<xor\ze("
" Logtalk list operator
-syn match logtalkOperator "|"
+syn match logtalkOperator "\(0'\)\@<!|"
" Logtalk existential quantifier operator
-syn match logtalkOperator "\^"
+syn match logtalkOperator "\(0'\)\@<!^"
" Logtalk numbers
@@ -366,7 +367,7 @@ 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''\|0'\"\>"
+syn match logtalkNumber "0'[\\]\?."
syn match logtalkNumber "\<0b[0-1]\+\>"
syn match logtalkNumber "\<0o\o\+\>"
syn match logtalkNumber "\<0x\x\+\>"
@@ -374,13 +375,13 @@ syn match logtalkNumber "\<0x\x\+\>"
" Logtalk end-of-clause
-syn match logtalkOperator "\."
+syn match logtalkOperator "\(0'\)\@<!\."
" Logtalk comments
syn region logtalkBlockComment start="/\*" end="\*/" fold
-syn match logtalkLineComment "%.*"
+syn match logtalkLineComment "%.*$"
syn cluster logtalkComment contains=logtalkBlockComment,logtalkLineComment