Fix a bug where bc was endlessly trying to execute code
diff --git a/src/bc/vm.c b/src/bc/vm.c
index 8c94650..0c82dd9 100644
--- a/src/bc/vm.c
+++ b/src/bc/vm.c
@@ -195,34 +195,30 @@
     goto read_err;
   }
 
-  do {
+  if (BC_PARSE_CAN_EXEC(&vm->parse)) {
 
-    if (BC_PARSE_CAN_EXEC(&vm->parse)) {
+    status = exec(&vm->program);
 
-      status = exec(&vm->program);
+    if (status) goto read_err;
 
-      if (status) goto read_err;
+    if (bc_interactive) {
 
-      if (bc_interactive) {
+      fflush(stdout);
 
-        fflush(stdout);
+      if (bc_signal) {
 
-        if (bc_signal) {
-
-          status = bc_vm_handleSignal(vm);
-
-          fprintf(stderr, bc_ready_prompt);
-          fflush(stderr);
-        }
-      }
-      else if (bc_signal) {
         status = bc_vm_handleSignal(vm);
-        goto read_err;
+
+        fprintf(stderr, bc_ready_prompt);
+        fflush(stderr);
       }
     }
-    else status = BC_STATUS_EXEC_FILE_NOT_EXECUTABLE;
-
-  } while (!status);
+    else if (bc_signal) {
+      status = bc_vm_handleSignal(vm);
+      goto read_err;
+    }
+  }
+  else status = BC_STATUS_EXEC_FILE_NOT_EXECUTABLE;
 
 read_err: