Commit 2e5eb5c5 by Alexandre Petit-Bianco Committed by Alexandre Petit-Bianco

parse.y (constructor_block_end:): New rule, tagged <node>.

Mon May 17 19:20:24 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
        * parse.y (constructor_block_end:): New rule, tagged <node>.
        (constructor_body:): Use `constructor_block_end' instead of
        `block_end'.

From-SVN: r26978
parent 6efa1cc2
Mon May 17 19:20:24 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (constructor_block_end:): New rule, tagged <node>.
(constructor_body:): Use `constructor_block_end' instead of
`block_end'.
Mon May 17 18:01:40 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (statement_nsi:): Pop `for' statement block.
(java_complete_lhs): Labelled blocks containing no statement are
(java_complete_lhs): Labeled blocks containing no statement are
marked as completing normally.
Fri May 14 12:31:08 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -396,7 +396,7 @@ static tree current_static_block = NULL_TREE;
variable_initializers constructor_body
array_initializer
%type <node> class_body block_end
%type <node> class_body block_end constructor_block_end
%type <node> statement statement_without_trailing_substatement
labeled_statement if_then_statement label_decl
if_then_else_statement while_statement for_statement
......@@ -1001,19 +1001,23 @@ constructor_body:
/* Unlike regular method, we always need a complete (empty)
body so we can safely perform all the required code
addition (super invocation and field initialization) */
block_begin block_end
block_begin constructor_block_end
{
BLOCK_EXPR_BODY ($2) = empty_stmt_node;
$$ = $2;
}
| block_begin explicit_constructor_invocation block_end
| block_begin explicit_constructor_invocation constructor_block_end
{ $$ = $3; }
| block_begin block_statements block_end
| block_begin block_statements constructor_block_end
{ $$ = $3; }
| block_begin explicit_constructor_invocation block_statements block_end
| block_begin explicit_constructor_invocation block_statements constructor_block_end
{ $$ = $4; }
;
constructor_block_end:
block_end
| block_end SC_TK
/* Error recovery for that rule moved down expression_statement: rule. */
explicit_constructor_invocation:
this_or_super OP_TK CP_TK SC_TK
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment