# HG changeset patch # User jwe # Date 861918880 0 # Node ID d500989072ebfa9e669f905a708a15a2851f5ba4 # Parent 0b3954110c77ec60ce6e96bc83d1d97eb5fe0dd8 [project @ 1997-04-24 21:54:40 by jwe] diff -r 0b3954110c77 -r d500989072eb src/ChangeLog --- a/src/ChangeLog Thu Apr 24 09:57:05 1997 +0000 +++ b/src/ChangeLog Thu Apr 24 21:54:40 1997 +0000 @@ -1,5 +1,8 @@ Thu Apr 24 03:58:16 1997 John W. Eaton + * parse.y (magic_colon): New nonterminal. + (arg_list): Simplify using magic_colon. + * lex.h (class lexical_feedback): Delete maybe_screwed field. New field, parsed_function name. * lex.l (lexical_feedback::init): Initialize it. diff -r 0b3954110c77 -r d500989072eb src/parse.y --- a/src/parse.y Thu Apr 24 09:57:05 1997 +0000 +++ b/src/parse.y Thu Apr 24 21:54:40 1997 +0000 @@ -341,6 +341,7 @@ // Nonterminals we construct. %type sep_no_nl opt_sep_no_nl sep opt_sep %type input +%type magic_colon %type rows rows1 %type matrix_row matrix_row1 %type expression simple_expr simple_expr1 @@ -1122,12 +1123,15 @@ } ; -arg_list : ':' +magic_colon : ':' { octave_value tmp (octave_value::magic_colon_t); - tree_constant *colon = new tree_constant (tmp); - $$ = new tree_argument_list (colon); + $$ = new tree_constant (tmp); } + ; + +arg_list : magic_colon + { $$ = new tree_argument_list (colon); } | expression { $$ = new tree_argument_list ($1); } | ALL_VA_ARGS @@ -1136,11 +1140,9 @@ tree_constant *all_va_args = new tree_constant (tmp); $$ = new tree_argument_list (all_va_args); } - | arg_list ',' ':' + | arg_list ',' magic_colon { - octave_value tmp (octave_value::magic_colon_t); - tree_constant *colon = new tree_constant (tmp); - $1->append (colon); + $1->append ($3); $$ = $1; } | arg_list ',' expression