FILE: C:\Program Files\Git\usr\share\vim\vim91\syntax\logtalk.vim
--
" Vim syntax file
"
" Language: Logtalk
" Maintainer: Paulo Moura
" Last Change: December 16, 2023
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
" 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=+"+ contains=logtalkEscapeSequence
syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+ contains=logtalkEscapeSequence
syn match logtalkEscapeSequence contained "\\\([\\abfnrtv\"\']\|\(x[a-fA-F0-9]\+\|[0-7]\+\)\\\)"
" Logtalk message sending operators
syn match logtalkOperator "::"
syn match logtalkOperator "\(0'\)\@"
syn match logtalkBuiltIn "\<\(for\|retract\)all\ze("
syn match logtalkBuiltIn "\"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\"
syn match logtalkOperator "->"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\<\(uninstantiation\|type\|domain\|existence\|permission\|representation\|evaluation\|resource\|syntax\)_error\ze("
" Term unification
syn match logtalkOperator "\(0'\)\@"
syn match logtalkOperator "@>="
" Term creation and decomposition
syn match logtalkKeyword "\"
" Arithmetic evaluation
syn match logtalkOperator "\"
" Arithmetic comparison
syn match logtalkOperator "=:="
syn match logtalkOperator "=\\="
syn match logtalkOperator "\(0'\)\@"
syn match logtalkOperator ">="
" Stream selection and control
syn match logtalkKeyword "\<\(curren\|se\)t_\(in\|out\)put\ze("
syn match logtalkKeyword "\"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\"
" Term input/output
syn match logtalkKeyword "\"
" Atomic term processing
syn match logtalkKeyword "\"
" Sorting
syn match logtalkKeyword "\<\(key\)\?sort\ze("
" Evaluable functors
syn match logtalkOperator "\(0'\)\@"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\
"
syn match logtalkKeyword "\"
syn match logtalkKeyword "\>"
syn match logtalkOperator "<<"
syn match logtalkOperator "/\\"
syn match logtalkOperator "\\/"
syn match logtalkOperator "0'\@"
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 "\(0'\)\@--