Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/vim71/syntax/logtalk.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim71/syntax/logtalk.vim')
-rw-r--r--vim71/syntax/logtalk.vim392
1 files changed, 392 insertions, 0 deletions
diff --git a/vim71/syntax/logtalk.vim b/vim71/syntax/logtalk.vim
new file mode 100644
index 0000000..6faf596
--- /dev/null
+++ b/vim71/syntax/logtalk.vim
@@ -0,0 +1,392 @@
+" 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