From 74dc4f568fdae02f2493a5325f061bb8b8e3daa1 Mon Sep 17 00:00:00 2001 From: Scarlett Date: Fri, 25 Apr 2025 22:41:58 -0400 Subject: [PATCH] Quick throw --- src/grammar.y | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/grammar.y b/src/grammar.y index 2751080..cfcc476 100644 --- a/src/grammar.y +++ b/src/grammar.y @@ -445,6 +445,7 @@ declaration: printdebug("ID/TYPE: %s, ID: %s", getName((TableNode*)$1), $3) ; int d = getAdInfoType((TableNode*)$1); if(d == TYPE_UNDEFINED) { + throw_error(ERROR_TYPE, "Undefined type passed in declaration list"); printdebug("Undefined type passed in declaration list"); CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1)); } @@ -468,7 +469,7 @@ declaration: d = TYPE_PRIMITIVE; CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1)); }else { - printdebug("Invalid type passed in declaration list."); + throw_error(ERROR_TYPE, "%s is being defined with an undefined type", $3); CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1)); } } @@ -841,6 +842,9 @@ assignable: ID { TableNode* pass = look_up(cur,$1); + if(pass == undefined){ + throw_error(ERROR_TYPE, "Undefined variable %s", $1); + } $$ = pass; printdebug("[ASSIGNABLE - RULE 1] assignable = type: %s | ID = %s", getType(pass), getName(pass)); }