From bc343b851d04f68ef7554a2cca0bad63a32c2b7d Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 19 Mar 2016 05:46:20 +0000 Subject: SyntaxError message at iseq compile * iseq.c (rb_iseq_compile_with_option): make the parser in mild error. * load.c (rb_load_internal0): ditto. * parse.y (yycompile0): return the error message within the error to be raised. [Feature #11951] * parse.y (parser_compile_error): accumulate error messages in the error_buffer. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- iseq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'iseq.c') diff --git a/iseq.c b/iseq.c index 01e6d44add..7f187b84a1 100644 --- a/iseq.c +++ b/iseq.c @@ -627,11 +627,13 @@ rb_iseq_compile_with_option(VALUE src, VALUE file, VALUE absolute_path, VALUE li const INITIALIZED VALUE label = parent ? parent->body->location.label : rb_fstring_cstr(""); + VALUE parser = rb_parser_new(); + rb_parser_mild_error(parser); th->base_block = base_block; TH_PUSH_TAG(th); if ((state = EXEC_TAG()) == 0) { - NODE *node = (*parse)(rb_parser_new(), file, src, ln); + NODE *node = (*parse)(parser, file, src, ln); if (node) { /* TODO: check err */ iseq = rb_iseq_new_with_opt(node, label, file, absolute_path, line, parent, type, &option); -- cgit v1.2.3