Parsing
Parsing (Análise Sintática)
O processo de analisar uma string de texto ou sequência de dados de acordo com regras formais de gramática para extrair componentes estruturados, converter formato legível por humanos em uma representação que o software pode manipular.
Detalhe técnico
O parsing transforma entrada linear em estrutura hierárquica (geralmente uma árvore). JSON.parse() converte texto JSON em objetos JavaScript com complexidade O(n). O parsing de HTML lida com marcação inválida usando as regras de tratamento de erros da especificação HTML5 (os navegadores nunca rejeitam HTML). O parsing de XML é estrito — qualquer erro de boa formação aborta. Abordagens de parsing: recursive descent (escrito à mão, previsível), geradores de parsers (PEG, LALR — Bison/yacc), e combinadores de parsers (compõem funções pequenas). Parsers SAX/streaming processam entrada incrementalmente (O(1) de memória), enquanto parsers DOM constroem uma árvore completa em memória (O(n) de memória). O parsing seguro deve tratar entradas maliciosas: recursão profunda (estouro de pilha), entrada longa (esgotamento de memória) e codificações inválidas.
Exemplo
```javascript
// Parsing: file processing example
const file = document.getElementById('fileInput').files[0];
const reader = new FileReader();
reader.onload = (e) => {
const data = e.target.result;
console.log(`Loaded: ${file.name} (${file.size} bytes)`);
};
reader.readAsArrayBuffer(file);
```