Mercurial > hg > CbC > old > device
comparison mc-parse.c @ 62:129f4802b027
separation done
author | kono |
---|---|
date | Thu, 20 Feb 2003 05:27:29 +0900 |
parents | 8ffb8ca3fe34 |
children | 8ad746efa4f8 |
comparison
equal
deleted
inserted
replaced
61:8ffb8ca3fe34 | 62:129f4802b027 |
---|---|
1707 e1=rvalue(e1); | 1707 e1=rvalue(e1); |
1708 t=type; | 1708 t=type; |
1709 getsym(); | 1709 getsym(); |
1710 e2=rvalue(expr10()); | 1710 e2=rvalue(expr10()); |
1711 if(t==INT&&type==INT) | 1711 if(t==INT&&type==INT) |
1712 e1=list3(op,e1,e2); | 1712 e1=binop(op,e1,e2,t,type); |
1713 else | 1713 else |
1714 e1=list3(op+US,e1,e2); | 1714 e1=binop(op+US,e1,e2,t,type); |
1715 type= INT; | 1715 type= INT; |
1716 } | 1716 } |
1717 return e1; | 1717 return e1; |
1718 } | 1718 } |
1719 | 1719 |
2135 case MOD: | 2135 case MOD: |
2136 if(!e2) error(EXERR);e=e1%e2;break; | 2136 if(!e2) error(EXERR);e=e1%e2;break; |
2137 case RSHIFT: | 2137 case RSHIFT: |
2138 e=e1>>e2;break; | 2138 e=e1>>e2;break; |
2139 case LSHIFT: | 2139 case LSHIFT: |
2140 e=e1<<e2; | 2140 e=e1<<e2;break; |
2141 case GT: | |
2142 e=(e1>e2);break; | |
2143 case GE: | |
2144 e=(e1>=e2);break; | |
2145 case LT: | |
2146 e=(e1<e2);break; | |
2147 case LE: | |
2148 e=(e1<=e2);break; | |
2149 case UGT: | |
2150 e=((unsigned)e1>(unsigned)e2);break; | |
2151 case UGE: | |
2152 e=((unsigned)e1>=(unsigned)e2);break; | |
2153 case ULT: | |
2154 e=((unsigned)e1<(unsigned)e2);break; | |
2155 case ULE: | |
2156 e=((unsigned)e1<=(unsigned)e2);break; | |
2141 } | 2157 } |
2142 return list2(CONST,e); | 2158 return list2(CONST,e); |
2143 } | 2159 } |
2160 if(op==GT||op==GE||op==LT||op==LE||op==UGT||op==UGE||op==ULT||op==ULE) | |
2161 return(list3(op,e1,e2)); | |
2144 if((op==ADD||op==MUL||op==BOR||op==EOR||op==BAND)&& | 2162 if((op==ADD||op==MUL||op==BOR||op==EOR||op==BAND)&& |
2145 (car(e1)==CONST||(car(e2)!=CONST&& | 2163 (car(e1)==CONST||(car(e2)!=CONST&& |
2146 (car(e1)==RGVAR||car(e1)==RLVAR)))) { | 2164 (car(e1)==RGVAR||car(e1)==RLVAR)))) { |
2147 e=e1;e1=e2;e2=e;e=t1;t1=t2;t2=e; | 2165 e=e1;e1=e2;e2=e;e=t1;t1=t2;t2=e; |
2148 } | 2166 } |