Mercurial > hg > octave-avbm
comparison src/oct-parse.yy @ 10207:76a880a588ce
error when using ~ in matrix expression
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Wed, 27 Jan 2010 13:13:26 +0100 |
parents | 37a08e0ce2dc |
children | 0a5a769b8fc0 |
comparison
equal
deleted
inserted
replaced
10206:37a08e0ce2dc | 10207:76a880a588ce |
---|---|
312 make_indirect_ref (tree_expression *expr, tree_expression *field); | 312 make_indirect_ref (tree_expression *expr, tree_expression *field); |
313 | 313 |
314 // Make a declaration command. | 314 // Make a declaration command. |
315 static tree_decl_command * | 315 static tree_decl_command * |
316 make_decl_command (int tok, token *tok_val, tree_decl_init_list *lst); | 316 make_decl_command (int tok, token *tok_val, tree_decl_init_list *lst); |
317 | |
318 // Validate argument list forming a matrix or cell row. | |
319 static tree_argument_list * | |
320 validate_matrix_row (tree_argument_list *row); | |
317 | 321 |
318 // Finish building a matrix list. | 322 // Finish building a matrix list. |
319 static tree_expression * | 323 static tree_expression * |
320 finish_matrix (tree_matrix *m); | 324 finish_matrix (tree_matrix *m); |
321 | 325 |
712 } | 716 } |
713 ; | 717 ; |
714 | 718 |
715 cell_or_matrix_row | 719 cell_or_matrix_row |
716 : arg_list | 720 : arg_list |
717 { $$ = $1; } | 721 { $$ = validate_matrix_row ($1); } |
718 | arg_list ',' // Ignore trailing comma. | 722 | arg_list ',' // Ignore trailing comma. |
719 { $$ = $1; } | 723 { $$ = validate_matrix_row ($1); } |
720 ; | 724 ; |
721 | 725 |
722 fcn_handle : '@' FCN_HANDLE | 726 fcn_handle : '@' FCN_HANDLE |
723 { | 727 { |
724 $$ = make_fcn_handle ($2); | 728 $$ = make_fcn_handle ($2); |
3100 panic_impossible (); | 3104 panic_impossible (); |
3101 break; | 3105 break; |
3102 } | 3106 } |
3103 | 3107 |
3104 return retval; | 3108 return retval; |
3109 } | |
3110 | |
3111 static tree_argument_list * | |
3112 validate_matrix_row (tree_argument_list *row) | |
3113 { | |
3114 if (row && row->has_magic_tilde ()) | |
3115 yyerror ("invalid use of tilde (~) in matrix expression"); | |
3116 return row; | |
3105 } | 3117 } |
3106 | 3118 |
3107 // Finish building a matrix list. | 3119 // Finish building a matrix list. |
3108 | 3120 |
3109 static tree_expression * | 3121 static tree_expression * |