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) { |