" Vim syntax file"" Language: Logtalk" Maintainer: Paulo Moura <pmoura@logtalk.org>" Last Change: 2004 May 16" Quit when a syntax file was already loaded:if version < 600syntax clearelseif exists("b:current_syntax")finishendif" Logtalk is case sensitive:syn case match" Logtalk variablessyn match logtalkVariable "\<\(\u\|_\)\(\w\)*\>"" Logtalk clause functorsyn match logtalkOperator ":-"" Logtalk quoted atoms and stringssyn region logtalkString start=+"+ skip=+\\"+ end=+"+syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+" Logtalk message sending operatorssyn match logtalkOperator "::"syn match logtalkOperator "\^\^"" Logtalk external callsyn region logtalkExtCall matchgroup=logtalkExtCallTag start="{" matchgroup=logtalkExtCallTag end="}" contains=ALL" Logtalk opening entity directivessyn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- object(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=ALLsyn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- protocol(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=ALLsyn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- category(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=ALL" Logtalk closing entity directivessyn match logtalkCloseEntityDir ":- end_object\."syn match logtalkCloseEntityDir ":- end_protocol\."syn match logtalkCloseEntityDir ":- end_category\."" Logtalk entity relationssyn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="instantiates(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity containedsyn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="specializes(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity containedsyn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="extends(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity containedsyn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="imports(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity containedsyn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="implements(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity contained" Logtalk directivessyn region logtalkDir matchgroup=logtalkDirTag start=":- initialization(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- info(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- mode(" matchgroup=logtalkDirTag end=")\." contains=logtalkOperator,logtalkAtomsyn region logtalkDir matchgroup=logtalkDirTag start=":- dynamic(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn match logtalkDirTag ":- dynamic\."syn region logtalkDir matchgroup=logtalkDirTag start=":- discontiguous(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- public(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- protected(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- private(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- metapredicate(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- op(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- calls(" matchgroup=logtalkDirTag end=")\." contains=ALLsyn region logtalkDir matchgroup=logtalkDirTag start=":- uses(" matchgroup=logtalkDirTag end=")\." contains=ALL" Logtalk built-in predicatessyn match logtalkBuiltIn "\<current_object\ze("syn match logtalkBuiltIn "\<current_protocol\ze("syn match logtalkBuiltIn "\<current_category\ze("syn match logtalkBuiltIn "\<create_object\ze("syn match logtalkBuiltIn "\<create_protocol\ze("syn match logtalkBuiltIn "\<create_category\ze("syn match logtalkBuiltIn "\<object_property\ze("syn match logtalkBuiltIn "\<protocol_property\ze("syn match logtalkBuiltIn "\<category_property\ze("syn match logtalkBuiltIn "\<abolish_object\ze("syn match logtalkBuiltIn "\<abolish_protocol\ze("syn match logtalkBuiltIn "\<abolish_category\ze("syn match logtalkBuiltIn "\<extends_object\ze("syn match logtalkBuiltIn "\<extends_protocol\ze("syn match logtalkBuiltIn "\<implements_protocol\ze("syn match logtalkBuiltIn "\<instantiates_class\ze("syn match logtalkBuiltIn "\<specializes_class\ze("syn match logtalkBuiltIn "\<imports_category\ze("syn match logtalkBuiltIn "\<abolish_events\ze("syn match logtalkBuiltIn "\<current_event\ze("syn match logtalkBuiltIn "\<define_events\ze("syn match logtalkBuiltIn "\<current_logtalk_flag\ze("syn match logtalkBuiltIn "\<set_logtalk_flag\ze("syn match logtalkBuiltIn "\<logtalk_compile\ze("syn match logtalkBuiltIn "\<logtalk_load\ze("syn match logtalkBuiltIn "\<forall\ze("syn match logtalkBuiltIn "\<retractall\ze("" Logtalk built-in methodssyn match logtalkBuiltInMethod "\<parameter\ze("syn match logtalkBuiltInMethod "\<self\ze("syn match logtalkBuiltInMethod "\<sender\ze("syn match logtalkBuiltInMethod "\<this\ze("syn match logtalkBuiltInMethod "\<current_predicate\ze("syn match logtalkBuiltInMethod "\<predicate_property\ze("syn match logtalkBuiltInMethod "\<abolish\ze("syn match logtalkBuiltInMethod "\<asserta\ze("syn match logtalkBuiltInMethod "\<assertz\ze("syn match logtalkBuiltInMethod "\<clause\ze("syn match logtalkBuiltInMethod "\<retract\ze("syn match logtalkBuiltInMethod "\<retractall\ze("syn match logtalkBuiltInMethod "\<bagof\ze("syn match logtalkBuiltInMethod "\<findall\ze("syn match logtalkBuiltInMethod "\<forall\ze("syn match logtalkBuiltInMethod "\<setof\ze("syn match logtalkBuiltInMethod "\<before\ze("syn match logtalkBuiltInMethod "\<after\ze("syn match logtalkBuiltInMethod "\<phrase\ze("" Mode operatorssyn match logtalkOperator "?"syn match logtalkOperator "@"" Control constructssyn match logtalkKeyword "\<true\>"syn match logtalkKeyword "\<fail\>"syn match logtalkKeyword "\<call\ze("syn match logtalkOperator "!"syn match logtalkOperator ","syn match logtalkOperator ";"syn match logtalkOperator "-->"syn match logtalkOperator "->"syn match logtalkKeyword "\<catch\ze("syn match logtalkKeyword "\<throw\ze("" Term unificationsyn match logtalkOperator "="syn match logtalkKeyword "\<unify_with_occurs_check\ze("syn match logtalkOperator "\\="" Term testingsyn match logtalkKeyword "\<var\ze("syn match logtalkKeyword "\<atom\ze("syn match logtalkKeyword "\<integer\ze("syn match logtalkKeyword "\<float\ze("syn match logtalkKeyword "\<atomic\ze("syn match logtalkKeyword "\<compound\ze("syn match logtalkKeyword "\<nonvar\ze("syn match logtalkKeyword "\<number\ze("" Term comparisonsyn match logtalkOperator "@=<"syn match logtalkOperator "=="syn match logtalkOperator "\\=="syn match logtalkOperator "@<"syn match logtalkOperator "@>"syn match logtalkOperator "@>="" Term creation and decompositionsyn match logtalkKeyword "\<functor\ze("syn match logtalkKeyword "\<arg\ze("syn match logtalkOperator "=\.\."syn match logtalkKeyword "\<copy_term\ze("" Arithemtic evaluationsyn keyword logtalkOperator is" Arithemtic comparisonsyn match logtalkOperator "=:="syn match logtalkOperator "=\\="syn match logtalkOperator "<"syn match logtalkOperator "=<"syn match logtalkOperator ">"syn match logtalkOperator ">="" Stream selection and controlsyn match logtalkKeyword "\<current_input\ze("syn match logtalkKeyword "\<current_output\ze("syn match logtalkKeyword "\<set_input\ze("syn match logtalkKeyword "\<set_output\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 input/outputsyn match logtalkKeyword "\<get_char\ze("syn match logtalkKeyword "\<get_code\ze("syn match logtalkKeyword "\<peek_char\ze("syn match logtalkKeyword "\<peek_code\ze("syn match logtalkKeyword "\<put_char\ze("syn match logtalkKeyword "\<put_code\ze("syn match logtalkKeyword "\<nl\ze("syn match logtalkKeyword "\<nl\>"" Byte input/outputsyn match logtalkKeyword "\<get_byte\ze("syn match logtalkKeyword "\<peek_byte\ze("syn match logtalkKeyword "\<put_byte\ze("" Term input/outputsyn match logtalkKeyword "\<read_term\ze("syn match logtalkKeyword "\<read\ze("syn match logtalkKeyword "\<write_term\ze("syn match logtalkKeyword "\<write\ze("syn match logtalkKeyword "\<writeq\ze("syn match logtalkKeyword "\<write_canonical\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("" Logic and controlsyn match logtalkOperator "\\+"syn match logtalkKeyword "\<once\ze("syn match logtalkKeyword "\<repeat\>"" Atomic term processingsyn match logtalkKeyword "\<atom_length\ze("syn match logtalkKeyword "\<atom_concat\ze("syn match logtalkKeyword "\<sub_atom\ze("syn match logtalkKeyword "\<atom_chars\ze("syn match logtalkKeyword "\<atom_codes\ze("syn match logtalkKeyword "\<char_code\ze("syn match logtalkKeyword "\<number_chars\ze("syn match logtalkKeyword "\<number_codes\ze("" Implementation defined hooks functionssyn match logtalkKeyword "\<set_prolog_flag\ze("syn match logtalkKeyword "\<current_prolog_flag\ze("syn match logtalkKeyword "\<halt\ze("syn match logtalkKeyword "\<halt\>"" Evaluable functorssyn match logtalkOperator "+"syn match logtalkOperator "-"syn match logtalkOperator "\*"syn match logtalkOperator "//"syn match logtalkOperator "/"syn match logtalkKeyword "\<rem(?=[(])"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_part\ze("syn match logtalkKeyword "\<float_fractional_part\ze("syn match logtalkKeyword "\<float\ze("syn match logtalkKeyword "\<floor\ze("syn match logtalkKeyword "\<truncate\ze("syn match logtalkKeyword "\<round\ze("syn match logtalkKeyword "\<ceiling\ze("" Other arithemtic functorssyn match logtalkOperator "\*\*"syn match logtalkKeyword "\<sin\ze("syn match logtalkKeyword "\<cos\ze("syn match logtalkKeyword "\<atan\ze("syn match logtalkKeyword "\<exp\ze("syn match logtalkKeyword "\<log\ze("syn match logtalkKeyword "\<sqrt\ze("" Bitwise functorssyn match logtalkOperator ">>"syn match logtalkOperator "<<"syn match logtalkOperator "/\\"syn match logtalkOperator "\\/"syn match logtalkOperator "\\"" Logtalk end-of-clausesyn match logtalkOperator "\."" Logtalk list operatorsyn match logtalkOperator "|"" Logtalk commentssyn region logtalkBlockComment start="/\*" end="\*/"syn match logtalkLineComment "%.*"" Logtalk numberssyn 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 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 yetif version >= 508 || !exists("did_logtalk_syn_inits")if version < 508let did_logtalk_syn_inits = 1command -nargs=+ HiLink hi link <args>elsecommand -nargs=+ HiLink hi def link <args>endifHiLink logtalkBlockComment CommentHiLink logtalkLineComment CommentHiLink logtalkOpenEntityDir NormalHiLink logtalkOpenEntityDirTag PreProcHiLink logtalkEntity NormalHiLink logtalkEntityRel NormalHiLink logtalkEntityRelTag PreProcHiLink logtalkCloseEntityDir PreProcHiLink logtalkDir NormalHiLink logtalkDirTag PreProcHiLink logtalkAtom StringHiLink logtalkString StringHiLink logtalkNumber NumberHiLink logtalkKeyword KeywordHiLink logtalkBuiltIn KeywordHiLink logtalkBuiltInMethod KeywordHiLink logtalkOperator OperatorHiLink logtalkExtCall NormalHiLink logtalkExtCallTag OperatorHiLink logtalkVariable Identifierdelcommand HiLinkendiflet b:current_syntax = "logtalk"setlocal ts=4