Ada2012で追加される文字判定サブプログラム
http://www.ada-auth.org/standards/12aarm/html/AA-A-3-2.html
Is_Line_Terminator, Is_Mark, Is_Other_Format, Is_Punctuation_Connector, Is_Spaceが追加されます。
Unicodeカテゴリともちょっと違うようですし(ていうか素直にIs_XXXをUnicodeカテゴリの全種類分並べるだけではなぜダメだったのか)、下の方の説明を読んでもいまいちピンと来ないのですが、{AI05-0185-1}のリンクをたどるとこの正体が明らかになります。
The current version of the GNAT compiler has defined the following implementation-defined packages;
http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai05s/ai05-0185-1.txt?rev=1.7
まじか……。
文字コードに対するAdaCoreのナンセンスさ加減はcomp.lang.adaでもある程度共有された認識だと信じていたのですが。
ということで、a-zchuni.adsを読むとこれらのサブプログラムの正体がわかります。
サブプログラム | 対応するUnicodeカテゴリ |
Is_Line_Terminator | Zp(Paragraph_Separator), Zs(Space_Separator), 0a-0d(LF, VT, FF, CR) |
Is_Mark | Mn(Nonspacing_Mark), Mc(Spacing_Mark) *1 |
Is_Other(_Format) | Cf(Format) |
Is_Punctuation(_Connector) | Pc(Connector_Punctuation) *2 |
Is_Space | Zs(Space_Separator) |
名前ぐらいUnicodeカテゴリを正確に反映しろよ……っていうか私Unicode詳しくないんですが、MnとMcだけを判定したくてMeを除きたいような用途ってなんかあるんでしょうか?詳しい人がいましたら教えて下さい、お願いします。
流し読みですが、Is_Punctuation_ConnectorのほうはRandy大先生が_Connectorを追加させた様子。a-zchuni.adsのIs_Punctuationのままですと、P系カテゴリ全部含むと誤解しちゃいますもんね。とりあえずその程度には元のa-zchuni.adsは酷い。
で、Handlingのサブプログラムは、Maps.Constantsのほうに対応する集合が定義されてるはずなんですが、まだ追加されてないです。
http://www.ada-auth.org/standards/12aarm/html/AA-A-4-6.html
要するに他のベンダーはこんなの実装せずに無視しろってことですよねわかります。