changeset 2884:d500989072eb

[project @ 1997-04-24 21:54:40 by jwe]
author jwe
date Thu, 24 Apr 1997 21:54:40 +0000
parents 0b3954110c77
children a65b62d2f630
files src/ChangeLog src/parse.y
diffstat 2 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
 Thu Apr 24 03:58:16 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
+	* 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.
--- a/src/parse.y
+++ b/src/parse.y
@@ -341,6 +341,7 @@
 // Nonterminals we construct.
 %type <sep_type> sep_no_nl opt_sep_no_nl sep opt_sep
 %type <tree_type> input
+%type <tree_constant_type> magic_colon
 %type <tree_matrix_type> rows rows1
 %type <tree_matrix_row_type> matrix_row matrix_row1
 %type <tree_expression_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