Mercurial > octave-nkf
diff src/parse.y @ 206:1761d7a3770c
[project @ 1993-11-10 21:00:31 by jwe]
author | jwe |
---|---|
date | Wed, 10 Nov 1993 21:00:31 +0000 |
parents | 83c8b5c4d9d9 |
children | a99f28f5e351 |
line wrap: on
line diff
--- a/src/parse.y Mon Nov 08 23:43:03 1993 +0000 +++ b/src/parse.y Wed Nov 10 21:00:31 1993 +0000 @@ -174,7 +174,9 @@ // Other tokens. %token FCN SCREW_TWO -%token END_OF_INPUT GLOBAL +%token GLOBAL +%token ELLIPSIS +%token END_OF_INPUT %token USING TITLE WITH COLON OPEN_BRACE CLOSE_BRACE // Nonterminals we construct. @@ -970,6 +972,13 @@ tmp->mark_as_formal_parameters (); $$ = tmp; } + | param_list1 ',' ELLIPSIS ')' + { + tree_parameter_list *tmp = $1->reverse (); + tmp->mark_as_formal_parameters (); + tmp->mark_varargs (); + $$ = tmp; + } param_list1 : '(' identifier { $$ = new tree_parameter_list ($2); } @@ -977,13 +986,15 @@ { $$ = $1->chain ($3); } | '(' error { - error ("parameter lists may only contain identifiers"); - $$ = (tree_parameter_list *) NULL; + yyerror ("parse error"); + error ("invalid parameter list"); + ABORT_PARSE; } | param_list1 ',' error { - error ("parameter lists may only contain identifiers"); - $$ = (tree_parameter_list *) NULL; + yyerror ("parse error"); + error ("invalid parameter list"); + ABORT_PARSE; } ;