english
version "1.0"
identify "%Z%%M% %I% %E%"
#: Copyright (c) 1993-2005 by Wayne C. Gramlich.
#, All rights reserved.
module address
#: This module implements the address base type for STIPPLE:
define address
external
define address_data
record
buffer string
initialized logical
hyphen character
lower_b character
lower_c character
lower_d character
lower_digits string
lower_h character
lower_l character
lower_o character
lower_p character
lower_s character
lower_w character
lower_x character
percent character
space character
upper_digits string
upper_h character
upper_o character
upper_x character
zero_offset unsigned
generate allocate, erase, print
object one@address
object zero@address
procedure add@address
takes
left address
right address
returns address
external address__add
procedure and@address
takes
left address
right address
returns address
external address__and
procedure character_convert@address
takes
address address
returns character
external address__character_convert
procedure copy@address
takes
arg address
returns address
external address__copy
procedure divide@address
takes
left address
right address
returns address
external address__divide
procedure equal@address
takes
left address
right address
returns logical
external address__equal
procedure format@address
takes
address address
out_stream out_stream
format string
offset unsigned
returns_nothing
#: This routine will output {address
} to {out_stream
} using the formatting
#, characters in {format
} starting at {offset
} until a terminating "%" is
#, encountered. See the {format
} module find out more about formatted
#, output.
#,
#, The accepted formats are:
#, b Output a binary number.
#, c Center the number.
#, d Output a decimal number.
#, H Output an upper-case hexadecimal number preceeded by "0X".
#, h Output a lower-case hexadecimal number preceeded by "0x".
#, l Left justify the number.
#, O Output an octal number with a preceeding zero.
#, o Output an octal number.
#, p<pad> Set padding character to <pad>.
#, s<sep> Separate every third digit with <sep>.
#, w<width> Output a minimim of <width> characters.
#, X Output as an upper-case hexadecimal number.
#, x Output as a lower-case hexadecimal number.
procedure greater_than@address
takes
left address
right address
returns logical
external address__greater_than
procedure hash@address
takes
arg address
returns address
external address__hash
procedure input@address
takes
input in_stream
returns address
procedure left_shift@address
takes
left address
right address
returns address
external address__left_shift
procedure less_than@address
takes
left address
right address
returns logical
external address__less_than
procedure minus@address
takes
arg address
returns address
external address__minus
procedure multiply@address
takes
left address
right address
returns address
external address__multiply
procedure not@address
takes
arg address
returns address
external address__not
procedure output@address
takes
arg address
output out_stream
returns_nothing
procedure or@address
takes
left address
right address
returns address
external address__or
procedure parse@address
takes
input in_stream
returns address
procedure print@address
takes
address address
out_stream out_stream
returns_nothing
#: This procedure will print {address
} as a decimal number to
#, {out_stream
}.
procedure put@address
takes
address address
out_stream out_stream
returns_nothing
procedure power@address
takes
left address
right address
returns address
external address__power
procedure remainder@address
takes
left address
right address
returns address
external address__remainder
procedure right_shift@address
takes
left address
right address
returns address
external address__right_shift
procedure subtract@address
takes
left address
right address
returns address
external address__subtract
procedure unsigned_convert@address
takes
arg address
returns unsigned
external unsigned__address_convert
procedure xor@address
takes
left address
right address
returns address
external address__xor