Nesta tarefa, criaremos um pequeno parser de JSON. Ele receberá como entrada uma
string e deverá escrever na tela VALIDO\n
se tratar-se de uma string JSON
válida e INVALIDO\n
caso contrário.
Use os exemplos dos testes, e também fontes adicionais como esses exemplos e os tutoriais da w3schools para entender como os documentos JSON funcionam. Também, há uma explicação mais técnica, usando gramáticas livres de contexto, neste site.
O programa deverá ser escrito em Yacc/Bison e Lex/Flex.
Tente modelar um tipo de estrutura de cada vez. Qual é a estrutura mais interna que você vê? E depois dela? Como seria uma gramática para gerar recorrência? E assim por diante.
- Vá diretamente ao conjunto de testes para verificar como tratar casos limítrofes ou mal-definidos.
- Lembre-se de seguir as instruções de submissão.
- Se desejar, proponha novos casos de teste.