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).
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).
In a grammar rule, as string/1, represents literally String. An
example of use would be:
double(A) -->
string(A),
string(A).