Micro C Compiler - MCC
Loading...
Searching...
No Matches
scanner.h File Reference

definições do analisador léxico para a linguagem Micro c. More...

#include <stdio.h>
#include "tokens.h"

Functions

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
 arquivo de entrada do arquivo fonte.
 
int linha_atual
 contador da linha atual no arquivo fonte.
 

Detailed Description

definições do analisador léxico para a linguagem Micro c.

este arquivo declara as funções e variáveis globais usadas pelo analisador léxico, responsável por ler o arquivo fonte e gerar tokens para o compilador.

Function Documentation

◆ inicializar_scanner()

int inicializar_scanner ( const char *  nome_arquivo)

inicializa o analisador léxico com o arquivo de entrada.

abre o arquivo especificado e prepara o analisador para leitura.

Parameters
nome_arquivonome do arquivo a ser analisado.
Returns
0 em caso de sucesso, -1 se houver erro ao abrir o arquivo.

*

Parameters
nome_arquivoO caminho para o arquivo fonte a ser aberto.
Returns
0 em caso de sucesso, -1 em caso de falha ao abrir.

◆ proximo_token()

Token proximo_token ( )

gera o próximo token do arquivo fonte.

lê caracteres do arquivo, ignora espaços e comentários, e identifica o próximo token (ex.: identificadores, operadores, palavras reservadas).

Returns
estrutura token contendo tipo, lexema e linha do token identificado.

*

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.

Returns
A struct Token que representa o proximo elemento lexico (ou END_OF_FILE/UNDEF).

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.

Variable Documentation

◆ arquivo_fonte

FILE* arquivo_fonte
extern

arquivo de entrada do arquivo fonte.

ponteiro para o arquivo aberto que contém o código Micro c a ser analisado.

arquivo de entrada do arquivo fonte.

ponteiro para o arquivo aberto que contém o código Micro C a ser analisado.

◆ linha_atual

int linha_atual
extern

contador da linha atual no arquivo fonte.

rastreia a linha atual para relatar erros com precisão.

rastreia a linha atual para relatar erros com precisão, inicializado em 1.