summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-19 22:20:16 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-19 22:20:16 +0900
commitd0a7b08303606431c0ca27ee1acaae0451e6223f (patch)
tree1a483edb4af80d115a9a49f0bc6134d8b6a51e2d
parentd10aec8aa9a7bd0751e0219fbb1f188c0a4c79eb (diff)
downloadmruby-d0a7b08303606431c0ca27ee1acaae0451e6223f.tar.gz
mruby-d0a7b08303606431c0ca27ee1acaae0451e6223f.zip
mirb code termination policy changed
-rw-r--r--tools/mirb/mirb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/mirb/mirb.c b/tools/mirb/mirb.c
index 7aa05800c..a5285df0f 100644
--- a/tools/mirb/mirb.c
+++ b/tools/mirb/mirb.c
@@ -42,6 +42,7 @@ is_code_block_open(struct mrb_parser_state *parser)
else if (strcmp(message, "syntax error, unexpected tREGEXP_BEG") == 0) {
code_block_open = TRUE;
}
+ return code_block_open;
}
switch (parser->lstate) {
@@ -50,7 +51,8 @@ is_code_block_open(struct mrb_parser_state *parser)
case EXPR_BEG:
/* an expression was just started, */
- /* or right after the expresion terminated */
+ /* we can't end it like this */
+ code_block_open = TRUE;
break;
case EXPR_DOT:
/* a message dot was the last token, */
@@ -175,13 +177,13 @@ main(void)
}
else {
if (code_block_open) {
+ strcat(ruby_code, "\n");
strcat(ruby_code, last_code_line);
}
else {
memset(ruby_code, 0, sizeof(*ruby_code));
strcat(ruby_code, last_code_line);
}
- strcat(ruby_code, "\n");
/* parse code */
parser->s = ruby_code;