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 *