From 0cbd59ec60de5faf89c24dc4e0635b4e6dacfa06 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 7 Jun 2005 08:22:42 +0000 Subject: * parse.y (parser_yylex): allow ';;' to be block terminator in place of 'end'. [highly experimental] * misc/ruby-mode.el (ruby-block-end-re): allow ';;' for a negative indent trigger. [highly experimental] * parse.y (parser_yylex): "respond_to?:foo" should be interpreted as "respond_to? :foo" at the command level. [ruby-talk:144303] * sprintf.c (rb_f_sprintf): raise exception on debug mode (-d), not verbose mode (-w/-w). [ruby-core:05123] * sprintf.c (rb_f_sprintf): warn always on verbose mode. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index b5e040944..0037f603d 100644 --- a/parse.y +++ b/parse.y @@ -6304,6 +6304,11 @@ parser_yylex(parser) return '^'; case ';': + if ((c = nextc()) == ';') { + lex_state = EXPR_END; + return kEND; + } + pushback(c); command_start = Qtrue; case ',': lex_state = EXPR_BEG; @@ -6700,7 +6705,7 @@ parser_yylex(parser) } } - if (lex_state == EXPR_BEG || + if ((lex_state == EXPR_BEG && !cmd_state) || lex_state == EXPR_ARG || lex_state == EXPR_CMDARG) { if (peek(':') && !(lex_p + 1 < lex_pend && lex_p[1] == ':')) { -- cgit