fixing type checks
This commit is contained in:
@ -564,14 +564,14 @@ simple_statement:
|
||||
assignable ASSIGN expression
|
||||
{ printdebug("simple statement");
|
||||
TableNode* node;
|
||||
if((getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_FUNCTION_DECLARATION)||
|
||||
(getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_ARRAY)||
|
||||
(getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_RECORD)||
|
||||
(getAdInfoType(getTypeEntry(getTypeEntry((TableNode*)$1))) == TYPE_PRIMITIVE)){
|
||||
if((getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_FUNCTION_TYPE)||
|
||||
(getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_ARRAY_TYPE)||
|
||||
(getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_RECORD_TYPE)||
|
||||
(getAdInfoType((getTypeEntry((TableNode*)$1))) == TYPE_PRIMITIVE_TYPE)){
|
||||
|
||||
node = ((TableNode*)$1);
|
||||
} 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.");
|
||||
printf("%d, %d\n", @1.first_line, @1.first_column);
|
||||
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)) {
|
||||
|
||||
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();
|
||||
int t = -1;
|
||||
if(getAdInfoType(type) == TYPE_PRIMITIVE_TYPE){
|
||||
|
Reference in New Issue
Block a user