Quick throw
This commit is contained in:
@ -445,6 +445,7 @@ declaration:
|
|||||||
printdebug("ID/TYPE: %s, ID: %s", getName((TableNode*)$1), $3) ;
|
printdebug("ID/TYPE: %s, ID: %s", getName((TableNode*)$1), $3) ;
|
||||||
int d = getAdInfoType((TableNode*)$1);
|
int d = getAdInfoType((TableNode*)$1);
|
||||||
if(d == TYPE_UNDEFINED) {
|
if(d == TYPE_UNDEFINED) {
|
||||||
|
throw_error(ERROR_TYPE, "Undefined type passed in declaration list");
|
||||||
printdebug("Undefined type passed in declaration list");
|
printdebug("Undefined type passed in declaration list");
|
||||||
CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1));
|
CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1));
|
||||||
}
|
}
|
||||||
@ -468,7 +469,7 @@ declaration:
|
|||||||
d = TYPE_PRIMITIVE;
|
d = TYPE_PRIMITIVE;
|
||||||
CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1));
|
CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1));
|
||||||
}else {
|
}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));
|
CreateEntry(cur,d,(TableNode*)$1,$3,getAdInfo((TableNode*)$1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -841,6 +842,9 @@ assignable:
|
|||||||
ID
|
ID
|
||||||
{
|
{
|
||||||
TableNode* pass = look_up(cur,$1);
|
TableNode* pass = look_up(cur,$1);
|
||||||
|
if(pass == undefined){
|
||||||
|
throw_error(ERROR_TYPE, "Undefined variable %s", $1);
|
||||||
|
}
|
||||||
$$ = pass;
|
$$ = pass;
|
||||||
printdebug("[ASSIGNABLE - RULE 1] assignable = type: %s | ID = %s", getType(pass), getName(pass));
|
printdebug("[ASSIGNABLE - RULE 1] assignable = type: %s | ID = %s", getType(pass), getName(pass));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user