[v=1]<私は a=1>[/v]ラムダ<です a=1>
[v=1<私は a=1>]ラムダ<です a=1>
<<<私は a=1>ラムダ v=1>spd=1.5><です a=1>
struct _inputstr {
_inputstr a;
tagtype t;
val v;
} inputstr;
1 <
2 <
3 <
4 私は
4 a=1
3 >
3 ラムダ
3 v=1
2 >
2 spd=1.5
1 >
1 <
2 です
2 a=1
1 >
" |<|>"がセパレータ
"<"を見つけたら階層+1
"<"を見つけたら階層-1
階層が1で終わらなかったらエラー
処理関数(再起呼び出し処理)
"<"を見つけたら再起呼び出し
">"をみつけたら文字列を返す。(文字列とタグはスタック(リストか))
<<<ワタシハ a=1>ラムダ voice=1>spd=1.5><デス a=1>
通常のタグでの表現だと、
ワタシハラムダデス
|<|ジツハ|<|ワタシハ|a=1|>|<|ラムダ|voice=1|>|spd=1.5|>|<|デス|a=1|>|
1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1
|<|<|ジツハ|<|ワタシハ|a=1|>|ラムダ|voice=1|>|spd=1.5|>|<|デス|a=1|>|
1 2 3 3 2 1 1 1
音節
>word> 音節
{
list s;
tagStrct *tag;
}
音節データはタグなし。tag=NULL
タグ付きのデータはtag!=NULLとなり、sに音節データが入る。
sに入るデータはタグデータ有りもタグデータなしも同様にリストアップされる。
|<
|ジツハ
|<|ワタシハ|a=1|>
|<|ラムダ|voice=1|>
|spd=1.5|>
|<|デス|a=1|>|