First commit

This commit is contained in:
mguinhos committed 2026-10-06 22:38:04 +00:00
commit dccc52bd7c
24 files changed
+1702

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
#ifndef MICROPASCAL_PARSER_AST_H
#define MICROPASCAL_PARSER_AST_H
typedef enum AstKind {
AST_PROGRAMA,
AST_SECAO_VAR,
AST_DECL_VAR,
AST_TIPO,
AST_BLOCO,
AST_LISTA_COMANDOS,
AST_ATRIBUICAO,
AST_ITERACAO,
AST_DECISAO,
AST_ESCRITA,
AST_EXPRESSAO_BINARIA,
AST_EXPRESSAO_UNARIA,
AST_EXPRESSAO_PARENTESES,
AST_EXPRESSAO_LITERAL,
AST_EXPRESSAO_IDENTIFICADOR
} AstKind;
typedef struct AstNo {
AstKind kind;
char* valor;
struct AstNo* esquerda;
struct AstNo* direita;
struct AstNo* terceiro;
struct AstNo* proximo;
} AstNo;
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef MICROPASCAL_PARSER_PARSER_H
#define MICROPASCAL_PARSER_PARSER_H
#include "micropascal-lexer/lexer.h"
#include "micropascal-parser/ast.h"
typedef struct Parser {
Lexer* lexer;
Token atual;
int houve_erro;
int total_erros;
int silencioso;
} Parser;
void parserInicializar(Parser* parser, Lexer* lexer);
void parserSilenciarErros(Parser* parser, int silenciar);
AstNo* parserAnalisarPrograma(Parser* parser);
void astLiberar(AstNo* no);
void astImprimir(const AstNo* no, int profundidade);
#endif