.. index:: reader
.. _reader/0:

.. rst-class:: right

**object**

``reader``
==========

Predicates for reading text file and text stream contents to lists of terms, characters, or character codes and for reading binary file and binary stream contents to lists of bytes.

| **Author:** Paulo Moura
| **Version:** 2:0:0
| **Date:** 2021-03-09

| **Compilation flags:**
|    ``static, context_switching_calls``


| **Dependencies:**
|   (none)


| **Remarks:**
|    (none)

| **Inherited public predicates:**
|    (none)

.. contents::
   :local:
   :backlinks: top

Public predicates
-----------------

.. raw:: html

   <div id="file_to_codes/2"> </div>

.. index:: file_to_codes/2
.. _reader/0::file_to_codes/2:

``file_to_codes/2``
^^^^^^^^^^^^^^^^^^^

Reads a text file into a list of character codes.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_codes(File,Codes)``
| **Mode and number of proofs:**
|    ``file_to_codes(+atom,-list(character_code))`` - ``one``


------------

.. raw:: html

   <div id="file_to_codes/3"> </div>

.. index:: file_to_codes/3
.. _reader/0::file_to_codes/3:

``file_to_codes/3``
^^^^^^^^^^^^^^^^^^^

Reads a text file into a list of character codes. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_codes(File,Codes,Tail)``
| **Mode and number of proofs:**
|    ``file_to_codes(+atom,-list(character_code),@term)`` - ``one``


------------

.. raw:: html

   <div id="file_to_chars/2"> </div>

.. index:: file_to_chars/2
.. _reader/0::file_to_chars/2:

``file_to_chars/2``
^^^^^^^^^^^^^^^^^^^

Reads a text file into a list of characters.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_chars(File,Chars)``
| **Mode and number of proofs:**
|    ``file_to_chars(+atom,-list(character))`` - ``one``


------------

.. raw:: html

   <div id="file_to_chars/3"> </div>

.. index:: file_to_chars/3
.. _reader/0::file_to_chars/3:

``file_to_chars/3``
^^^^^^^^^^^^^^^^^^^

Reads a text file into a list of characters. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_chars(File,Chars,Tail)``
| **Mode and number of proofs:**
|    ``file_to_chars(+atom,-list(character),@term)`` - ``one``


------------

.. raw:: html

   <div id="file_to_terms/2"> </div>

.. index:: file_to_terms/2
.. _reader/0::file_to_terms/2:

``file_to_terms/2``
^^^^^^^^^^^^^^^^^^^

Reads a text file into a list of terms.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_terms(File,Terms)``
| **Mode and number of proofs:**
|    ``file_to_terms(+atom,-list(term))`` - ``one``


------------

.. raw:: html

   <div id="file_to_terms/3"> </div>

.. index:: file_to_terms/3
.. _reader/0::file_to_terms/3:

``file_to_terms/3``
^^^^^^^^^^^^^^^^^^^

Reads a text file into a list of terms. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_terms(File,Terms,Tail)``
| **Mode and number of proofs:**
|    ``file_to_terms(+atom,-list(term),@term)`` - ``one``


------------

.. raw:: html

   <div id="file_to_bytes/2"> </div>

.. index:: file_to_bytes/2
.. _reader/0::file_to_bytes/2:

``file_to_bytes/2``
^^^^^^^^^^^^^^^^^^^

Reads a binary file into a list of bytes.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_bytes(File,Bytes)``
| **Mode and number of proofs:**
|    ``file_to_bytes(+atom,-list(byte))`` - ``one``


------------

.. raw:: html

   <div id="file_to_bytes/3"> </div>

.. index:: file_to_bytes/3
.. _reader/0::file_to_bytes/3:

``file_to_bytes/3``
^^^^^^^^^^^^^^^^^^^

Reads a binary file into a list of bytes. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``file_to_bytes(File,Bytes,Tail)``
| **Mode and number of proofs:**
|    ``file_to_bytes(+atom,-list(byte),@term)`` - ``one``


------------

.. raw:: html

   <div id="stream_to_codes/2"> </div>

.. index:: stream_to_codes/2
.. _reader/0::stream_to_codes/2:

``stream_to_codes/2``
^^^^^^^^^^^^^^^^^^^^^

Reads a text stream into a list of character codes. Does not close the stream.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_codes(Stream,Codes)``
| **Mode and number of proofs:**
|    ``stream_to_codes(+stream_or_alias,-list(character_code))`` - ``one``


------------

.. raw:: html

   <div id="stream_to_codes/3"> </div>

.. index:: stream_to_codes/3
.. _reader/0::stream_to_codes/3:

``stream_to_codes/3``
^^^^^^^^^^^^^^^^^^^^^

Reads a text stream into a list of character codes. Does not close the stream. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_codes(Stream,Codes,Tail)``
| **Mode and number of proofs:**
|    ``stream_to_codes(+stream_or_alias,-list(character_code),@term)`` - ``one``


------------

.. raw:: html

   <div id="stream_to_chars/2"> </div>

.. index:: stream_to_chars/2
.. _reader/0::stream_to_chars/2:

``stream_to_chars/2``
^^^^^^^^^^^^^^^^^^^^^

Reads a text stream into a list of characters. Does not close the stream.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_chars(Stream,Chars)``
| **Mode and number of proofs:**
|    ``stream_to_chars(+stream_or_alias,-list(char))`` - ``one``


------------

.. raw:: html

   <div id="stream_to_chars/3"> </div>

.. index:: stream_to_chars/3
.. _reader/0::stream_to_chars/3:

``stream_to_chars/3``
^^^^^^^^^^^^^^^^^^^^^

Reads a text stream into a list of characters. Does not close the stream. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_chars(Stream,Chars,Tail)``
| **Mode and number of proofs:**
|    ``stream_to_chars(+stream_or_alias,-list(char),@term)`` - ``one``


------------

.. raw:: html

   <div id="stream_to_terms/2"> </div>

.. index:: stream_to_terms/2
.. _reader/0::stream_to_terms/2:

``stream_to_terms/2``
^^^^^^^^^^^^^^^^^^^^^

Reads a text stream into a list of terms. Does not close the stream.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_terms(Stream,Terms)``
| **Mode and number of proofs:**
|    ``stream_to_terms(+stream_or_alias,-list(term))`` - ``one``


------------

.. raw:: html

   <div id="stream_to_terms/3"> </div>

.. index:: stream_to_terms/3
.. _reader/0::stream_to_terms/3:

``stream_to_terms/3``
^^^^^^^^^^^^^^^^^^^^^

Reads a text stream into a list of terms. Does not close the stream. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_terms(Stream,Terms,Tail)``
| **Mode and number of proofs:**
|    ``stream_to_terms(+stream_or_alias,-list(term),@term)`` - ``one``


------------

.. raw:: html

   <div id="stream_to_bytes/2"> </div>

.. index:: stream_to_bytes/2
.. _reader/0::stream_to_bytes/2:

``stream_to_bytes/2``
^^^^^^^^^^^^^^^^^^^^^

Reads a binary stream into a list of bytes. Does not close the stream.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_bytes(Stream,Bytes)``
| **Mode and number of proofs:**
|    ``stream_to_bytes(+stream_or_alias,-list(byte))`` - ``one``


------------

.. raw:: html

   <div id="stream_to_bytes/3"> </div>

.. index:: stream_to_bytes/3
.. _reader/0::stream_to_bytes/3:

``stream_to_bytes/3``
^^^^^^^^^^^^^^^^^^^^^

Reads a binary stream into a list of bytes. Does not close the stream. The list is terminated by the given tail.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``stream_to_bytes(Stream,Bytes,Tail)``
| **Mode and number of proofs:**
|    ``stream_to_bytes(+stream_or_alias,-list(byte),@term)`` - ``one``


------------

.. raw:: html

   <div id="line_to_codes/2"> </div>

.. index:: line_to_codes/2
.. _reader/0::line_to_codes/2:

``line_to_codes/2``
^^^^^^^^^^^^^^^^^^^

Reads a line from a text stream into a list of codes. Discards the end-of-line codes. Unifies ``Codes`` with ``end_of_file`` at the end of the file.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``line_to_codes(Stream,Codes)``
| **Mode and number of proofs:**
|    ``line_to_codes(+stream_or_alias,-list(character_code))`` - ``zero_or_one``


------------

.. raw:: html

   <div id="line_to_codes/3"> </div>

.. index:: line_to_codes/3
.. _reader/0::line_to_codes/3:

``line_to_codes/3``
^^^^^^^^^^^^^^^^^^^

Reads a line from a text stream into a list of codes. Keeps the end-of-line marker normalized to the line feed control character. The list is terminated by the given tail, which is unified with the empty list at the end of the file.

| **Compilation flags:**
|    ``static``

| **Template:**
|    ``line_to_codes(Stream,Codes,Tail)``
| **Mode and number of proofs:**
|    ``line_to_codes(+stream_or_alias,-list(character_code),?term)`` - ``zero_or_one``


------------

Protected predicates
--------------------

(none)

Private predicates
------------------

(none)

Operators
---------

(none)

