Guidedog マニュアル 0.2.0
言語
このページの内容
Guidedog / ドキュメント 0.2.0

Guidedoc エンジン

Guidedoc は変換のコアで、呼び出し側の記憶領域を借用する。ソースを読み、意味木を作り、パスを実行し、出力を測ってバイト列を生成する。ファイルを開いたり公開したりしない。

CLI はプロジェクトホストを呼び、ホストは変換コアに固定した領域を渡す。
図 4 外部への作用はホストが担い、文書の意味は Guidedoc が担う。

境界

コア変換は割り当てを行わない。ノード列、テキスト、診断、出力の領域を呼び出し側が用意する。ホストは準備時に割り当ててもよく、第三者のコンパイラーには独自の規則がある。保証の範囲は変換境界であってプロセス全体ではない。

木構造

ノードは型付き ID を持つ。頻繁に使う列には種類と部分木の範囲を置き、それ以外の表に各種ノードのペイロードを置く。平坦な先行順表現なら、ヒープのポインター列をたどらず部分木全体を飛ばせる。

ノード \(i\) の排他的な部分木終端を \(e_i\) とする。部分木は \([i,e_i)\) を占める。葉では \(e_i=i+1\)。親は子孫の後で閉じる。区間の証明は アルゴリズムより先に不変条件 を参照。

API

コア API は明示的だ。領域の初期化、変換、結果の確認、リセットを行う。レジストリーはリーダー、パス、レンダラーの記述子を含む値で、実行時プラグイン探索やグローバル登録の副作用はない。少数の操作に絞り、他の Odin プログラムから使いやすくする。

所有権が要となる。ワークスペースのビューはリセットや再利用で無効になる。ホストが保持する結果は、セッション後も必要なテキストを所有しなければならない。正確なシグネチャは core を参照。独立した docs/api と同じ Odin ソースから生成する。マニュアル PDF は内部リンク付きで同じ本に収める。設計記録は docs/gds の GDS 0003。