Hello! I am Homenique Vieira
「 Computer Science undergraduate at 🏦 Pontifical Catholic University of Minas Gerais 」
License: MIT License
「 Computer Science undergraduate at 🏦 Pontifical Catholic University of Minas Gerais 」
Necessário consertar dentro da geração de código
Semantico deve Barra Escrita de Boolean
Atribuições ao tipo lógicos devem ser corrijas
Comentários, espaços em branco e quebras de linha deverão ser considerados delimitadores e desprezados. O token reconhecido deverá ser representado por um registro único de escopo global contendo campo para o número do token, lexema, endereço de inserção na tabela (somente para identificadores e palavras reservadas), tipo e tamanho em bytes (somente para o token constante). Observe que o registro léxico é diferente do registro da tabela de símbolos.
A diferenciação entre identificador e palavra reservada é feita através de uma pesquisa na tabela de símbolos. Se um identificador não existir na tabela, deverá ser inserido. Para a construção dos lexemas, utilize um autômato de estados finitos
determinístico com rotinas associadas às suas transições. Erros na análise léxica devem ser reportados através de mensagens. O processo de compilação se encerra após um erro léxico.
As mensagens de erro devem ter os seguintes formatos, onde nn é o número da linha onde o erro foi detectado e lex é o
lexema encontrado:
nn:caractere invalido.
nn:lexema nao identificado [lex].
nn:fim de arquivo nao esperado.
A contagem das linhas começa com valor 1. No caso de sucesso na compilação a
mensagem será:
nn linhas compiladas.
onde nn é o número de linhas do programa. Cada quebra de linha conta uma linha,
mesmo dentro de comentários. A linha finalizada pelo fim do arquivo também é
contabilizada.
Até que o analisador sintático seja feito, o programa principal do compilador deve chamar repetidamente o analisador léxico, listando na tela os registros léxicos encontrados, até o fim do arquivo-fonte. Este teste deverá ser desabilitado posteriormente.
Os operados
Comando de leitura: é da forma readln(id), onde id é um identificador de variável
numérica, caractere alfanumérico ou string. Caracteres e strings são lidos da mesma
maneira, sem que o usuário precise coloca-los entre aspas ou apóstrofos. Números
podem ter sinal negativo
problema com a atribuição de char no final
Dependendo do tamanho da Strings não está sendo todo mostrado dentro do terminal
Produzir a lógica de atribuição de vector
Defina o alfabeto para a linguagem e numere os tokens. Crie também um token
“fim_de_arquivo” que facilitará as análises léxica e sintática. Ele deve ser
identificado quando a leitura atingir o fim do arquivo.
Implemente o tipo abstrato de dados “tabela de símbolos”, onde serão armazenados
apenas as palavras reservadas e os identificadores. A tabela deverá armazenar
registros que conterão, a princípio, campos para o número do token (byte) e o
lexema (arranjo de caracteres) da palavra ou identificador. Devem ser
implementadas duas funções:
Uma função que pesquisa a tabela em busca de um lexema e retorna o endereço do
registro correspondente, caso exista, ou NULL se este não estiver na tabela.
Para maior eficiência, utilize uma função de espalhamento para pesquisar e inserir itens. Antes do início da análise léxica, o compilador deve inserir todas as palavras reservadas na tabela de símbolos.
Uma boa Técnica que podemos usar é a Bloom Filters (devemos olhar se é viável implementar)
https://www.youtube.com/watch?v=kfFacplFY4Y
Tem que ser consertado dentro da atribuição do assembly
Qualquer variável declarada após a String está com problemas
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.