parser.cxx

changeset 53
9ef7e549391f
parent 52
f2596a239ea1
child 54
8cc91ef94754
equal deleted inserted replaced
52:f2596a239ea1 53:9ef7e549391f
678 case OPER_GREATERTHAN: return DH_GREATERTHAN; 678 case OPER_GREATERTHAN: return DH_GREATERTHAN;
679 case OPER_LESSTHANEQUALS: return DH_LESSTHANEQUALS; 679 case OPER_LESSTHANEQUALS: return DH_LESSTHANEQUALS;
680 case OPER_GREATERTHANEQUALS: return DH_GREATERTHANEQUALS; 680 case OPER_GREATERTHANEQUALS: return DH_GREATERTHANEQUALS;
681 case OPER_LEFTSHIFT: return DH_LSHIFT; 681 case OPER_LEFTSHIFT: return DH_LSHIFT;
682 case OPER_RIGHTSHIFT: return DH_RSHIFT; 682 case OPER_RIGHTSHIFT: return DH_RSHIFT;
683 case OPER_OR: return DH_ORLOGICAL;
684 case OPER_AND: return DH_ANDLOGICAL;
685 case OPER_BITWISEOR: return DH_ORBITWISE;
686 case OPER_BITWISEEOR: return DH_EORBITWISE;
687 case OPER_BITWISEAND: return DH_ANDBITWISE;
683 } 688 }
684 689
685 error ("DataHeaderByOperator: couldn't find dataheader for operator %d!\n", oper); 690 error ("DataHeaderByOperator: couldn't find dataheader for operator %d!\n", oper);
686 return 0; 691 return 0;
687 } 692 }
727 else 732 else
728 oper += token; 733 oper += token;
729 734
730 // Check one-char operators 735 // Check one-char operators
731 bool equalsnext = ISNEXT ("="); 736 bool equalsnext = ISNEXT ("=");
732 bool morenext = ISNEXT (">");
733 bool lessnext = ISNEXT ("<");
734 737
735 int o = (!oper.compare ("=") && !equalsnext) ? OPER_ASSIGN : 738 int o = (!oper.compare ("=") && !equalsnext) ? OPER_ASSIGN :
736 (!oper.compare (">") && !equalsnext && !morenext) ? OPER_GREATERTHAN : 739 (!oper.compare (">") && !equalsnext && !ISNEXT (">")) ? OPER_GREATERTHAN :
737 (!oper.compare ("<") && !equalsnext && !lessnext) ? OPER_LESSTHAN : 740 (!oper.compare ("<") && !equalsnext && !ISNEXT ("<")) ? OPER_LESSTHAN :
741 (!oper.compare ("&") && !ISNEXT ("&")) ? OPER_BITWISEAND :
742 (!oper.compare ("|") && !ISNEXT ("|")) ? OPER_BITWISEOR :
743 !oper.compare ("^") ? OPER_BITWISEEOR :
738 !oper.compare ("+") ? OPER_ADD : 744 !oper.compare ("+") ? OPER_ADD :
739 !oper.compare ("-") ? OPER_SUBTRACT : 745 !oper.compare ("-") ? OPER_SUBTRACT :
740 !oper.compare ("*") ? OPER_MULTIPLY : 746 !oper.compare ("*") ? OPER_MULTIPLY :
741 !oper.compare ("/") ? OPER_DIVIDE : 747 !oper.compare ("/") ? OPER_DIVIDE :
742 !oper.compare ("%") ? OPER_MODULUS : 748 !oper.compare ("%") ? OPER_MODULUS :
757 !oper.compare ("%=") ? OPER_ASSIGNMOD : 763 !oper.compare ("%=") ? OPER_ASSIGNMOD :
758 !oper.compare ("==") ? OPER_EQUALS : 764 !oper.compare ("==") ? OPER_EQUALS :
759 !oper.compare ("!=") ? OPER_NOTEQUALS : 765 !oper.compare ("!=") ? OPER_NOTEQUALS :
760 !oper.compare (">=") ? OPER_GREATERTHANEQUALS : 766 !oper.compare (">=") ? OPER_GREATERTHANEQUALS :
761 !oper.compare ("<=") ? OPER_LESSTHANEQUALS : 767 !oper.compare ("<=") ? OPER_LESSTHANEQUALS :
768 !oper.compare ("&&") ? OPER_AND :
769 !oper.compare ("||") ? OPER_OR :
762 (!oper.compare ("<<") && !equalsnext) ? OPER_LEFTSHIFT : 770 (!oper.compare ("<<") && !equalsnext) ? OPER_LEFTSHIFT :
763 (!oper.compare (">>") && !equalsnext) ? OPER_RIGHTSHIFT : 771 (!oper.compare (">>") && !equalsnext) ? OPER_RIGHTSHIFT :
764 -1; 772 -1;
765 773
766 if (o != -1) { 774 if (o != -1) {

mercurial