c-parse.in (methodtype): New production.

* c-parse.in (methodtype): New production.
	(methoddef, methodproto): Collapse separate '-' and '+'
	handlers into 1.

From-SVN: r42133
This commit is contained in:
Neil Booth 2001-05-16 06:34:34 +00:00 committed by Neil Booth
parent 4c521bad98
commit 0b1cdaf229
2 changed files with 23 additions and 46 deletions

View File

@ -1,3 +1,9 @@
2001-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
* c-parse.in (methodtype): New production.
(methoddef, methodproto): Collapse separate '-' and '+'
handlers into 1.
2001-05-16 Neil Booth <neil@cat.daikokuya.demon.co.uk>
* c-common.h (RID_FIRST_PQ): New.

View File

@ -2947,44 +2947,27 @@ ivar_declarator:
}
;
methoddef:
methodtype:
'+'
{
objc_pq_context = 1;
if (objc_implementation_context)
objc_inherit_code = CLASS_METHOD_DECL;
else
fatal_error ("method definition not in class context");
}
methoddecl
{
objc_pq_context = 0;
add_class_method (objc_implementation_context, $3);
start_method_def ($3);
objc_method_context = $3;
}
optarglist
{
continue_method_def ();
}
compstmt_or_error
{
finish_method_def ();
objc_method_context = NULL_TREE;
}
{ objc_inherit_code = CLASS_METHOD_DECL; }
| '-'
{ objc_inherit_code = INSTANCE_METHOD_DECL; }
;
methoddef:
methodtype
{
objc_pq_context = 1;
if (objc_implementation_context)
objc_inherit_code = INSTANCE_METHOD_DECL;
else
if (!objc_implementation_context)
fatal_error ("method definition not in class context");
}
methoddecl
{
objc_pq_context = 0;
add_instance_method (objc_implementation_context, $3);
if (objc_inherit_code == CLASS_METHOD_DECL)
add_class_method (objc_implementation_context, $3);
else
add_instance_method (objc_implementation_context, $3);
start_method_def ($3);
objc_method_context = $3;
}
@ -3021,31 +3004,19 @@ semi_or_error:
;
methodproto:
'+'
methodtype
{
/* Remember protocol qualifiers in prototypes. */
objc_pq_context = 1;
objc_inherit_code = CLASS_METHOD_DECL;
}
methoddecl
{
/* Forget protocol qualifiers here. */
objc_pq_context = 0;
add_class_method (objc_interface_context, $3);
}
semi_or_error
| '-'
{
/* Remember protocol qualifiers in prototypes. */
objc_pq_context = 1;
objc_inherit_code = INSTANCE_METHOD_DECL;
}
methoddecl
{
/* Forget protocol qualifiers here. */
objc_pq_context = 0;
add_instance_method (objc_interface_context, $3);
if (objc_inherit_code == CLASS_METHOD_DECL)
add_class_method (objc_interface_context, $3);
else
add_instance_method (objc_interface_context, $3);
}
semi_or_error
;