Author(s): Daniel Cabeza, Mats Carlsson.
Version: 1.11#222 (2004/5/24, 13:8:7 CEST)
Version of last change: 1.11#70 (2003/12/19, 16:49:37 CET)
This module provides predicates for character input/output and for canonical term output. From the
ISO-Prolog predicates for character input/output, only the _code
versions are provided, the rest are given by
library(iso_byte_char)
, using these. Most predicates are provided in two versions: one that specifies the input or output stream as the first argument and a second which omits this argument and uses the current input or output stream.
io_basic
)io_basic
)
get_code(Stream, Code)
Reads from Stream
the next character and unifies Code
with its character code. At end of stream, unifies Code
with the integer -1.
Usage: * ISO *
Code
is an integer.
(basic_props:int/1
)
Stream
is an open stream.
(streams_basic:stream/1
)
Code
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
get_code(Code)
Behaves like current_input(S), get_code(S,Code)
.
Usage: * ISO *
Code
is an integer.
(basic_props:int/1
)
Code
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
get1_code(Stream, Code)
Reads from Stream
the next non-layout character (see
code_class/2
) and unifies Code
with its character code. At end of stream, unifies Code
with the integer -1.
Usage:
Code
is an integer.
(basic_props:int/1
)
Stream
is an open stream.
(streams_basic:stream/1
)
Code
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
get1_code(Code)
Behaves like current_input(S), get1_code(S,Code)
.
Usage:
Code
is an integer.
(basic_props:int/1
)
Code
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
peek_code(Stream, Code)
Unifies Code
with the character code of the next character of Stream
, leaving the stream position unaltered. At end of stream, unifies Code
with the integer -1.
Usage: * ISO *
Code
is an integer.
(basic_props:int/1
)
Stream
is an open stream.
(streams_basic:stream/1
)
Code
is an integer.
(basic_props:int/1
)
peek_code(Code)
Behaves like current_input(S), peek_code(S,Code)
.
Usage: * ISO *
Code
is an integer.
(basic_props:int/1
)
Code
is an integer.
(basic_props:int/1
)
skip_code(Stream, Code)
Skips just past the next character code Code
from Stream
.
Usage:
Stream
is an open stream.
(streams_basic:stream/1
)
Code
is an integer.
(basic_props:int/1
)
skip_code(Code)
Behaves like current_input(S), skip_code(S,Code)
.
Usage:
Code
is an integer.
(basic_props:int/1
)
skip_line(Stream)
Skips from Stream
the remaining input characters on the current line. If the end of the stream is reached, the stream will stay at its end. Portable among different operating systems.
Usage:
Stream
is an open stream.
(streams_basic:stream/1
)
skip_line(skip_line
Behaves like current_input(S), skip_line(S)
.
put_code(Stream, Code)
Outputs to Stream
the character corresponding to character code Code
.
Usage: * ISO *
Stream
is an open stream.
(streams_basic:stream/1
)
Code
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
put_code(Code)
Behaves like current_output(S), put_code(S,Code)
.
Usage: * ISO *
Code
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
nl(Stream)
Outputs a newline character to Stream
. Equivalent to put_code(Stream, 0'\n)
.
Usage: * ISO *
Stream
is an open stream.
(streams_basic:stream/1
)
basic_props:native/1
)
nl(nl
Behaves like current_output(S), nl(S)
.
Usage: * ISO *
basic_props:native/1
)
tab(Stream, Num)
Outputs Num
spaces to Stream
.
Usage:
Stream
is an open stream.
(streams_basic:stream/1
)
Num
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
tab(Num)
Behaves like current_output(S), tab(S,Num)
.
Usage:
Num
is an integer.
(basic_props:int/1
)
basic_props:native/1
)
code_class(Code, Class)
Unifies Class
with an integer corresponding to the lexical class of the character whose code is Code
, with the following correspondence:
0 - layout (includes space, newline, tab) 1 - small letter 2 - capital letter (including '_') 3 - digit 4 - graphic (includes #$&*+-./:<=>?@^\`~ ) 5 - punctuation (includes !;"'%(),[]{|} )
Note that in
ISO-Prolog the back quote `
is a punctuation character, whereas in Ciao it is a graphic character. Thus, if compatibility with
ISO-Prolog is desired, the programmer should not use this character in unquoted names.
Usage:
Class
is an integer.
(basic_props:int/1
)
Code
is an integer.
(basic_props:int/1
)
Class
is an integer.
(basic_props:int/1
)
getct(Code, Type)
Reads from the current input stream the next character, unifying Code
with its character code, and Type
with its lexical class. At end of stream, unifies both Code
and Type
with the integer -1. Equivalent to
get(Code), (Code = -1 -> Type = -1 ; code_class(Code,Type))
Usage:
Code
is an integer.
(basic_props:int/1
)
Type
is an integer.
(basic_props:int/1
)
Code
is an integer.
(basic_props:int/1
)
Type
is an integer.
(basic_props:int/1
)
getct1(Code, Type)
Reads from the current input stream the next non-layout character, unifying Code
with its character code, and Type
with its lexical class (which will be nonzero). At end of stream, unifies both Code
and Type
with the integer -1. Equivalent to
get1(Code), (Code = -1 -> Type = -1 ; code_class(Code,Type))
Usage:
Code
is an integer.
(basic_props:int/1
)
Type
is an integer.
(basic_props:int/1
)
Code
is an integer.
(basic_props:int/1
)
Type
is an integer.
(basic_props:int/1
)
display(Stream, Term)
Displays Term
onto Stream
. Lists are output using list notation, the other compound terms are output in functional notation. Similar to write_term(Stream, Term, [ignore_ops(ops)])
, except that curly bracketed notation is not used with {}/1
, and the write_strings
flag is not honored.
Usage:
Stream
is an open stream.
(streams_basic:stream/1
)
Term
is any term.
(basic_props:term/1
)
Term
is any term.
(basic_props:term/1
)
Term
is not further instantiated.
(basic_props:not_further_inst/2
)
This predicate is understood natively by CiaoPP.
(basic_props:native/1
)
display(Term)
Behaves like current_output(S), display(S,Term)
.
Usage:
Term
is any term.
(basic_props:term/1
)
Term
is any term.
(basic_props:term/1
)
Term
is not further instantiated.
(basic_props:not_further_inst/2
)
This predicate is understood natively by CiaoPP.
(basic_props:native/1
)
displayq(Stream, Term)
Similar to display(Stream, Term)
, but atoms and functors that can't be read back by
read_term/3
are quoted. Thus, similar to write_term(Stream, Term, [quoted(true), ignore_ops(ops)])
, with the same exceptions as
display/2
.
Usage:
Stream
is an open stream.
(streams_basic:stream/1
)
Term
is any term.
(basic_props:term/1
)
Term
is any term.
(basic_props:term/1
)
Term
is not further instantiated.
(basic_props:not_further_inst/2
)
displayq(Term)
Behaves like current_output(S), displayq(S,Term)
.
Usage:
Term
is any term.
(basic_props:term/1
)
Term
is any term.
(basic_props:term/1
)
Term
is not further instantiated.
(basic_props:not_further_inst/2
)
Go to the first, previous, next, last section, table of contents.