THPDFContentSyntaxNode Record
Representa um nó compacto da árvore sintática de content stream que preserva tokens, com filhos ligados e lexeme spans
Declaração
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;
Unidade
HPDFContentStream
Campos
| Campo | Finalidade |
|---|---|
Kind | Classe do nó: csnkRoot, csnkOperation, csnkOperand, csnkArray, csnkDictionary, csnkProcedure, csnkInlineImage ou csnkMalformed |
ParentIndex | Índice do nó pai, -1 quando não há pai definido |
FirstChildIndex | Índice do primeiro nó filho, -1 quando o nó não tem filhos |
LastChildIndex | Índice do último nó filho |
NextSiblingIndex | Índice do próximo irmão, -1 no fim de uma lista de filhos |
ChildCount | Número de nós filhos diretos |
FirstLexemeIndex | Primeiro lexeme coberto pelo nó no array de lexemes |
LastLexemeIndex | Último lexeme coberto pelo nó |
OperatorLexemeIndex | Lexeme que contém o operador de um nó de operação, -1 para os demais tipos de nó |
StartOfs | Offset de byte onde o span de origem do nó começa |
EndOfs | Offset de byte logo após o span de origem do nó |
Notas de uso
- Nós de operação são donos dos operandos deles e identificam o lexeme do operador separadamente por meio de
OperatorLexemeIndex - Nós contêiner retêm arrays, dicionários e procedimentos aninhados sem normalizar a grafia original, então as edições continuam preservando tokens
- Leia os nós por meio de
THPDFContentStreamAST.GetNodeem vez de tocar o array interno de nós diretamente