; 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
|