From 18990de52b8166a8f5fb71271cf4c12d3c0f0a47 Mon Sep 17 00:00:00 2001 From: Joerg Brunsmann Date: Mon, 17 Jan 2000 22:54:30 +0000 Subject: re GNATS gcj/128 (weak error message when expecting final modifier) Mon Jan 17 11:58:17 2000 Joerg Brunsmann * parse.y (format_parameter:): Use final: rule instead of modifiers:. (final:): New rule. Joerg Brunsmann's contribution to fix the Java PR #128. From-SVN: r31477 --- gcc/java/parse.y | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'gcc/java/parse.y') diff --git a/gcc/java/parse.y b/gcc/java/parse.y index 8563508..b4d9d76 100644 --- a/gcc/java/parse.y +++ b/gcc/java/parse.y @@ -950,20 +950,29 @@ formal_parameter: { $$ = build_tree_list ($2, $1); } -| modifiers type variable_declarator_id /* Added, JDK1.1 final parms */ +| final type variable_declarator_id /* Added, JDK1.1 final parms */ { parse_jdk1_1_error ("final parameters"); $$ = build_tree_list ($3, $2); } | type error {yyerror ("Missing identifier"); RECOVER;} -| modifiers type error +| final type error { - SOURCE_FRONTEND_DEBUG (("Modifiers: %d", $1)); yyerror ("Missing identifier"); RECOVER; } ; +final: + modifiers + { + check_modifiers ("Illegal modifier `%s'. Only `final' was expected here", + $1, ACC_FINAL); + if ($1 != ACC_FINAL) + MODIFIER_WFL (FINAL_TK) = build_wfl_node (NULL_TREE); + } +; + throws: { $$ = NULL_TREE; } | THROWS_TK class_type_list -- cgit v1.1