# HG changeset patch # User Jaroslav Hajek # Date 1264594406 -3600 # Node ID 76a880a588ce196f1ef505462d5d9940e6d23d05 # Parent 37a08e0ce2dcecc92932e76f1f5153eb5aacaaa0 error when using ~ in matrix expression diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2010-01-27 Jaroslav Hajek + + * oct-parse.yy (validate_matrix_row): New static helper func. + (cell_or_matrix_row): Call it here. + 2010-01-27 Jaroslav Hajek * oct-lvalue.h (octave_lvalue::is_black_hole): New method. diff --git a/src/oct-parse.yy b/src/oct-parse.yy --- a/src/oct-parse.yy +++ b/src/oct-parse.yy @@ -315,6 +315,10 @@ static tree_decl_command * make_decl_command (int tok, token *tok_val, tree_decl_init_list *lst); +// Validate argument list forming a matrix or cell row. +static tree_argument_list * +validate_matrix_row (tree_argument_list *row); + // Finish building a matrix list. static tree_expression * finish_matrix (tree_matrix *m); @@ -714,9 +718,9 @@ cell_or_matrix_row : arg_list - { $$ = $1; } + { $$ = validate_matrix_row ($1); } | arg_list ',' // Ignore trailing comma. - { $$ = $1; } + { $$ = validate_matrix_row ($1); } ; fcn_handle : '@' FCN_HANDLE @@ -3104,6 +3108,14 @@ return retval; } +static tree_argument_list * +validate_matrix_row (tree_argument_list *row) +{ + if (row && row->has_magic_tilde ()) + yyerror ("invalid use of tilde (~) in matrix expression"); + return row; +} + // Finish building a matrix list. static tree_expression *