Go to the first, previous, next, last section, table of contents.


String processing

Author(s): Daniel Cabeza.

Version: 0.4#5 (1998/2/24)

This module provides predicates for doing input/output with strings (character code lists) and for including in grammars defining strings.

Usage and interface (strings)

Documentation on exports (strings)

PREDICATE: get_line/2:

get_line(Stream, Line)

Reads from Stream a line of text and unifies Line with it. The end of the line can have UNIX [10] or MS-DOS [13 10] termination, which is not included in Line. At EOF, the term end_of_file is returned.

Usage:

PREDICATE: get_line/1:

get_line(Line)

Behaves like current_input(S), get_line(S,Line).

Usage:

PREDICATE: write_string/2:

write_string(Stream, String)

Writes String onto Stream.

Usage:

PREDICATE: write_string/1:

write_string(String)

Behaves like current_input(S), write_string(S, String).

Usage:

PREDICATE: whitespace/2:

whitespace(String, Rest)

In a grammar rule, as whitespace/0, represents whitespace (a positive number of space (32), tab (9), newline (10) or return (13) characters). Thus, Rest is a proper suffix of String with one or more whitespace characters removed. An example of use would be:

   attrs([]) --> ""
   attrs([N|Ns]) -->
       whitespace,
       attr(N),
       attrs(Ns).

Usage:

PREDICATE: whitespace0/2:

whitespace0(String, Rest)

In a grammar rule, as whitespace0/0, represents possible whitespace (any number of space (32), tab (9), newline (10) or return (13) characters). Thus, Rest is String or a proper suffix of String with one or more whitespace characters removed. An example of use would be:

   assignment(N,V) -->
       variable_name(N), whitespace0, "=", whitespace0, value(V).

Usage:

PREDICATE: string/3:

string(String, Head, Tail)

In a grammar rule, as string/1, represents literally String. An example of use would be:

double(A) -->
        string(A),
        string(A).

Usage:

Documentation on internals (strings)

PROPERTY: line/1:

A property, defined as follows:


line(L) :-
        string(L).
line(end_of_file).


Go to the first, previous, next, last section, table of contents.