|
Micro C Compiler - MCC
|
implementação do analisador léxico para a linguagem Micro C. More...
Functions | |
| static char | prox_char () |
| lê o próximo caractere do arquivo de entrada. | |
| static char | ignora_espacos_e_comentarios () |
| avança no arquivo até encontrar um caractere que não seja espaço ou comentário. | |
| int | inicializar_scanner (const char *nome_arquivo) |
| inicializa o analisador léxico com o arquivo de entrada. | |
| Token | proximo_token () |
| gera o próximo token do arquivo fonte. | |
Variables | |
| FILE * | arquivo_fonte |
| ponteiro para o arquivo de entrada do código fonte. | |
| int | linha_atual = 1 |
| contador da linha atual no arquivo fonte. | |
implementação do analisador léxico para a linguagem Micro C.
este arquivo contém as funções para ler o arquivo fonte, ignorar espaços e comentários, e gerar tokens a partir de um arquivo de entrada. o analisador léxico é a primeira etapa do compilador, convertendo o código em uma sequência de tokens.
|
static |
avança no arquivo até encontrar um caractere que não seja espaço ou comentário.
*
Esta função lida com os caracteres irrelevantes (whitespace) e os dois tipos de comentarios suportados (// e / * * /), utilizando lookahead para desambiguacao.
| int inicializar_scanner | ( | const char * | nome_arquivo | ) |
inicializa o analisador léxico com o arquivo de entrada.
*
| nome_arquivo | O caminho para o arquivo fonte a ser aberto. |
|
static |
lê o próximo caractere do arquivo de entrada.
*
| Token proximo_token | ( | ) |
gera o próximo token do arquivo fonte.
*
Esta é a funcao principal do analisador lexico. Ela utiliza a logica do automato finito deterministico (DFA) para reconhecer identificadores, numeros, literais (string/char) e operadores, lidando com lookahead.
Processa ASSIGN (=) ou EQ (==).
Processa NEQ (!=) ou NOT (!).
Processa LT (<) ou LEQ (<=).
Processa GT (>) ou GEQ (>=).
Processa MINUS (-) ou um número negativo (INTEGERCONST).
Processa operadores aritméticos simples (+, *, /, %).
Processa pontuações e delimitadores.
Caso default: Caractere inválido ou não reconhecido.
| FILE * arquivo_fonte |
ponteiro para o arquivo de entrada do código fonte.
arquivo de entrada do arquivo fonte.
ponteiro para o arquivo aberto que contém o código Micro C a ser analisado.
| int linha_atual = 1 |
contador da linha atual no arquivo fonte.
rastreia a linha atual para relatar erros com precisão, inicializado em 1.