機能文字

機能文字

[1]SGML具象構文によって割当てられ、マークとして認知された上で SGML機能を果たすマーク文字データが許される文脈でマークとして認知されない場合は、データとして扱う (機能文字の記録開始 RS 及び記録終了 RE の場合のように、言語が特別の扱いを指示する場合を除く。)。 Function character。 (JISX4151‐1992 定義 (46))

機能文字に関する SGML 宣言の定義の例

装置独立の多符号具象構文のための機能マーク文字

[3] JIS X 4051‐1992 の参考6図14のものです。

FUNCTION
  RE              13  -- 0/13 CR --
  RS              10  -- 0/10 LF --
  SPACE           32  -- 2/0  SP --
  TAB   SPACECAHR  9  -- 0/9  TAB --
     -- 幾らなんでも SEPCHAR の間違いだよね? --
  ESC   FUNCHAR   27  -- 1/11 ESC --
  LS0   FUNCHAR   15  -- 0/15 LS0 / SI --
  SS2   FUNCHAR  142  -- 8/14 SS2 --
  SS3   FUNCHAR  143  -- 8/15 SS3 --

前提となっている符号拡張は、

[4] この前提だと LS0 は要らないと思うんだけどなぁ。あっても無害だけど。

なお、 LS1R, LS2R, LS3R がいずれも機能文字になってないのは、 単一の制御文字ではなく複数文字のエスケープシーケンスになってしまうからです。

ところで、これじゃあエスケープシーケンスの中間バイト終端バイト重要なSGML文字だった場合に誤認されちまいませんか? まさか終端バイトまでマーク読み飛ばしにするわけにもいかないし。。。(3/0〜7/14 を機能文字にするのはかなり勇気が要る。)

  • [5] >>4 参考6 3.1.1 ではそれを避けるためにエスケープシーケンス全体を短縮参照区切子にしてしまう方法を紹介しています。・・・って、使うエスケープシーケンスを全種類登録するんですか。。。