Záznam THPDFContentSyntaxNode
Reprezentuje jeden kompaktní uzel syntaktického stromu obsahového streamu zachovávajícího tokeny, s napojenými potomky a lexémovými rozsahy
Deklarace
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;
Jednotka
HPDFContentStream
Pole
| Pole | Účel |
|---|---|
Kind | Třída uzlu: csnkRoot, csnkOperation, csnkOperand, csnkArray, csnkDictionary, csnkProcedure, csnkInlineImage nebo csnkMalformed |
ParentIndex | Index rodičovského uzlu, -1 když není rodič nastaven |
FirstChildIndex | Index prvního potomka, -1 když uzel nemá žádné potomky |
LastChildIndex | Index posledního potomka |
NextSiblingIndex | Index dalšího sourozence, -1 na konci seznamu potomků |
ChildCount | Počet přímých potomků |
FirstLexemeIndex | První lexém pokrytý uzlem v poli lexémů |
LastLexemeIndex | Poslední lexém pokrytý uzlem |
OperatorLexemeIndex | Lexém nesoucí operátor uzlu operace, -1 u ostatních druhů uzlů |
StartOfs | Bajtový offset, kde začíná zdrojový rozsah uzlu |
EndOfs | Bajtový offset těsně za zdrojovým rozsahem uzlu |
Poznámky k použití
- Uzly operací vlastní své operandy a lexém operátora identifikují samostatně přes
OperatorLexemeIndex - Uzly kontejnerů ponechávají vnořená pole, slovníky i procedury v původním zápisu bez normalizace, takže úpravy zůstávají zachovávající tokeny
- Uzly čtěte přes
THPDFContentStreamAST.GetNode, místo abyste sahali přímo na interní pole uzlů