fixing type checks
This commit is contained in:
@ -564,14 +564,14 @@ simple_statement:
|
|||||||
assignable ASSIGN expression
|
assignable ASSIGN expression
|
||||||
{ printdebug("simple statement");
|
{ printdebug("simple statement");
|
||||||
TableNode* node;
|
TableNode* node;
|
||||||
if((getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_FUNCTION_DECLARATION)||
|
if((getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_FUNCTION_TYPE)||
|
||||||
(getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_ARRAY)||
|
(getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_ARRAY_TYPE)||
|
||||||
(getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_RECORD)||
|
(getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_RECORD_TYPE)||
|
||||||
(getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_PRIMITIVE)){
|
(getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_PRIMITIVE_TYPE)){
|
||||||
|
|
||||||
node = ((TableNode*)$1);
|
node = ((TableNode*)$1);
|
||||||
} else {
|
} else {
|
||||||
printf("%d\n",getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))));
|
printf("%d\n",getAdInfoType((getTypeEntry((TableNode*)$1))));
|
||||||
throw_error(ERROR_TYPE, "Invalid type passed to assignable.");
|
throw_error(ERROR_TYPE, "Invalid type passed to assignable.");
|
||||||
printf("%d, %d\n", @1.first_line, @1.first_column);
|
printf("%d, %d\n", @1.first_line, @1.first_column);
|
||||||
printf("%s\n", getType(getTypeEntry((TableNode*)$1)));
|
printf("%s\n", getType(getTypeEntry((TableNode*)$1)));
|
||||||
@ -998,7 +998,7 @@ assignable:
|
|||||||
}
|
}
|
||||||
else if(undefined != table_lookup(getRecList(table_lookup(getAncestor(cur), getName(getTypeEntry((TableNode*)$1)))), $3)) {
|
else if(undefined != table_lookup(getRecList(table_lookup(getAncestor(cur), getName(getTypeEntry((TableNode*)$1)))), $3)) {
|
||||||
|
|
||||||
TableNode* type = table_lookup(getRecList(table_lookup(getAncestor(cur), getName(getTypeEntry((TableNode*)$1)))), $3);
|
TableNode* type = getTypeEntry(table_lookup(getRecList(table_lookup(getAncestor(cur), getName(getTypeEntry((TableNode*)$1)))), $3));
|
||||||
char* temp = temp_var_gen();
|
char* temp = temp_var_gen();
|
||||||
int t = -1;
|
int t = -1;
|
||||||
if(getAdInfoType(type) == TYPE_PRIMITIVE_TYPE){
|
if(getAdInfoType(type) == TYPE_PRIMITIVE_TYPE){
|
||||||
|
Reference in New Issue
Block a user