diff options
Diffstat (limited to 'src/analysis/typecheck.h')
| -rw-r--r-- | src/analysis/typecheck.h | 23 |
1 files changed, 23 insertions, 0 deletions
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 |
