THPDFContentSyntaxNode レコード
リンクされた子とレキシムスパンを備えた、トークン保存コンテンツストリーム構文木の 1 つのコンパクトなノードを表します
宣言
THPDFContentSyntaxNode= record
Kind: THPDFContentSyntaxNodeKind;
ParentIndex: Integer;
FirstChildIndex: Integer;
LastChildIndex: Integer;
NextSiblingIndex: Integer;
ChildCount: Integer;
FirstLexemeIndex: Integer;
LastLexemeIndex: Integer;
OperatorLexemeIndex: Integer;
StartOfs: Integer;
EndOfs: Integer;
end;
ユニット
HPDFContentStream
フィールド
| フィールド | 目的 |
|---|---|
Kind | ノード種別。csnkRoot、csnkOperation、csnkOperand、csnkArray、csnkDictionary、csnkProcedure、csnkInlineImage、csnkMalformed のいずれか |
ParentIndex | 親ノードのインデックス。親が設定されていない場合は -1 |
FirstChildIndex | 最初の子ノードのインデックス。子がない場合は -1 |
LastChildIndex | 最後の子ノードのインデックス |
NextSiblingIndex | 次の兄弟ノードのインデックス。子リストの終端では -1 |
ChildCount | 直接の子ノードの数 |
FirstLexemeIndex | レキシム配列の中でノードがカバーする最初のレキシム |
LastLexemeIndex | ノードがカバーする最後のレキシム |
OperatorLexemeIndex | 操作ノードのオペレータを保持するレキシム。他のノード種別では -1 |
StartOfs | ノードのソーススパンが始まるバイトオフセット |
EndOfs | ノードのソーススパンの直後のバイトオフセット |
使用上の注意
- 操作ノードは自分のオペランドを所有し、オペレータのレキシムは
OperatorLexemeIndexで別途特定します - コンテナノードはネストした配列、ディクショナリ、プロシージャを元の綴りのまま保持するため、編集はトークン保存のまま行えます
- 内部ノード配列を直接触らず、
THPDFContentStreamAST.GetNodeでノードを読み取ってください