気になっていた問題を大方片付け,Cμ 文字列処理改良を再開。
客体表現への書き換えを終えたところで中断していたので,まずは s_T
の補助函数実装から始める。
s_T
の補助函数実装}{希哲16年6月4日の進捗時限}{中断していた}{客体表現への書き換え}{Cμ 文字列処理改良}(18)今後の Dex 設計方針についての検討で終了。これから越化参照が大活躍しそうだ。
まず,課題だった脚注記法の実装方針について検討している内に,越化参照が部区間通信に活用出来ることに気付いた。
部区毎に越化条件の変化などがあることから,各記法の解釈は部区個体に任せたい。しかし,脚注記法のように最上位部区との出与え共有が必要な記法もある。
このような場合,単純に考えれば指示体を通して部区個体間で変数を共有するということになるが,この種の記法が増えるたびに目的別の指示体を増やすのは設計として美しくない。汎用的な変数一つに集約するのも,効率性や厳密性の観点から難がある。
ここでふと,越化参照が使えることに気付いた。下位の部区個体で中途解釈した記法には目印となる越化参照を付け,上位の部区個体で変換処理を完了させる。
これに似た部区間通信の手法は Dex 初期実装から現 &_skp;
で使い続けているが,どちらかというと「邪道」だと感じていたため,意図的に応用範囲を広げなかった。紆余曲折を経て,これが一番単純性・効率性・保守性のバランスが良いということが分かった。
これで脚注記法や目次記法の実装は容易になった。他にも,輪郭情報の参照が必要な記法など,部区間通信が必要な場面全般で越化参照が活用出来るだろう。
[
}{}
}{{
}{`
}(39)rgx_T
の置換道手の引数順序変更}{Cμ 文字列処理改良}(14)Cμ 文字列処理改良,rgx_T
の置換道手の引数順序変更,客体表現への書き換え。
箇条書き記法の客体表現化も完了した。あとはルビ記法の客体表現化と,細かい正規表現を点検・修正すれば客体表現への書き換えは完了する。
ここで,箇条書き記法では輩符と数字・ピリオドの後にスペースを必須とするように厳密化した。
負数や駒手応付,小数点などが行頭にあると箇条書き記法として認識されてしまうという初歩的な問題があったが,個人的には,数値も含めて大抵の語を輪符で書いていたため気付くのが遅れた。
用者の指摘で気付いてからも,やや正規表現が複雑化していた部分で,中黒対応も含めると更なる複雑化を招く恐れがあり後回しにしていた。ここで上手く整理出来た。
rgx_T
の置換道手の引数順序変更}{Cμ 文字列処理改良}{進捗時限記録}(11)