larpcc/sema.h
2026-10-03 02:14:26 +02:00

32 lines
499 B
C

#ifndef SEMA_H
#define SEMA_H
#include "ast.h"
typedef enum {
Sym_Declar,
} SymTy;
typedef struct {
SymTy ty;
} Sym;
typedef struct {
int _;
} LabelSym;
typedef struct Sema Sema;
Sema* sema_new(void);
void sema_free(Sema* s);
void sema_scope_enter(Sema* s);
void sema_scope_leave(Sema* s);
void sema_function_enter(Sema* s, AstDeclar* declar);
void sema_function_leave(Sema* s);
void sema_visit_stmt(Sema* s, AstStmt* stmt);
void sema_visit_expr(Sema* s, AstExpr* expr);
#endif