EquelleType type() const { // Either erpr_ must be an Array, or, if not, // we must be a (Collection Of) Scalar, // since expr_ must be a (Collection Of) Vector. EquelleType t = expr_->type(); if (t.isArray()) { t.setArraySize(NotAnArray); return t; } else { assert(t.basicType() == Vector); t.setBasicType(Scalar); return t; } }
TypeNode* handleArrayType(const int array_size, TypeNode* type_expr) { ArrayTypeNode* tn = new ArrayTypeNode(type_expr, array_size); tn->setLocation(FileLocation(yylineno)); return tn; #if 0 EquelleType et = type_expr->type(); if (et.isArray()) { yyerror("cannot create an Array of an Array."); return type_expr; } else { et.setArraySize(array_size); TypeNode* tn = new TypeNode(et); tn->setLocation(type_expr->location()); delete type_expr; return tn; } #endif }
EquelleType type() const { EquelleType bt = btype_->type(); bt.setArraySize(array_size_); return bt; }
EquelleType type() const { EquelleType t = expr_list_->arguments().front()->type(); t.setArraySize(expr_list_->arguments().size()); return t; }