Logtalk 2.12.0.

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@496 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
pmoura 2002-05-28 11:37:56 +00:00
parent 47a5475024
commit f1eddd7966
5 changed files with 1179 additions and 0 deletions

56
Logtalk/wenv/NOTES Normal file
View File

@ -0,0 +1,56 @@
=================================================================
Logtalk - Object oriented extension to Prolog
Release 2.12.0
Copyright (c) 1998-2002 Paulo Moura. All Rights Reserved.
=================================================================
This directory contains some files that provide syntax highlighting
for editing Logtalk source files with common text editors.
logtalk.xml
edit mode file for jEdit 4.0 (http://www.jedit.org/)
If this file is not included with your version of jEdit or if the
included file is older than the one provided here, copy this file
to the "modes" subdirectory in jEdit directory installation. Next,
check the "catalog" file in the same subdirectory and add (if not
present) the following entry:
<MODE NAME="logtalk" FILE="logtalk.xml" FILE_NAME_GLOB="*.lgt" />
logtalk.vim
syntax file for VIM 6.1 (http://www.vim.org)
If this file is not included with your version of VIM or if the
included file is older than the one provided here, copy this file
to the "syntax" sub-directory in your VIM installation directory
and add the following entry to the "filetype.vim" configuration
file (if not present):
" Logtalk
au BufNewFile,BufRead *.lgt setf logtalk
logtalk.syn
syntax file for TextPad 4.5 (http://www.textpad.com)
To install, copy this file to the SAMPLES subdirectory in the TextPad
application directory and define a new document class for Logtalk source
files. THIS SYNTAX FILE IS UNDER DEVELOPMENT.
logtalk.pats
syntax highlighting patterns file for NEdit 5.2 (http://www.nedit.org)
To install, follow the instructions included in the file itself or take
a look at:
http://www.nedit.org/download/patterns.shtml

View File

@ -0,0 +1 @@
! Syntax highlighting patterns file for Logtalk (http://www.logtalk.org) ! ! Author: Paulo Moura (pmoura at logtalk.org) ! ! Last changed in: May, 21 ! ! ! To install this patterns file: ! ! 1. Load this file by starting nedit from the command line: ! ! % nedit -import logtalk.pats ! ! 2. Go to the Preferences menu and verify that the patterns were loaded ! correctly. ! ! 3. If everything is correct, choose the option Save Defaults from the ! Preferences menu. ! ! nedit.fileVersion: 5.2 nedit.highlightPatterns: Logtalk:1:0{\n\ Entity directives:":\\-\\sobject|:\\-\\sprotocol|:\\-\\scategory|:\\-\\send_object|:\\-\\send_protocol|:\\-\\send_category":::Keyword::\n\ Entity relations:"<(instantiates|specializes|extends|imports|implements)>":::Keyword::\n\ Directives:":\\-\\sinitialization|:\\-\\sinfo|:\\-\\smode|:\\-\\sdynamic|:\\-\\sdiscontiguous|:\\-\\spublic|:\\-\\sprotected|:\\-\\sprivate|:\\-\\smetapredicate|:\\-\\sop|:\\-\\scalls|:\\-\\suses":::Keyword::\n\ Clause operators:":\\-|\\.":::Keyword::\n\ Term testing:"<[^+?@-](var|atom|integer|float|atomic|compound|nonvar|number)>":::Subroutine1::\n\ Message sending operators:"::|\\^\\^":::Keyword::\n\ Control constructs:"!|,|;|\\-\\>|<(true|fail|call|catch|throw)>":::Subroutine::\n\ Block comment:"/\\*":"\\*/"::Comment::\n\ Line comment:"%":"$"::Comment::\n\ String:"'":"'"::String::\n\ Built-in methods:"<(parameter|self|sender|this|current_predicate|predicate_property|abolish|asserta|assertz|retractall|retract|bagof|findall|forall|setof|before|after)>":::Subroutine::\n\ Arithmetic operators:"<is>|\\+|\\*|\\-|/|=:=|=\\\\=|=\\<|\\>=|\\<|\\>":::Subroutine1::\n\ Built-in predicates:"<(current_object|current_protocol|current_category|create_object|create_protocol|create_category|object_property|protocol_property|category_property|abolish_object|abolish_protocol|abolish_vategory|extends_object|extends_protocol|omplements_protocol|instantiates_object|specializes_object|imports_category|abolish_events|current_events|define_events|current_logtalk_flag|set_logtalk_flag|logtalk_compile|logtalk_load|forall|logtalk_version|retractall)>":::Subroutine1::\n\ Term unification:"=|<unify_with_occurs_check>|\\\\=":::Subroutine1::\n\ Term comparison:"@=\\<|==|\\\\==|@\\>=|@\\<|@\\>":::Subroutine1::\n\ Term creation and decomposition:"<(functor|arg|copy_term)>|=\\.\\.":::Subroutine1::\n\ Mode operators:"\\?|@":::Subroutine1::\n\ Stream selection and control:"<(current_input|current_output|set_input|set_output|open|close|flush_output|stream_property|at_end_of_stream|set_stream_position)>":::Subroutine1::\n\ Character input-output:"<(get_char|get_code|peek_char|peek_code|put_char|put_code|nl)>":::Subroutine1::\n\ Byte input-output:"<(get_byte|peek_byte|put_byte)>":::Subroutine1::\n\ Term input-output:"<(read_term|read|write_canonical|write_term|writeq|write|current_op|op|current_char_conversion|char_conversion)>":::Subroutine1::\n\ Logic and control:"\\\\\\+|<(once|repeat)>":::Subroutine::\n\ Atomic term processing:"<(atom_length|atom_concat|sub_atom|atom_chars|atom_codes|char_code|number_chars|number_codes)>":::Subroutine1::\n\ Implementation defined hooks:"<(set_prolog_flag|current_prolog_flag)>":::Subroutine1::\n\ Evaluable functors:"\\+|-|\\*|//|/|<(rem|mod|abs|sign|float_integer_part|float_fractional_part|float|floor|truncate|round|ceiling)>":::Subroutine1::\n\ Other arithemtic functors:"\\*\\*|<(sin|cos|atan|exp|log|sqrt)>":::Subroutine1::\n\ Bitwise functors:">>|<<|/\\\\|\\\\/|\\\\":::Subroutine1::\n\ } nedit.languageModes: Logtalk:.lgt::::4:4:\n\

310
Logtalk/wenv/logtalk.syn Normal file
View File

@ -0,0 +1,310 @@
; TextPad syntax definitions for Logtalk (http://www.logtalk.org/)
;
; Author: Paulo Moura
; Last changed in: May 21, 2002
;
; Tags used and sugested colors:
; Keywords 1 message sending operators blue
; Keywords 2 entity enclosing directives purple
; Keywords 3 entity directives purple
; Keywords 4 built-in predicates
; Keywords 5 built-in methods
C=1
[Syntax]
Namespace1 = 6
IgnoreCase = NO
InitKeyWordChars =
KeyWordChars = a-zA-Z0-9_:^;*+,-./;<=>?@[\]^{|}
KeyWordLength =
BracketChars =
OperatorChars = <=>?@[\]|
PreprocStart =
SyntaxStart =
SyntaxEnd =
HexPrefix = 0x
CommentStart = /*
CommentEnd = */
CommentStartAlt =
CommentEndAlt =
SingleComment = %
SingleCommentCol =
SingleCommentAlt =
SingleCommentColAlt =
SingleCommentEsc =
StringsSpanLines = Yes
StringStart = '
StringEnd = '
StringAlt = "
StringEsc = '
CharStart =
CharEnd =
CharEsc =
[Keywords 1]
; Logtalk message sending operators
^^
:-
.
,
;
::
; Logtalk external call
{
}
[Keywords 2]
; Logtalk opening entity directives
object
protocol
category
; Logtalk closing entity directives
end_object
end_protocol
end_category
; Logtalk entity relations
instantiates
specializes
extends
imports
implements
[Keywords 3]
; Logtalk directives
initialization
info
mode
dynamic
discontiguous
public
protected
private
metapredicate
op
calls
uses
[Keywords 4]
; Logtalk built-in predicates
current_object
current_protocol
current_category
create_object
create_protocol
create_category
object_property
protocol_property
category_property
abolish_object
abolish_protocol
abolish_category
extends_object
extends_protocol
implements_protocol
instantiates_object
specializes_object
imports_category
abolish_events
current_event
define_events
current_logtalk_flag
set_logtalk_flag
logtalk_compile
logtalk_load
forall
logtalk_version
retractall
[Keywords 5]
; Logtalk built-in methods
parameter
self
sender
this
current_predicate
predicate_property
abolish
asserta
assertz
clause
retract
retractall
bagof
findall
forall
setof
before
after
; Mode operators
?
@
; Control constructs
true
fail
call
!
,
;
->
catch
throw
; Term unification
=
unify_with_occurs_check
\=
; Term testing
var
atom
integer
float
atomic
compound
nonvar
number
; Term comparison
@=<
==
\==
@<
@>
@>=
; Term creation and decomposition
functor
arg
=..
copy_term
; Arithemtic evaluation
is
; Arithemtic comparison
=:=
=\=
<
=<
>
>=
; Stream selection and control
current_input
current_output
set_input
set_output
open
close
flush_output
stream_property
at_end_of_stream
set_stream_position
; Character input/output
get_char
get_code
peek_char
peek_code
put_char
put_code
nl
; Byte input/output
get_byte
peek_byte
put_byte
; Term input/output
read_term
read
write_term
write
writeq
write_canonical
op
current_op
char_conversion
current_char_conversion
; Logic and control
\+
once
repeat
; Atomic term processing
atom_length
atom_concat
sub_atom
atom_chars
atom_codes
char_code
number_chars
number_codes
; Implementation defined hooks functions
set_prolog_flag
current_prolog_flag
halt
; Evaluable functors
+
-
*
//
/
rem
mod
abs
sign
float_integer_part
float_fractional_part
float
floor
truncate
round
ceiling
; Other arithemtic functors
**
sin
cos
atan
exp
log
sqrt
; Bitwise functors
>>
<<
/\
\/
\
; Logtalk end-of-clause
.
; Logtalk list operator
|

400
Logtalk/wenv/logtalk.vim Normal file
View File

@ -0,0 +1,400 @@
" Vim syntax file
"
" Language: Logtalk
" Maintainer: Paulo Moura <pmoura@noe.ubi.pt>
" Last Change: 2002 May 18
" 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 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=ALL
syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- protocol(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=ALL
syn region logtalkOpenEntityDir matchgroup=logtalkOpenEntityDirTag start=":- category(" matchgroup=logtalkOpenEntityDirTag end=")\." contains=ALL
" 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 contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="specializes(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="extends(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="imports(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity contained
syn region logtalkEntityRel matchgroup=logtalkEntityRelTag start="implements(" matchgroup=logtalkEntityRelTag end=")" contains=logtalkEntity contained
" Logtalk directives
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=":- 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
" Logtalk built-in predicates
syn keyword logtalkBuiltIn current_object
syn keyword logtalkBuiltIn current_protocol
syn keyword logtalkBuiltIn current_category
syn keyword logtalkBuiltIn create_object
syn keyword logtalkBuiltIn create_protocol
syn keyword logtalkBuiltIn create_category
syn keyword logtalkBuiltIn object_property
syn keyword logtalkBuiltIn protocol_property
syn keyword logtalkBuiltIn category_property
syn keyword logtalkBuiltIn abolish_object
syn keyword logtalkBuiltIn abolish_protocol
syn keyword logtalkBuiltIn abolish_category
syn keyword logtalkBuiltIn extends_object
syn keyword logtalkBuiltIn extends_protocol
syn keyword logtalkBuiltIn implements_protocol
syn keyword logtalkBuiltIn instantiates_object
syn keyword logtalkBuiltIn specializes_object
syn keyword logtalkBuiltIn imports_category
syn keyword logtalkBuiltIn abolish_events
syn keyword logtalkBuiltIn current_event
syn keyword logtalkBuiltIn define_events
syn keyword logtalkBuiltIn current_logtalk_flag
syn keyword logtalkBuiltIn set_logtalk_flag
syn keyword logtalkBuiltIn logtalk_compile
syn keyword logtalkBuiltIn logtalk_load
syn keyword logtalkBuiltIn forall
syn keyword logtalkBuiltIn logtalk_version
syn keyword logtalkBuiltIn retractall
" Logtalk built-in methods
syn keyword logtalkBuiltInMethod parameter
syn keyword logtalkBuiltInMethod self
syn keyword logtalkBuiltInMethod sender
syn keyword logtalkBuiltInMethod this
syn keyword logtalkBuiltInMethod current_predicate
syn keyword logtalkBuiltInMethod predicate_property
syn keyword logtalkBuiltInMethod abolish
syn keyword logtalkBuiltInMethod asserta
syn keyword logtalkBuiltInMethod assertz
syn keyword logtalkBuiltInMethod clause
syn keyword logtalkBuiltInMethod retract
syn keyword logtalkBuiltInMethod retractall
syn keyword logtalkBuiltInMethod bagof
syn keyword logtalkBuiltInMethod findall
syn keyword logtalkBuiltInMethod forall
syn keyword logtalkBuiltInMethod setof
syn keyword logtalkBuiltInMethod before
syn keyword logtalkBuiltInMethod after
" Mode operators
syn match logtalkOperator "?"
syn match logtalkOperator "@"
" Control constructs
syn keyword logtalkKeyword true
syn keyword logtalkKeyword fail
syn keyword logtalkKeyword call
syn match logtalkOperator "!"
syn match logtalkOperator ","
syn match logtalkOperator ";"
syn match logtalkOperator "->"
syn keyword logtalkKeyword catch
syn keyword logtalkKeyword throw
" Term unification
syn match logtalkOperator "="
syn keyword logtalkKeyword unify_with_occurs_check
syn match logtalkOperator "\\="
" Term testing
syn keyword logtalkKeyword var
syn keyword logtalkKeyword atom
syn keyword logtalkKeyword integer
syn keyword logtalkKeyword float
syn keyword logtalkKeyword atomic
syn keyword logtalkKeyword compound
syn keyword logtalkKeyword nonvar
syn keyword logtalkKeyword number
" 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 keyword logtalkKeyword functor
syn keyword logtalkKeyword arg
syn match logtalkOperator "=\.\."
syn keyword logtalkKeyword copy_term
" Arithemtic evaluation
syn keyword 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 keyword logtalkKeyword current_input
syn keyword logtalkKeyword current_output
syn keyword logtalkKeyword set_input
syn keyword logtalkKeyword set_output
syn keyword logtalkKeyword open
syn keyword logtalkKeyword close
syn keyword logtalkKeyword flush_output
syn keyword logtalkKeyword stream_property
syn keyword logtalkKeyword at_end_of_stream
syn keyword logtalkKeyword set_stream_position
" Character input/output
syn keyword logtalkKeyword get_char
syn keyword logtalkKeyword get_code
syn keyword logtalkKeyword peek_char
syn keyword logtalkKeyword peek_code
syn keyword logtalkKeyword put_char
syn keyword logtalkKeyword put_code
syn keyword logtalkKeyword nl
" Byte input/output
syn keyword logtalkKeyword get_byte
syn keyword logtalkKeyword peek_byte
syn keyword logtalkKeyword put_byte
" Term input/output
syn keyword logtalkKeyword read_term
syn keyword logtalkKeyword read
syn keyword logtalkKeyword write_term
syn keyword logtalkKeyword write
syn keyword logtalkKeyword writeq
syn keyword logtalkKeyword write_canonical
syn keyword logtalkKeyword op
syn keyword logtalkKeyword current_op
syn keyword logtalkKeyword char_conversion
syn keyword logtalkKeyword current_char_conversion
" Logic and control
syn match logtalkOperator "\\+"
syn keyword logtalkKeyword once
syn keyword logtalkKeyword repeat
" Atomic term processing
syn keyword logtalkKeyword atom_length
syn keyword logtalkKeyword atom_concat
syn keyword logtalkKeyword sub_atom
syn keyword logtalkKeyword atom_chars
syn keyword logtalkKeyword atom_codes
syn keyword logtalkKeyword char_code
syn keyword logtalkKeyword number_chars
syn keyword logtalkKeyword number_codes
" Implementation defined hooks functions
syn keyword logtalkKeyword set_prolog_flag
syn keyword logtalkKeyword current_prolog_flag
syn keyword logtalkKeyword halt
" Evaluable functors
syn match logtalkOperator "+"
syn match logtalkOperator "-"
syn match logtalkOperator "\*"
syn match logtalkOperator "//"
syn match logtalkOperator "/"
syn keyword logtalkKeyword rem
syn keyword logtalkKeyword mod
syn keyword logtalkKeyword abs
syn keyword logtalkKeyword sign
syn keyword logtalkKeyword float_integer_part
syn keyword logtalkKeyword float_fractional_part
syn keyword logtalkKeyword float
syn keyword logtalkKeyword floor
syn keyword logtalkKeyword truncate
syn keyword logtalkKeyword round
syn keyword logtalkKeyword ceiling
" Other arithemtic functors
syn match logtalkOperator "\*\*"
syn keyword logtalkKeyword sin
syn keyword logtalkKeyword cos
syn keyword logtalkKeyword atan
syn keyword logtalkKeyword exp
syn keyword logtalkKeyword log
syn keyword logtalkKeyword sqrt
" Bitwise functors
syn match logtalkOperator ">>"
syn match logtalkOperator "<<"
syn match logtalkOperator "/\\"
syn match logtalkOperator "\\/"
syn match logtalkOperator "\\"
" Logtalk end-of-clause
syn match logtalkOperator "\."
" Logtalk list operator
syn match logtalkOperator "|"
" Logtalk comments
syn region logtalkBlockComment start="/\*" end="\*/"
syn match logtalkLineComment "%.*"
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 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 Statement
HiLink logtalkEntity Normal
HiLink logtalkEntityRel Normal
HiLink logtalkEntityRelTag Statement
HiLink logtalkCloseEntityDir Statement
HiLink logtalkDir Normal
HiLink logtalkDirTag Statement
HiLink logtalkAtom String
HiLink logtalkString String
HiLink logtalkKeyword Keyword
HiLink logtalkBuiltIn Keyword
HiLink logtalkBuiltInMethod Keyword
HiLink logtalkOperator Operator
HiLink logtalkExtCall Normal
HiLink logtalkExtCallTag Operator
delcommand HiLink
endif
let b:current_syntax = "logtalk"
set ts=4

412
Logtalk/wenv/logtalk.xml Normal file
View File

@ -0,0 +1,412 @@
<?xml version="1.0"?>
<!DOCTYPE MODE SYSTEM "xmode.dtd">
<!-- jEdit Logtalk syntax file
written by Paulo Moura
version 1.0
created on 2 May 2002
last revised 2 May 2002
-->
<MODE>
<PROPS>
<PROPERTY NAME="lineComment" VALUE="%" />
<PROPERTY NAME="commentStart" VALUE="/*" />
<PROPERTY NAME="commentEnd" VALUE="*/" />
</PROPS>
<RULES IGNORE_CASE="FALSE">
<!-- Whitespace -->
<WHITESPACE> </WHITESPACE>
<WHITESPACE> </WHITESPACE>
<!-- Comments -->
<EOL_SPAN TYPE="COMMENT1">%</EOL_SPAN>
<SPAN TYPE="COMMENT1" NO_LINE_BREAK="FALSE">
<BEGIN>/*</BEGIN>
<END>*/</END>
</SPAN>
<!-- String literals -->
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>'</BEGIN>
<END>'</END>
</SPAN>
<SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
<BEGIN>"</BEGIN>
<END>"</END>
</SPAN>
<!-- External call -->
<SPAN TYPE="OPERATOR" DELEGATE="MAIN">
<BEGIN>{</BEGIN>
<END>}</END>
</SPAN>
<!-- Opening entity directives -->
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_RELATIONS">
<BEGIN>:- object(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_RELATIONS">
<BEGIN>:- protocol(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_RELATIONS">
<BEGIN>:- category(</BEGIN>
<END>).</END>
</SPAN>
<!-- Closing entity directives -->
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE">
<BEGIN>:- end_object</BEGIN>
<END>.</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE">
<BEGIN>:- end_protocol</BEGIN>
<END>.</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE">
<BEGIN>:- end_category</BEGIN>
<END>.</END>
</SPAN>
<!-- Directives -->
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- initialization(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- info(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- mode(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- dynamic(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- dynamic</BEGIN>
<END>.</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- discontiguous(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- public(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- protected(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- private(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- metapredicate(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- op(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- calls(</BEGIN>
<END>).</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="MAIN">
<BEGIN>:- uses(</BEGIN>
<END>).</END>
</SPAN>
<!-- Logtalk message sending operators -->
<SEQ TYPE="OPERATOR">::</SEQ>
<SEQ TYPE="OPERATOR">:</SEQ>
<SEQ TYPE="OPERATOR">^^</SEQ>
<!-- Parentheses -->
<SEQ TYPE="NULL">(</SEQ>
<SEQ TYPE="NULL">)</SEQ>
<SEQ TYPE="NULL">{</SEQ>
<SEQ TYPE="NULL">}</SEQ>
<KEYWORDS IGNORE_CASE="FALSE">
<!-- Logtalk built-in predicates -->
<FUNCTION>current_object</FUNCTION>
<FUNCTION>current_protocol</FUNCTION>
<FUNCTION>current_category</FUNCTION>
<FUNCTION>create_object</FUNCTION>
<FUNCTION>create_protocol</FUNCTION>
<FUNCTION>create_category</FUNCTION>
<FUNCTION>object_property</FUNCTION>
<FUNCTION>protocol_property</FUNCTION>
<FUNCTION>category_property</FUNCTION>
<FUNCTION>abolish_object</FUNCTION>
<FUNCTION>abolish_protocol</FUNCTION>
<FUNCTION>abolish_category</FUNCTION>
<FUNCTION>extends_object</FUNCTION>
<FUNCTION>extends_protocol</FUNCTION>
<FUNCTION>implements_protocol</FUNCTION>
<FUNCTION>instantiates_object</FUNCTION>
<FUNCTION>specializes_object</FUNCTION>
<FUNCTION>imports_category</FUNCTION>
<FUNCTION>abolish_events</FUNCTION>
<FUNCTION>current_event</FUNCTION>
<FUNCTION>define_events</FUNCTION>
<FUNCTION>current_logtalk_flag</FUNCTION>
<FUNCTION>set_logtalk_flag</FUNCTION>
<FUNCTION>logtalk_compile</FUNCTION>
<FUNCTION>logtalk_load</FUNCTION>
<FUNCTION>forall</FUNCTION>
<FUNCTION>logtalk_version</FUNCTION>
<FUNCTION>retractall</FUNCTION>
<!-- Logtalk built-in methods -->
<FUNCTION>parameter</FUNCTION>
<FUNCTION>self</FUNCTION>
<FUNCTION>sender</FUNCTION>
<FUNCTION>this</FUNCTION>
<FUNCTION>current_predicate</FUNCTION>
<FUNCTION>predicate_property</FUNCTION>
<FUNCTION>abolish</FUNCTION>
<FUNCTION>asserta</FUNCTION>
<FUNCTION>assertz</FUNCTION>
<FUNCTION>clause</FUNCTION>
<FUNCTION>retract</FUNCTION>
<FUNCTION>retractall</FUNCTION>
<FUNCTION>bagof</FUNCTION>
<FUNCTION>findall</FUNCTION>
<FUNCTION>forall</FUNCTION>
<FUNCTION>setof</FUNCTION>
<FUNCTION>before</FUNCTION>
<FUNCTION>after</FUNCTION>
<!-- Mode operators -->
<SEQ TYPE="OPERATOR">?</SEQ>
<SEQ TYPE="OPERATOR">@</SEQ>
<!-- Control constructs -->
<FUNCTION>true</FUNCTION>
<FUNCTION>fail</FUNCTION>
<FUNCTION>call</FUNCTION>
<SEQ TYPE="FUNCTION">!</SEQ>
<SEQ TYPE="OPERATOR">,</SEQ>
<SEQ TYPE="OPERATOR">;</SEQ>
<SEQ TYPE="OPERATOR">-&gt;</SEQ>
<FUNCTION>catch</FUNCTION>
<FUNCTION>throw</FUNCTION>
<!-- Term unification -->
<SEQ TYPE="OPERATOR">=</SEQ>
<FUNCTION>unify_with_occurs_check</FUNCTION>
<SEQ TYPE="OPERATOR">\=</SEQ>
<!-- Term testing -->
<FUNCTION>var</FUNCTION>
<FUNCTION>atom</FUNCTION>
<FUNCTION>integer</FUNCTION>
<FUNCTION>float</FUNCTION>
<FUNCTION>atomic</FUNCTION>
<FUNCTION>compound</FUNCTION>
<FUNCTION>nonvar</FUNCTION>
<FUNCTION>number</FUNCTION>
<!-- Term comparison -->
<SEQ TYPE="OPERATOR">@=&lt;</SEQ>
<SEQ TYPE="OPERATOR">==</SEQ>
<SEQ TYPE="OPERATOR">\==</SEQ>
<SEQ TYPE="OPERATOR">@&lt;</SEQ>
<SEQ TYPE="OPERATOR">@&gt;</SEQ>
<SEQ TYPE="OPERATOR">@&gt;=</SEQ>
<!-- Term creation and decomposition -->
<FUNCTION>functor</FUNCTION>
<FUNCTION>arg</FUNCTION>
<SEQ TYPE="OPERATOR">=..</SEQ>
<FUNCTION>copy_term</FUNCTION>
<!-- Arithemtic evaluation -->
<FUNCTION>is</FUNCTION>
<!-- Arithemtic comparison -->
<SEQ TYPE="OPERATOR">=:=</SEQ>
<SEQ TYPE="OPERATOR">=\=</SEQ>
<SEQ TYPE="OPERATOR">&lt;</SEQ>
<SEQ TYPE="OPERATOR">=&lt;</SEQ>
<SEQ TYPE="OPERATOR">&gt;</SEQ>
<SEQ TYPE="OPERATOR">&gt;=</SEQ>
<!-- Clause retrievel and information -->
<FUNCTION>clause</FUNCTION>
<FUNCTION>current_predicate</FUNCTION>
<!-- Clause creation and destruction -->
<FUNCTION>asserta</FUNCTION>
<FUNCTION>assertz</FUNCTION>
<FUNCTION>retract</FUNCTION>
<FUNCTION>abolish</FUNCTION>
<!-- All solutions -->
<FUNCTION>findall</FUNCTION>
<FUNCTION>bagof</FUNCTION>
<FUNCTION>setof</FUNCTION>
<!-- Stream selection and control -->
<FUNCTION>current_input</FUNCTION>
<FUNCTION>current_output</FUNCTION>
<FUNCTION>set_input</FUNCTION>
<FUNCTION>set_output</FUNCTION>
<FUNCTION>open</FUNCTION>
<FUNCTION>close</FUNCTION>
<FUNCTION>flush_output</FUNCTION>
<FUNCTION>stream_property</FUNCTION>
<FUNCTION>at_end_of_stream</FUNCTION>
<FUNCTION>set_stream_position</FUNCTION>
<!-- Character input/output -->
<FUNCTION>get_char</FUNCTION>
<FUNCTION>get_code</FUNCTION>
<FUNCTION>peek_char</FUNCTION>
<FUNCTION>peek_code</FUNCTION>
<FUNCTION>put_char</FUNCTION>
<FUNCTION>put_code</FUNCTION>
<FUNCTION>nl</FUNCTION>
<!-- Byte input/output -->
<FUNCTION>get_byte</FUNCTION>
<FUNCTION>peek_byte</FUNCTION>
<FUNCTION>put_byte</FUNCTION>
<!-- Term input/output -->
<FUNCTION>read_term</FUNCTION>
<FUNCTION>read</FUNCTION>
<FUNCTION>write_term</FUNCTION>
<FUNCTION>write</FUNCTION>
<FUNCTION>writeq</FUNCTION>
<FUNCTION>write_canonical</FUNCTION>
<FUNCTION>op</FUNCTION>
<FUNCTION>current_op</FUNCTION>
<FUNCTION>char_conversion</FUNCTION>
<FUNCTION>current_char_conversion</FUNCTION>
<!-- Logic and control -->
<SEQ TYPE="FUNCTION">\+</SEQ>
<FUNCTION>once</FUNCTION>
<FUNCTION>repeat</FUNCTION>
<!-- Atomic term processing -->
<FUNCTION>atom_length</FUNCTION>
<FUNCTION>atom_concat</FUNCTION>
<FUNCTION>sub_atom</FUNCTION>
<FUNCTION>atom_chars</FUNCTION>
<FUNCTION>atom_codes</FUNCTION>
<FUNCTION>char_code</FUNCTION>
<FUNCTION>number_chars</FUNCTION>
<FUNCTION>number_codes</FUNCTION>
<!-- Implementation defined hooks functions -->
<FUNCTION>set_prolog_flag</FUNCTION>
<FUNCTION>current_prolog_flag</FUNCTION>
<FUNCTION>halt</FUNCTION>
<!-- Evaluable functors -->
<SEQ TYPE="OPERATOR">+</SEQ>
<SEQ TYPE="OPERATOR">-</SEQ>
<SEQ TYPE="OPERATOR">*</SEQ>
<SEQ TYPE="OPERATOR">//</SEQ>
<SEQ TYPE="OPERATOR">/</SEQ>
<FUNCTION>rem</FUNCTION>
<FUNCTION>mod</FUNCTION>
<FUNCTION>abs</FUNCTION>
<FUNCTION>sign</FUNCTION>
<FUNCTION>float_integer_part</FUNCTION>
<FUNCTION>float_fractional_part</FUNCTION>
<FUNCTION>float</FUNCTION>
<FUNCTION>floor</FUNCTION>
<FUNCTION>truncate</FUNCTION>
<FUNCTION>round</FUNCTION>
<FUNCTION>ceiling</FUNCTION>
<!-- Other arithemtic functors -->
<SEQ TYPE="OPERATOR">**</SEQ>
<FUNCTION>sin</FUNCTION>
<FUNCTION>cos</FUNCTION>
<FUNCTION>atan</FUNCTION>
<FUNCTION>exp</FUNCTION>
<FUNCTION>log</FUNCTION>
<FUNCTION>sqrt</FUNCTION>
<!-- Bitwise functors -->
<SEQ TYPE="OPERATOR">&gt;&gt;</SEQ>
<SEQ TYPE="OPERATOR">&lt;&lt;</SEQ>
<SEQ TYPE="OPERATOR">/\</SEQ>
<SEQ TYPE="OPERATOR">\/</SEQ>
<SEQ TYPE="OPERATOR">\</SEQ>
<SEQ TYPE="OPERATOR">.</SEQ>
</KEYWORDS>
</RULES>
<RULES SET="ENTITY_RELATIONS" IGNORE_CASE="FALSE">
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_NAMES">
<BEGIN>instantiates(</BEGIN>
<END>)</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_NAMES">
<BEGIN>specializes(</BEGIN>
<END>)</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_NAMES">
<BEGIN>extends(</BEGIN>
<END>)</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_NAMES">
<BEGIN>imports(</BEGIN>
<END>)</END>
</SPAN>
<SPAN TYPE="FUNCTION" NO_LINE_BREAK="FALSE" DELEGATE="ENTITY_NAMES">
<BEGIN>implements(</BEGIN>
<END>)</END>
</SPAN>
</RULES>
<RULES SET="ENTITY_NAMES" IGNORE_CASE="FALSE">
</RULES>
<RULES SET="DIRECTIVE_CONTENTS" IGNORE_CASE="FALSE">
</RULES>
<RULES SET="PROLOG" IGNORE_CASE="FALSE">
</RULES>
</MODE>