Parte 6 | Criando um Linguagem de Programação do Zero: Verificando e Gerando Expressões
Bom dia pessoal, mais um post da série criando uma linguagem de programação do zero está sendo postado hoje, a parte 6, e vim aqui falar sobre o que fizemos nessa parte e avisar pra quem estiver acompanhando e quiser ler o texto completo.
Neste post vamos terminar as alterações que iniciamos no post passado:
- typechecker:
- atualizar função
check_binary_expression
, agora as funções analizam os nodes da operação de maneira recursiva permitindo uma checkagem mais avançada. - atualizar função
check_unary_expression
, a mesma coisa se aplica nesta função, analizaremos o node da operação de maneira recursiva. - atulizar função principal
check_program
, corrigiremos um erro encontrado na verificação principal que tinha passado despercebido.
- atualizar função
- generator:
- atualizar a função
gen_binary_expression
, agora a função utiliza recursividade indireta (assim como a do typechecker) para gerar a string final. - atualizar a função
gen_unary_expression
, a mesma lógica foi aplicada aqui. - atualizar a função
gen_program
para reutilizar algumas funções do type checker
- atualizar a função
- gramática:
- alterar a regra
primary_expression
para exportar conseguir exportar um objeto do tipoparenthesized_expression
que usaremos no generator e no type checker
- alterar a regra
Estou aberto a receber feedback e sugestões, sintam-se à vontade para comentar suas opiniões.