<HTML> <HEAD> <!-- Created by texi2html 1.56k + clip patches and <A href="http://www.clip.dia.fi.upm.es/Software">lpdoc</A> from ciao.texi on 28 January 2007 --> <LINK rel="stylesheet" href="ciao.css" type="text/css"> <TITLE>The Ciao Prolog System - The Iso Byte Char module</TITLE> </HEAD> <BODY> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_40.html">previous</A>, <A HREF="ciao_42.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC213" HREF="ciao_toc.html#TOC213">The Iso Byte Char module</A></H1> <P> <A NAME="IDX2951"></A> <P> <STRONG>Author(s):</STRONG> The CLIP Group, Daniel Cabeza, Documentation written by Edison Mera, based on ISO Prolog standard. Minor mods by M. Hermenegildo.. <P> <STRONG>Version:</STRONG> 1.10#7 (2006/4/26, 19:22:13 CEST) <P> <STRONG>Version of last change:</STRONG> 1.9#217 (2003/12/21, 15:33:54 CET) <P> This module provides some basic predicates according to the ISO specification of byte and char manipulation. <UL> <LI><A HREF="ciao_41.html#SEC214">Usage and interface (iso_byte_char)</A> <LI><A HREF="ciao_41.html#SEC215">Documentation on exports (iso_byte_char)</A> </UL> <H2><A NAME="SEC214" HREF="ciao_toc.html#TOC214">Usage and interface (<CODE>iso_byte_char</CODE>)</A></H2> <div class="cartouche"> <UL> <LI><STRONG>Library usage:</STRONG> <CODE>:- use_module(library(iso_byte_char)).</CODE> <LI><STRONG>Exports:</STRONG> <UL> <LI><EM>Predicates:</EM> <A NAME="IDX2952"></A> <CODE>char_code/2</CODE>, <A NAME="IDX2953"></A> <CODE>atom_chars/2</CODE>, <A NAME="IDX2954"></A> <CODE>number_chars/2</CODE>, <A NAME="IDX2955"></A> <CODE>get_byte/1</CODE>, <A NAME="IDX2956"></A> <CODE>get_byte/2</CODE>, <A NAME="IDX2957"></A> <CODE>peek_byte/1</CODE>, <A NAME="IDX2958"></A> <CODE>peek_byte/2</CODE>, <A NAME="IDX2959"></A> <CODE>put_byte/1</CODE>, <A NAME="IDX2960"></A> <CODE>put_byte/2</CODE>, <A NAME="IDX2961"></A> <CODE>get_char/1</CODE>, <A NAME="IDX2962"></A> <CODE>get_char/2</CODE>, <A NAME="IDX2963"></A> <CODE>peek_char/1</CODE>, <A NAME="IDX2964"></A> <CODE>peek_char/2</CODE>, <A NAME="IDX2965"></A> <CODE>put_char/1</CODE>, <A NAME="IDX2966"></A> <CODE>put_char/2</CODE>. </UL> </UL> </div class="cartouche"> <H2><A NAME="SEC215" HREF="ciao_toc.html#TOC215">Documentation on exports (<CODE>iso_byte_char</CODE>)</A></H2> <P> <A NAME="IDX2967"></A> <A NAME="IDX2968"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>char_code/2:</B> <DD><A NAME="IDX2969"></A> <P> <CODE>char_code(Char, Code)</CODE> <P> Succeeds iff the character code of the one char atom <CODE>Char</CODE> is <CODE>Code</CODE>. </DL> <P> <A NAME="IDX2970"></A> <A NAME="IDX2971"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>atom_chars/2:</B> <DD><A NAME="IDX2972"></A> <P> <CODE>atom_chars(Atom, Chars)</CODE> <P> Succeeds iff <CODE>Chars</CODE> is a list whose elements are the one-char atoms whose names are the successive characters of the name of atom <CODE>Atom</CODE> </DL> <P> <A NAME="IDX2973"></A> <A NAME="IDX2974"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>number_chars/2:</B> <DD><A NAME="IDX2975"></A> <P> <CODE>number_chars(Number, Chars)</CODE> <P> Success iff <CODE>Chars</CODE> is a list whose elements are the one-char atoms corresponding to a character sequence of <CODE>Number</CODE> which could be output </DL> <P> <A NAME="IDX2976"></A> <A NAME="IDX2977"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>get_byte/1:</B> <DD><A NAME="IDX2978"></A> <P> <STRONG>Usage:</STRONG> <CODE>get_byte(?int)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Same as <A NAME="IDX2979"></A> <CODE>get_byte/2</CODE>, but use the current input. </UL> </DL> <P> <A NAME="IDX2980"></A> <A NAME="IDX2981"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>get_byte/2:</B> <DD><A NAME="IDX2982"></A> <P> <CODE>get_byte(Stream, Byte)</CODE> <P> Is true iff <CODE>Byte</CODE> unifies with the next byte to be input from the target <CODE>Stream</CODE>. </DL> <P> <A NAME="IDX2983"></A> <A NAME="IDX2984"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>peek_byte/1:</B> <DD><A NAME="IDX2985"></A> <P> <STRONG>Usage:</STRONG> <CODE>peek_byte(?int)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Same as <A NAME="IDX2986"></A> <CODE>peek_byte/2</CODE>, but use the current input. </UL> </DL> <P> <A NAME="IDX2987"></A> <A NAME="IDX2988"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>peek_byte/2:</B> <DD><A NAME="IDX2989"></A> <P> <CODE>peek_byte(Stream, Byte)</CODE> <P> Is true iff <CODE>Byte</CODE> unifies with the next byte to be input from the target <CODE>Stream</CODE>. </DL> <P> <A NAME="IDX2990"></A> <A NAME="IDX2991"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>put_byte/1:</B> <DD><A NAME="IDX2992"></A> <P> <STRONG>Usage:</STRONG> <CODE>put_byte(+int)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Same as <A NAME="IDX2993"></A> <CODE>put_byte/2</CODE>, but use the current input. </UL> </DL> <P> <A NAME="IDX2994"></A> <A NAME="IDX2995"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>put_byte/2:</B> <DD><A NAME="IDX2996"></A> <P> <CODE>put_byte(Stream, Byte)</CODE> <P> Is true. Procedurally, <A NAME="IDX2997"></A> <CODE>putbyte/2</CODE> is executed as follows: <P> a) Outputs the byte <CODE>Byte</CODE> to the target stream. <P> b) Changes the stream position of the target stream to take account of the byte which has been output. <P> c) The goal succeeds. </DL> <P> <A NAME="IDX2998"></A> <A NAME="IDX2999"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>get_char/1:</B> <DD><A NAME="IDX3000"></A> <P> <STRONG>Usage:</STRONG> <CODE>get_char(?atm)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Same as <A NAME="IDX3001"></A> <CODE>get_char/2</CODE>, but use the current input. </UL> </DL> <P> <A NAME="IDX3002"></A> <A NAME="IDX3003"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>get_char/2:</B> <DD><A NAME="IDX3004"></A> <P> <CODE>get_char(Stream, Char)</CODE> <P> Is true iif <CODE>Char</CODE> unifies with the next character to be input from the target <CODE>Stream</CODE>. </DL> <P> <A NAME="IDX3005"></A> <A NAME="IDX3006"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>peek_char/1:</B> <DD><A NAME="IDX3007"></A> <P> <STRONG>Usage:</STRONG> <CODE>peek_char(?atm)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Similar to <A NAME="IDX3008"></A> <CODE>peek_code/1</CODE>, but using char instead of code. </UL> </DL> <P> <A NAME="IDX3009"></A> <A NAME="IDX3010"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>peek_char/2:</B> <DD><A NAME="IDX3011"></A> <P> <STRONG>Usage:</STRONG> <CODE>peek_char(@stream, ?atm)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Similar to <A NAME="IDX3012"></A> <CODE>peek_code/2</CODE>, but using char instead of code. </UL> </DL> <P> <A NAME="IDX3013"></A> <A NAME="IDX3014"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>put_char/1:</B> <DD><A NAME="IDX3015"></A> <P> <STRONG>Usage:</STRONG> <CODE>put_char(+atm)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Similar to <A NAME="IDX3016"></A> <CODE>put_code/1</CODE>, but using char instead of code. </UL> </DL> <P> <A NAME="IDX3017"></A> <A NAME="IDX3018"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>put_char/2:</B> <DD><A NAME="IDX3019"></A> <P> <STRONG>Usage:</STRONG> <CODE>put_char(@stream, +atm)</CODE> <KBD> * ISO * </KBD> <UL> <LI><EM>Description:</EM> Similar to <A NAME="IDX3020"></A> <CODE>put_code/2</CODE>, but using char instead of code. </UL> </DL> <P><HR><P> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_40.html">previous</A>, <A HREF="ciao_42.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. </BODY> </HTML>