+2003-12-16 Daniel Jacobowitz <drow@mvista.com>
+
+ * cp-names.y (function_arglist): Call d_qualify.
+ (ptr_operator_seq): Reverse the list.
+ (decl1b): Add the declarator-id.
+
2003-12-14 Daniel Jacobowitz <drow@mvista.com>
* Makefile.in: Add cp-names.y.
}
;
-/*FIXME d_qualify */
function_arglist: '(' function_args ')' qualifiers_opt
- { $$ = d_make_comp (di, D_COMP_FUNCTION_TYPE, NULL, $2.comp); }
+ { $$ = d_make_comp (di, D_COMP_FUNCTION_TYPE, NULL, $2.comp);
+ $$ = d_qualify ($$, $4, 1); }
| '(' ')' qualifiers_opt
- { $$ = d_make_comp (di, D_COMP_FUNCTION_TYPE, NULL, NULL); }
+ { $$ = d_make_comp (di, D_COMP_FUNCTION_TYPE, NULL, NULL);
+ $$ = d_qualify ($$, $3, 1); }
;
/*
;
*/
+/* FIXME actions all wrong */
qualified : ext_name function_arglist
{}
| type1a ext_name function_arglist
;
ptr_operator_seq: ptr_operator
- | ptr_operator ptr_operator_seq
- { $$.comp = $2.comp;
- $$.last = $1.last;
- *$2.last = $1.comp; }
+ | ptr_operator_seq ptr_operator
+ { $$.comp = $1.comp;
+ $$.last = $2.last;
+ *$1.last = $2.comp; }
;
/* "type1" are the type productions which can legally be followed by a ::
*$3.last = funtype; }
;
-/* FIXME ACTION */
-/* FIXME when I add the name here I get a conflict on ptr-to-members that I don't see a soln for */
-decl1b : ext_name '(' ptr_operator_seq ')' '(' function_args ')'
+/* FIXME ACTION is quite wrong; need a new type for identifiers? */
+decl1b : ext_name '(' ptr_operator_seq ext_name '(' function_args ')' ')'
{ struct d_comp *funtype;
funtype = d_make_comp (di, D_COMP_FUNCTION_TYPE, $1, $6.comp);
- $$ = $3.comp;
- *$3.last = funtype; }
+ *$3.last = funtype;
+ $$ = d_make_comp (di, D_COMP_TYPED_NAME, $4, $3.comp); }
/*
| COLONCOLON ext_name '(' ptr_operator_seq ')' '(' function_args ')'