Fix a lot of parse errors at once

The problem was that the parser was not checking the last token properly
depending on the situation.
diff --git a/src/program.c b/src/program.c
index 7186abe..2e0966d 100644
--- a/src/program.c
+++ b/src/program.c
@@ -283,7 +283,8 @@
   bc_lex_file(&parse.lex, "<stdin>");
   if ((status = bc_lex_text(&parse.lex, buffer))) goto exec_err;
 
-  status = bc_parse_expr(&parse, &func->code, BC_PARSE_NOREAD);
+  status = bc_parse_expr(&parse, &func->code, BC_PARSE_NOREAD,
+                         bc_parse_next_cond);
   if (status) return status;
 
   if (parse.lex.token.type != BC_LEX_NEWLINE &&