allow return; for void returns ... remove string
This commit is contained in:
@@ -332,12 +332,16 @@ void CodeGenVisitor::visit(RandomIfStatement* e) {
|
||||
}
|
||||
|
||||
void CodeGenVisitor::visit(ReturnStatement* e) {
|
||||
e->getExpr()->accept(this);
|
||||
if (!value_) {
|
||||
throw "error evaluating expression";
|
||||
}
|
||||
if (e->getExpr() != 0) {
|
||||
e->getExpr()->accept(this);
|
||||
if (!value_) {
|
||||
throw "error evaluating expression";
|
||||
}
|
||||
|
||||
builder_->CreateRet(value_);
|
||||
builder_->CreateRet(value_);
|
||||
} else {
|
||||
builder_->CreateRetVoid();
|
||||
}
|
||||
}
|
||||
|
||||
void CodeGenVisitor::visit(Scope* e) {
|
||||
|
||||
@@ -47,7 +47,7 @@ int main() {
|
||||
rules.add("void", T_VOID);
|
||||
rules.add("rfor", T_RFOR);
|
||||
rules.add("rif", T_RIF);
|
||||
rules.add("string", T_STRING);
|
||||
//rules.add("string", T_STRING);
|
||||
|
||||
// special characters
|
||||
//rules.add("\"(\"", T_LPAREN);
|
||||
|
||||
Reference in New Issue
Block a user