\section{\module{curses.ascii} ---
         ASCII 文字に関するユーティリティ}

\declaremodule{standard}{curses.ascii}
\modulesynopsis{\ASCII\ 文字に関する定数および集合帰属関数。}
\moduleauthor{Eric S. Raymond}{esr@thyrsus.com}
\sectionauthor{Eric S. Raymond}{esr@thyrsus.com}

\versionadded{1.6}

\module{curses.ascii} モジュールでは、 \ASCII{} 文字を指す
名前定数と、様々な \ASCII{} 文字区分についてある文字が帰属するか
どうかを調べる関数を提供します。
このモジュールで提供されている定数は以下の制御文字の名前です:

\begin{tableii}{l|l}{constant}{Name}{Meaning}
  \lineii{NUL}{空}
  \lineii{SOH}{ヘディング開始、コンソール割り込み}
  \lineii{STX}{テキスト開始}
  \lineii{ETX}{テキスト終了}
  \lineii{EOT}{テキスト伝送終了}
  \lineii{ENQ}{問い合わせ、\constant{ACK} フロー制御時に使用}
  \lineii{ACK}{肯定応答}
  \lineii{BEL}{ベル}
  \lineii{BS}{一文字後退}
  \lineii{TAB}{タブ}
  \lineii{HT}{\constant{TAB} の別名: ``水平タブ''}
  \lineii{LF}{改行}
  \lineii{NL}{\constant{LF} の別名: ``改行''}
  \lineii{VT}{垂直タブ}
  \lineii{FF}{改頁}
  \lineii{CR}{復帰}
  \lineii{SO}{シフトアウト、他の文字セットの開始}
  \lineii{SI}{シフトイン、標準の文字セットに復帰}
  \lineii{DLE}{データリンクでのエスケープ}
  \lineii{DC1}{装置制御 1、フロー制御のための XON}
  \lineii{DC2}{装置制御 2、ブロックモードフロー制御}
  \lineii{DC3}{装置制御 3、フロー制御のための XOFF}
  \lineii{DC4}{装置制御 4}
  \lineii{NAK}{否定応答}
  \lineii{SYN}{同期信号}
  \lineii{ETB}{ブロック転送終了}
  \lineii{CAN}{キャンセル}
  \lineii{EM}{媒体終端}
  \lineii{SUB}{代入文字}
  \lineii{ESC}{エスケープ文字}
  \lineii{FS}{ファイル区切り文字}
  \lineii{GS}{グループ区切り文字}
  \lineii{RS}{レコード区切り文字、ブロックモード終了子}
  \lineii{US}{単位区切り文字}
  \lineii{SP}{空白文字}
  \lineii{DEL}{削除}
\end{tableii}

これらの大部分は、最近は実際に定数の意味通りに使われることがほとんど
ないので注意してください。これらのニーモニック符号はデジタル計算機
より前のテレプリンタにおける慣習から付けられたものです。

このモジュールでは、標準 C ライブラリの関数を雛型とする以下の関数を
サポートしています:

\begin{funcdesc}{isalnum}{c}
\ASCII{} 英数文字かどうかを調べます; 
\samp{isalpha(\var{c}) or isdigit(\var{c})} と等価です。
\end{funcdesc}

\begin{funcdesc}{isalpha}{c}
\ASCII{} アルファベット文字かどうかを調べます; 
\samp{isupper(\var{c}) or islower(\var{c})} と等価です。
\end{funcdesc}

\begin{funcdesc}{isascii}{c}
文字が 7 ビット \ASCII{} 文字に合致するかどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{isblank}{c}
\ASCII{} 余白文字かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{iscntrl}{c}
\ASCII{} 制御文字 (0x00 から 0x1f の範囲) かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{isdigit}{c}
\ASCII{} 10 進数字、すなわち \character{0} から \character{9} までの
文字かどうかを調べます。
\samp{\var{c} in string.digits} と等価です。
\end{funcdesc}

\begin{funcdesc}{isgraph}{c}
空白以外の \ASCII{} 印字可能文字かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{islower}{c}
\ASCII{} 小文字かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{isprint}{c}
空白文字を含め、 \ASCII{} 印字可能文字かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{ispunct}{c}
空白または英数字以外の \ASCII{} 印字可能文字かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{isspace}{c}
\ASCII{} 余白文字、すなわち空白、改行、復帰、改頁、水平タブ、
垂直タブかどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{isupper}{c}
\ASCII{} 大文字かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{isxdigit}{c}
\ASCII{} 16 進数字かどうかを調べます。
\samp{\var{c} in string.hexdigits} と等価です。
\end{funcdesc}

\begin{funcdesc}{isctrl}{c}
\ASCII{} 制御文字 (0 から 31 までの値) かどうかを調べます。
\end{funcdesc}

\begin{funcdesc}{ismeta}{c}
非 \ASCII{} 文字 (0x80 またはそれ以上の値) かどうかを調べます。
\end{funcdesc}

これらの関数は数字も文字列も使えます; 引数を文字列にした場合、
組み込み関数 \function{ord()} を使って変換されます。

これらの関数は全て、関数に渡した文字列の最初の文字から得られた
ビット値を調べるので注意してください; 関数はホスト計算機で使われている
文字列エンコーディングについて何ら関知しません。文字列エンコーディング
について関知する (そして国際化に関するプロパティを正しく扱う) 関数
については、 モジュール \refmodule{string} を参照してください。

以下の 2 つの関数は、引数として 1 文字の文字列または整数で表したバイト値の
どちらでもとり得ます; これらの関数は引数と同じ型で値を返します。

\begin{funcdesc}{ascii}{c}
ASCII 値を返します。\var{c} の下位 7 ビットに対応します。
\end{funcdesc}

\begin{funcdesc}{ctrl}{c}
与えた文字に対応する制御文字を返します (0x1f とビット単位で論理積
を取ります) 。
\end{funcdesc}

\begin{funcdesc}{alt}{c}
与えた文字に対応する 8 ビット文字を返します (0x80 とビット単位で論理和
を取ります) 。
\end{funcdesc}

以下の関数は 1 文字からなる文字列値または整数値を引数に取り、文字列
を返します。

\begin{funcdesc}{unctrl}{c}
\ASCII{} 文字 \var{c} の文字列表現を返します。もし \var{c} が印字可能
文字であれば、返される文字列は \var{c} そのものになります。
もし \var{c} が制御文字 (0x00-0x1f) であれば、
キャレット (\character{\^}) と、その後ろに続く \var{c} に対応した
大文字からなる文字列になります。\var{c} が \ASCII{} 削除文字 (0x7f)
であれば、文字列は \code{'\^{}?'} になります。\var{c} のメタビット
(0x80) がセットされていれば、メタビットは取り去られ、前述のルール
が適用され、\character{!} が前につけられます。
\end{funcdesc}

\begin{datadesc}{controlnames}
0 (NUL) から 0x1f (US) までの 32 の \ASCII{} 制御文字と、空白文字
\samp{SP} のニーモニック符号名からなる 33 要素の文字列によるシーケンスです。
\end{datadesc}
