ref: 4d4fcc4d64f9d3266aa355bb89d484c95c014724
dir: /lib/vimfiles/syntax/logtalk.vim/
" Vim syntax file " " Language: Logtalk " Maintainer: Paulo Moura <pmoura@logtalk.org> " Last Change: February 24, 2006 " Quit when a syntax file was already loaded: if version < 600 syntax clear elseif exists("b:current_syntax") finish endif " 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=+"+ syn region logtalkAtom start=+'+ skip=+\\'+ end=+'+ " Logtalk message sending operators syn match logtalkOperator "::" syn match logtalkOperator "\^\^" " Logtalk external call syn region logtalkExtCall matchgroup=logtalkExtCallTag start="{" matchgroup=logtalkExtCallTag end="}" contains=ALL " Logtalk opening entity directives syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- object(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- protocol(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- category(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel " Logtalk closing entity directives syn match logtalkCloseEntityDir ":- end_object\." syn match logtalkCloseEntityDir ":- end_protocol\." syn match logtalkCloseEntityDir ":- end_category\." " Logtalk entity relations syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="instantiates(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator contained syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="specializes(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator contained syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="extends(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator contained syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="imports(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator contained syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="implements(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator contained " Logtalk directives syn region logtalkDir matchgroup=logtalkDirTag start=":- alias(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- encoding(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- initialization(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- info(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- mode(" matchgroup=logtalkDirTag end=")\." contains=logtalkOperator, logtalkAtom syn region logtalkDir matchgroup=logtalkDirTag start=":- dynamic(" matchgroup=logtalkDirTag end=")\." contains=ALL syn match logtalkDirTag ":- dynamic\." syn region logtalkDir matchgroup=logtalkDirTag start=":- discontiguous(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- multifile(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- public(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- protected(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- private(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- metapredicate(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- op(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- calls(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- uses(" matchgroup=logtalkDirTag end=")\." contains=ALL " Module directives syn region logtalkDir matchgroup=logtalkDirTag start=":- module(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- export(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- meta_predicate(" matchgroup=logtalkDirTag end=")\." contains=ALL syn region logtalkDir matchgroup=logtalkDirTag start=":- use_module(" matchgroup=logtalkDirTag end=")\." contains=ALL " Logtalk built-in predicates syn match logtalkBuiltIn "\<\(abolish\|c\(reate\|urrent\)\)_\(object\|protocol\|category\)\ze(" syn match logtalkBuiltIn "\<\(object\|protocol\|category\)_property\ze(" syn match logtalkBuiltIn "\<extends_\(object\|protocol\)\ze(" syn match logtalkBuiltIn "\<imp\(orts_category\|lements_protocol\)\ze(" syn match logtalkBuiltIn "\<\(instantiates\|specializes\)_class\ze(" syn match logtalkBuiltIn "\<\(abolish\|define\)_events\ze(" syn match logtalkBuiltIn "\<current_event\ze(" syn match logtalkBuiltIn "\<\(current\|set\)_logtalk_flag\ze(" syn match logtalkBuiltIn "\<logtalk_\(compile\|l\(ibrary_path\|oad\)\)\ze(" syn match logtalkBuiltIn "\<\(for\|retract\)all\ze(" " Logtalk built-in methods syn match logtalkBuiltInMethod "\<parameter\ze(" syn match logtalkBuiltInMethod "\<se\(lf\|nder\)\ze(" syn match logtalkBuiltInMethod "\<this\ze(" syn match logtalkBuiltInMethod "\<current_predicate\ze(" syn match logtalkBuiltInMethod "\<predicate_property\ze(" syn match logtalkBuiltInMethod "\<a\(bolish\|ssert\(a\|z\)\)\ze(" syn match logtalkBuiltInMethod "\<clause\ze(" syn match logtalkBuiltInMethod "\<retract\(all\)\?\ze(" syn match logtalkBuiltInMethod "\<\(bag\|set\)of\ze(" syn match logtalkBuiltInMethod "\<f\(ind\|or\)all\ze(" syn match logtalkBuiltInMethod "\<before\ze(" syn match logtalkBuiltInMethod "\<after\ze(" syn match logtalkBuiltInMethod "\<expand_term\ze(" syn match logtalkBuiltInMethod "\<term_expansion\ze(" syn match logtalkBuiltInMethod "\<phrase\ze(" " Mode operators syn match logtalkOperator "?" syn match logtalkOperator "@" " Control constructs syn match logtalkKeyword "\<true\>" syn match logtalkKeyword "\<fail\>" syn match logtalkKeyword "\<ca\(ll\|tch\)\ze(" syn match logtalkOperator "!" " syn match logtalkOperator "," syn match logtalkOperator ";" syn match logtalkOperator "-->" syn match logtalkOperator "->" syn match logtalkKeyword "\<throw\ze(" " Term unification syn match logtalkOperator "=" syn match logtalkKeyword "\<unify_with_occurs_check\ze(" syn match logtalkOperator "\\=" " Term testing syn match logtalkKeyword "\<var\ze(" syn match logtalkKeyword "\<atom\(ic\)\?\ze(" syn match logtalkKeyword "\<integer\ze(" syn match logtalkKeyword "\<float\ze(" syn match logtalkKeyword "\<compound\ze(" syn match logtalkKeyword "\<n\(onvar\|umber\)\ze(" " Term comparison syn match logtalkOperator "@=<" syn match logtalkOperator "==" syn match logtalkOperator "\\==" syn match logtalkOperator "@<" syn match logtalkOperator "@>" syn match logtalkOperator "@>=" " Term creation and decomposition syn match logtalkKeyword "\<functor\ze(" syn match logtalkKeyword "\<arg\ze(" syn match logtalkOperator "=\.\." syn match logtalkKeyword "\<copy_term\ze(" " Arithemtic evaluation syn match logtalkOperator "\<is\>" " Arithemtic comparison syn match logtalkOperator "=:=" syn match logtalkOperator "=\\=" syn match logtalkOperator "<" syn match logtalkOperator "=<" syn match logtalkOperator ">" syn match logtalkOperator ">=" " Stream selection and control 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(" 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 and byte input/output 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 "\<write\(q\|_\(canonical\|term\)\)\?\ze(" syn match logtalkKeyword "\<\(current_\)\?op\ze(" syn match logtalkKeyword "\<\(current\)\?char_conversion\ze(" " Logic and control syn match logtalkOperator "\\+" syn match logtalkKeyword "\<once\ze(" syn match logtalkKeyword "\<repeat\>" " Atomic term processing 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_\(c\(hars\|odes\)\)\ze(" " Implementation defined hooks functions syn match logtalkKeyword "\<\(current\|set\)_prolog_flag\ze(" syn match logtalkKeyword "\<halt\ze(" syn match logtalkKeyword "\<halt\>" " Evaluable functors syn match logtalkOperator "+" syn match logtalkOperator "-" syn match logtalkOperator "\*" syn match logtalkOperator "//" syn match logtalkOperator "/" 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 "\<flo\(or\|at\(_\(integer\|fractional\)_part\)\?\)\ze(" syn match logtalkKeyword "\<truncate\ze(" syn match logtalkKeyword "\<ceiling\ze(" " Other arithemtic functors syn match logtalkOperator "\*\*" syn match logtalkKeyword "\<s\(in\|qrt\)\ze(" syn match logtalkKeyword "\<cos\ze(" syn match logtalkKeyword "\<atan\ze(" syn match logtalkKeyword "\<exp\ze(" syn match logtalkKeyword "\<log\ze(" " Bitwise functors syn match logtalkOperator ">>" syn match logtalkOperator "<<" syn match logtalkOperator "/\\" syn match logtalkOperator "\\/" 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'.\>" syn match logtalkNumber "\<0b[0-1]\+\>" syn match logtalkNumber "\<0o\o\+\>" syn match logtalkNumber "\<0x\x\+\>" " Logtalk end-of-clause syn match logtalkOperator "\." " Logtalk comments syn region logtalkBlockComment start="/\*" end="\*/" fold syn match logtalkLineComment "%.*" " Logtalk entity folding syn region logtalkEntity transparent fold keepend start=":- object(" end=":- end_object\." contains=ALL syn region logtalkEntity transparent fold keepend start=":- protocol(" end=":- end_protocol\." contains=ALL syn region logtalkEntity transparent fold keepend start=":- category(" end=":- end_category\." contains=ALL syn sync ccomment logtalkBlockComment 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 yet if version >= 508 || !exists("did_logtalk_syn_inits") if version < 508 let did_logtalk_syn_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif HiLink logtalkBlockComment Comment HiLink logtalkLineComment Comment HiLink logtalkOpenEntityDir Normal HiLink logtalkOpenEntityDirTag PreProc HiLink logtalkEntity Normal HiLink logtalkEntityRel Normal HiLink logtalkEntityRelTag PreProc HiLink logtalkCloseEntityDir PreProc HiLink logtalkDir Normal HiLink logtalkDirTag PreProc HiLink logtalkAtom String HiLink logtalkString String HiLink logtalkNumber Number HiLink logtalkKeyword Keyword HiLink logtalkBuiltIn Keyword HiLink logtalkBuiltInMethod Keyword HiLink logtalkOperator Operator HiLink logtalkExtCall Normal HiLink logtalkExtCallTag Operator HiLink logtalkVariable Identifier delcommand HiLink endif let b:current_syntax = "logtalk" setlocal ts=4 setlocal fdm=syntax setlocal fdc=2