秋文書

ver1系列は過去の遺物になりました。
日時 バージョン
2009/02/09 2.00

秋文書って?

型を持った半ツリー構成の文書でプログラムの設定ファイル等に使用します。 Windowsで使用するINIファイルよりは高機能を目指したためXML等の文書に比べ貧弱です。 以下が秋文書の特徴です。

利点

欠点

文書は一行を一つのデータとして扱います。 例えば文書内に
foo/bar\string
という一行があった場合、この一行分を一つのデータとします。 今回の場合では[foo/bar]をツリー、[string]を値、[\]を型情報、一行全体を「アドレス」と呼びます。 ツリーの要素は「/」で区切られます。 アドレス内には「ファイル」という概念が存在し、型情報と値を持つツリーはファイルを所持している、そうでない場合はファイルを所持していないと考えます。
[foo]はファイルを所持していませんが[foo/bar]はファイルを所持しています。

規格

文字コード

UTF-8のみ。 UTF-8の規格はともかくBOMの有無は処理系に影響しない。

今後の予定でも他の文字コードに対応させる予定なし。 対応は処理系で適当に。

改行
  • CR(U+000D)
  • LF(U+000A)
  • CR+LF

将来的には増やしたい。

ツリー区切り文字

/ (U+002F)

型情報文字
文字 コード
: U+003A 整数
* U+002A 実数
\ U+005C 文字列
? U+003F バイナリ
= U+003D TSV形式整数
@ U+0040 TSV形式実数
$ U+0024 TSV形式文字列
! U+0021 TSV形式バイナリ

今後増やすかも。

ツリー使用不可文字
  • ツリー区切り文字
  • 型情報文字
  • ;(U+003D)

「;」については下記参照。

アドレスコメント

あるアドレスに対応するコメントをアドレスコメントと呼びます。

アドレスコメントはアドレスに対してすぐ上の行にある「;」から始まる行を指します。 空行を挟まなければいくらでも記述することが可能です。

文書コメント

秋文書に対するコメントを文書コメントと呼びます。

文書コメントは実ファイルの先頭(BOMがある場合はそれを除いた先頭)から「;」で始まり一行の空行を含めます。

ツリー

ファイルへの道です。

ツリー区切り文字の無いツリーは有効なものです。 ただし型情報文字から始まるツリーはアドレスとして不正です。
ツリーの重複は不正です。 その場合処理系はどれか一つのツリーを残します。

ファイル

型情報に基づいたツリーに対する実物。

型情報の次に続く改行もしくはEOFまでの文字列です。 型情報に改行・EOFがすぐに続くものはアドレスとして不正です。
処理系はそのアドレスを破棄します。

ファイル

整数

小数点無しの数値を扱います。
記述書式は処理系依存です。

空ファイル、区切り文字が有効です。

実数

小数点有りの数値を扱います。
記述書式は処理系依存です。

空ファイル、区切り文字が有効です。

文字列

ちょっぴり書式付の文字列を扱います。
エスケープシーケンスは下記の通りです。

文字 前の文字列 変換後の文字
改行符 \r CR(U+000D)
改行符 \n LF(U+000A)
タブ文字 \t TAB(U+0009)
バックスラッシュ \\ \(U+005C)
空文字 \e (長さ0の文字)

空ファイル、区切り文字は無効です。

バイナリ

[0-9A-Z]の集合です。 処理系は少なくとも大文字はサポートするべきです。

空ファイル、区切り文字は有効です。

TSV形式

TSV形式の型であればファイル各要素間のTAB(U+0009)で区分けされたファイルです。 連続するTABは不正です。

空ファイル、区切り文字は型に依存します。

空ファイル

アドレスとしては有効なツリーをとりあえず作る場合に使用します。

基本的に「*(U+002A)」を使用します。 文字列型の場合は「\e」を代用します。
連続する*や区切り文字のある空ファイルは不正です。

区切り文字

ファイルを記述しやすいようにするために使用が許可されている文字です。
「_(U+005F)」と「 (U+0020)」が使用可能です。

使用の可不可は型に依存します。