From 55247a3f12a9eee7ba3fd7ca6d8fcea7a82c20f3 Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sun, 11 Jan 2026 15:11:00 +0000 Subject: Added src/ folder. Now I will add the rest. --- src/analysis/typecheck.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/analysis/typecheck.h (limited to 'src/analysis/typecheck.h') diff --git a/src/analysis/typecheck.h b/src/analysis/typecheck.h new file mode 100644 index 0000000..fe51c4d --- /dev/null +++ b/src/analysis/typecheck.h @@ -0,0 +1,23 @@ +#ifndef TYPECHECK_H +#define TYPECHECK_H + +#include "ast.h" +#include "parser.h" + +// Type Checker Context +// Holds the state during the semantic analysis pass. +// Unlike the parser, this focuses on semantic validity (types, definitions). +typedef struct TypeChecker +{ + ParserContext *pctx; // Reference to global parser context (for lookups) + Scope *current_scope; // Current lexical scope + ASTNode *current_func; // Current function being checked (for return type checks) + int error_count; // Number of errors found + int warning_count; // Number of recommendations/warnings +} TypeChecker; + +// Main Entry Point +// Returns 0 on success (no errors), non-zero if errors occurred. +int check_program(ParserContext *ctx, ASTNode *root); + +#endif // TYPECHECK_H -- cgit v1.2.3