aboutsummaryrefslogtreecommitdiff
path: root/src/lj_cparse.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lj_cparse.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lj_cparse.c b/src/lj_cparse.c
index 83cfd112..19f632ff 100644
--- a/src/lj_cparse.c
+++ b/src/lj_cparse.c
@@ -576,28 +576,34 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
576 k->id = k2.id > k3.id ? k2.id : k3.id; 576 k->id = k2.id > k3.id ? k2.id : k3.id;
577 continue; 577 continue;
578 } 578 }
579 /* fallthrough */
579 case 1: 580 case 1:
580 if (cp_opt(cp, CTOK_OROR)) { 581 if (cp_opt(cp, CTOK_OROR)) {
581 cp_expr_sub(cp, &k2, 2); k->i32 = k->u32 || k2.u32; k->id = CTID_INT32; 582 cp_expr_sub(cp, &k2, 2); k->i32 = k->u32 || k2.u32; k->id = CTID_INT32;
582 continue; 583 continue;
583 } 584 }
585 /* fallthrough */
584 case 2: 586 case 2:
585 if (cp_opt(cp, CTOK_ANDAND)) { 587 if (cp_opt(cp, CTOK_ANDAND)) {
586 cp_expr_sub(cp, &k2, 3); k->i32 = k->u32 && k2.u32; k->id = CTID_INT32; 588 cp_expr_sub(cp, &k2, 3); k->i32 = k->u32 && k2.u32; k->id = CTID_INT32;
587 continue; 589 continue;
588 } 590 }
591 /* fallthrough */
589 case 3: 592 case 3:
590 if (cp_opt(cp, '|')) { 593 if (cp_opt(cp, '|')) {
591 cp_expr_sub(cp, &k2, 4); k->u32 = k->u32 | k2.u32; goto arith_result; 594 cp_expr_sub(cp, &k2, 4); k->u32 = k->u32 | k2.u32; goto arith_result;
592 } 595 }
596 /* fallthrough */
593 case 4: 597 case 4:
594 if (cp_opt(cp, '^')) { 598 if (cp_opt(cp, '^')) {
595 cp_expr_sub(cp, &k2, 5); k->u32 = k->u32 ^ k2.u32; goto arith_result; 599 cp_expr_sub(cp, &k2, 5); k->u32 = k->u32 ^ k2.u32; goto arith_result;
596 } 600 }
601 /* fallthrough */
597 case 5: 602 case 5:
598 if (cp_opt(cp, '&')) { 603 if (cp_opt(cp, '&')) {
599 cp_expr_sub(cp, &k2, 6); k->u32 = k->u32 & k2.u32; goto arith_result; 604 cp_expr_sub(cp, &k2, 6); k->u32 = k->u32 & k2.u32; goto arith_result;
600 } 605 }
606 /* fallthrough */
601 case 6: 607 case 6:
602 if (cp_opt(cp, CTOK_EQ)) { 608 if (cp_opt(cp, CTOK_EQ)) {
603 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 == k2.u32; k->id = CTID_INT32; 609 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 == k2.u32; k->id = CTID_INT32;
@@ -606,6 +612,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
606 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 != k2.u32; k->id = CTID_INT32; 612 cp_expr_sub(cp, &k2, 7); k->i32 = k->u32 != k2.u32; k->id = CTID_INT32;
607 continue; 613 continue;
608 } 614 }
615 /* fallthrough */
609 case 7: 616 case 7:
610 if (cp_opt(cp, '<')) { 617 if (cp_opt(cp, '<')) {
611 cp_expr_sub(cp, &k2, 8); 618 cp_expr_sub(cp, &k2, 8);
@@ -640,6 +647,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
640 k->id = CTID_INT32; 647 k->id = CTID_INT32;
641 continue; 648 continue;
642 } 649 }
650 /* fallthrough */
643 case 8: 651 case 8:
644 if (cp_opt(cp, CTOK_SHL)) { 652 if (cp_opt(cp, CTOK_SHL)) {
645 cp_expr_sub(cp, &k2, 9); k->u32 = k->u32 << k2.u32; 653 cp_expr_sub(cp, &k2, 9); k->u32 = k->u32 << k2.u32;
@@ -652,6 +660,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
652 k->u32 = k->u32 >> k2.u32; 660 k->u32 = k->u32 >> k2.u32;
653 continue; 661 continue;
654 } 662 }
663 /* fallthrough */
655 case 9: 664 case 9:
656 if (cp_opt(cp, '+')) { 665 if (cp_opt(cp, '+')) {
657 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 + k2.u32; 666 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 + k2.u32;
@@ -661,6 +670,7 @@ static void cp_expr_infix(CPState *cp, CPValue *k, int pri)
661 } else if (cp_opt(cp, '-')) { 670 } else if (cp_opt(cp, '-')) {
662 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 - k2.u32; goto arith_result; 671 cp_expr_sub(cp, &k2, 10); k->u32 = k->u32 - k2.u32; goto arith_result;
663 } 672 }
673 /* fallthrough */
664 case 10: 674 case 10:
665 if (cp_opt(cp, '*')) { 675 if (cp_opt(cp, '*')) {
666 cp_expr_unary(cp, &k2); k->u32 = k->u32 * k2.u32; goto arith_result; 676 cp_expr_unary(cp, &k2); k->u32 = k->u32 * k2.u32; goto arith_result;