Mercurial > hg > octave-lyh
comparison src/parse.y @ 4018:a8621d87fbf5
[project @ 2002-08-05 03:17:25 by jwe]
author | jwe |
---|---|
date | Mon, 05 Aug 2002 03:17:25 +0000 |
parents | 27e461aed956 |
children | ef3caf27cb9c |
comparison
equal
deleted
inserted
replaced
4017:0eb247b9cc9b | 4018:a8621d87fbf5 |
---|---|
371 octave_user_function *octave_user_function_type; | 371 octave_user_function *octave_user_function_type; |
372 } | 372 } |
373 | 373 |
374 // Tokens with line and column information. | 374 // Tokens with line and column information. |
375 %token <tok_val> '=' ':' '-' '+' '*' '/' | 375 %token <tok_val> '=' ':' '-' '+' '*' '/' |
376 %token <tok_val> ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ | 376 %token <tok_val> ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ POW_EQ |
377 %token <tok_val> EMUL_EQ EDIV_EQ ELEFTDIV_EQ AND_EQ OR_EQ | 377 %token <tok_val> EMUL_EQ EDIV_EQ ELEFTDIV_EQ EPOW_EQ AND_EQ OR_EQ |
378 %token <tok_val> LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT | 378 %token <tok_val> LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT |
379 %token <tok_val> EXPR_AND_AND EXPR_OR_OR | 379 %token <tok_val> EXPR_AND_AND EXPR_OR_OR |
380 %token <tok_val> EXPR_AND EXPR_OR EXPR_NOT | 380 %token <tok_val> EXPR_AND EXPR_OR EXPR_NOT |
381 %token <tok_val> EXPR_LT EXPR_LE EXPR_EQ EXPR_NE EXPR_GE EXPR_GT | 381 %token <tok_val> EXPR_LT EXPR_LE EXPR_EQ EXPR_NE EXPR_GE EXPR_GT |
382 %token <tok_val> LEFTDIV EMUL EDIV ELEFTDIV EPLUS EMINUS | 382 %token <tok_val> LEFTDIV EMUL EDIV ELEFTDIV EPLUS EMINUS |
442 %type <subplot_style_type> style | 442 %type <subplot_style_type> style |
443 %type <subplot_axes_type> axes | 443 %type <subplot_axes_type> axes |
444 | 444 |
445 // Precedence and associativity. | 445 // Precedence and associativity. |
446 %left ';' ',' '\n' | 446 %left ';' ',' '\n' |
447 %right '=' ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ EMUL_EQ EDIV_EQ ELEFTDIV_EQ OR_EQ AND_EQ LSHIFT_EQ RSHIFT_EQ | 447 %right '=' ADD_EQ SUB_EQ MUL_EQ DIV_EQ LEFTDIV_EQ POW_EQ EMUL_EQ EDIV_EQ ELEFTDIV_EQ EPOW_EQ OR_EQ AND_EQ LSHIFT_EQ RSHIFT_EQ |
448 %left EXPR_AND_AND EXPR_OR_OR | 448 %left EXPR_AND_AND EXPR_OR_OR |
449 %left EXPR_AND EXPR_OR | 449 %left EXPR_AND EXPR_OR |
450 %left EXPR_LT EXPR_LE EXPR_EQ EXPR_NE EXPR_GE EXPR_GT | 450 %left EXPR_LT EXPR_LE EXPR_EQ EXPR_NE EXPR_GE EXPR_GT |
451 %left LSHIFT RSHIFT | 451 %left LSHIFT RSHIFT |
452 %left ':' | 452 %left ':' |
821 { $$ = make_assign_op (MUL_EQ, $1, $2, $3); } | 821 { $$ = make_assign_op (MUL_EQ, $1, $2, $3); } |
822 | assign_lhs DIV_EQ expression | 822 | assign_lhs DIV_EQ expression |
823 { $$ = make_assign_op (DIV_EQ, $1, $2, $3); } | 823 { $$ = make_assign_op (DIV_EQ, $1, $2, $3); } |
824 | assign_lhs LEFTDIV_EQ expression | 824 | assign_lhs LEFTDIV_EQ expression |
825 { $$ = make_assign_op (LEFTDIV_EQ, $1, $2, $3); } | 825 { $$ = make_assign_op (LEFTDIV_EQ, $1, $2, $3); } |
826 | assign_lhs POW_EQ expression | |
827 { $$ = make_assign_op (POW_EQ, $1, $2, $3); } | |
826 | assign_lhs LSHIFT_EQ expression | 828 | assign_lhs LSHIFT_EQ expression |
827 { $$ = make_assign_op (LSHIFT_EQ, $1, $2, $3); } | 829 { $$ = make_assign_op (LSHIFT_EQ, $1, $2, $3); } |
828 | assign_lhs RSHIFT_EQ expression | 830 | assign_lhs RSHIFT_EQ expression |
829 { $$ = make_assign_op (RSHIFT_EQ, $1, $2, $3); } | 831 { $$ = make_assign_op (RSHIFT_EQ, $1, $2, $3); } |
830 | assign_lhs EMUL_EQ expression | 832 | assign_lhs EMUL_EQ expression |
831 { $$ = make_assign_op (EMUL_EQ, $1, $2, $3); } | 833 { $$ = make_assign_op (EMUL_EQ, $1, $2, $3); } |
832 | assign_lhs EDIV_EQ expression | 834 | assign_lhs EDIV_EQ expression |
833 { $$ = make_assign_op (EDIV_EQ, $1, $2, $3); } | 835 { $$ = make_assign_op (EDIV_EQ, $1, $2, $3); } |
834 | assign_lhs ELEFTDIV_EQ expression | 836 | assign_lhs ELEFTDIV_EQ expression |
835 { $$ = make_assign_op (ELEFTDIV_EQ, $1, $2, $3); } | 837 { $$ = make_assign_op (ELEFTDIV_EQ, $1, $2, $3); } |
838 | assign_lhs EPOW_EQ expression | |
839 { $$ = make_assign_op (EPOW_EQ, $1, $2, $3); } | |
836 | assign_lhs AND_EQ expression | 840 | assign_lhs AND_EQ expression |
837 { $$ = make_assign_op (AND_EQ, $1, $2, $3); } | 841 { $$ = make_assign_op (AND_EQ, $1, $2, $3); } |
838 | assign_lhs OR_EQ expression | 842 | assign_lhs OR_EQ expression |
839 { $$ = make_assign_op (OR_EQ, $1, $2, $3); } | 843 { $$ = make_assign_op (OR_EQ, $1, $2, $3); } |
840 ; | 844 ; |
2382 | 2386 |
2383 case LEFTDIV_EQ: | 2387 case LEFTDIV_EQ: |
2384 t = octave_value::op_ldiv_eq; | 2388 t = octave_value::op_ldiv_eq; |
2385 break; | 2389 break; |
2386 | 2390 |
2391 case POW_EQ: | |
2392 t = octave_value::op_pow_eq; | |
2393 break; | |
2394 | |
2387 case LSHIFT_EQ: | 2395 case LSHIFT_EQ: |
2388 t = octave_value::op_lshift_eq; | 2396 t = octave_value::op_lshift_eq; |
2389 break; | 2397 break; |
2390 | 2398 |
2391 case RSHIFT_EQ: | 2399 case RSHIFT_EQ: |
2400 t = octave_value::op_el_div_eq; | 2408 t = octave_value::op_el_div_eq; |
2401 break; | 2409 break; |
2402 | 2410 |
2403 case ELEFTDIV_EQ: | 2411 case ELEFTDIV_EQ: |
2404 t = octave_value::op_el_ldiv_eq; | 2412 t = octave_value::op_el_ldiv_eq; |
2413 break; | |
2414 | |
2415 case EPOW_EQ: | |
2416 t = octave_value::op_el_pow_eq; | |
2405 break; | 2417 break; |
2406 | 2418 |
2407 case AND_EQ: | 2419 case AND_EQ: |
2408 t = octave_value::op_el_and_eq; | 2420 t = octave_value::op_el_and_eq; |
2409 break; | 2421 break; |