123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- ISTART
- FN() {
- teff() ; tass() ; tsta() ; tasssta() ; tiff() ; tifass() ;
- return 0 ;
- }
- teff() {
- /* simple operator test */
- /* first evaluate for side effects */
- LSTART
- X + Y
- X - Y
- X / Y
- X % Y
- X * Y
- X & Y
- X | Y
- X ^ Y
- X || Y
- X && Y
- X << S
- X >> S
- -X
- !X
- ~X
- X == Y
- X != Y
- X <= Y
- X >= Y
- X < Y
- X > Y
- X ? X : Y
- }
- tass() {
- LSTART
- /* assignment ops */
- Z1 = X
- Z1 += X
- Z1 -= X
- Z1 /= X
- Z1 %= X
- Z1 *= X
- Z1 &= X
- Z1 |= X
- Z1 ^= X
- Z1 <<= S
- Z1 >>= S
- Z1 ++
- Z1 --
- -- Z1
- ++ Z1
- }
- tsta() {
- /* secondly evaluate and use the value */
- LSTART
- Z2 = ( X + Y )
- Z2 = ( X - Y )
- Z2 = ( X / Y )
- Z2 = ( X % Y )
- Z2 = ( X * Y )
- Z2 = ( X & Y )
- Z2 = ( X | Y )
- Z2 = ( X ^ Y )
- Z2 = ( X || Y )
- Z2 = ( X && Y )
- Z2 = ( X << S )
- Z2 = ( X >> S )
- Z2 = ( -X )
- Z2 = ( !X )
- Z2 = ( ~X )
- Z2 = ( X == Y )
- Z2 = ( X != Y )
- Z2 = ( X <= Y )
- Z2 = ( X >= Y )
- Z2 = ( X < Y )
- Z2 = ( X > Y )
- Z2 = ( X ? X : Y )
- }
- tasssta() {
- /* assignment ops */
- LSTART
- Z2 = ( Z1 = X )
- Z2 = ( Z1 += X )
- Z2 = ( Z1 -= X )
- Z2 = ( Z1 /= X )
- Z2 = ( Z1 %= X )
- Z2 = ( Z1 *= X )
- Z2 = ( Z1 &= X )
- Z2 = ( Z1 |= X )
- Z2 = ( Z1 ^= X )
- Z2 = ( Z1 <<= S )
- Z2 = ( Z1 >>= S )
- Z2 = ( Z1 ++ )
- Z2 = ( Z1 -- )
- Z2 = ( -- Z1 )
- Z2 = ( ++ Z1 )
- }
- tiff() {
- LSTART
- /* conditional context */
- if ( X + Y ) yes() ; else no()
- if ( X - Y ) yes() ; else no()
- if ( X / Y ) yes() ; else no()
- if ( X % Y ) yes() ; else no()
- if ( X * Y ) yes() ; else no()
- if ( X & Y ) yes() ; else no()
- if ( X | Y ) yes() ; else no()
- if ( X ^ Y ) yes() ; else no()
- if ( X || Y ) yes() ; else no()
- if ( X && Y ) yes() ; else no()
- if ( X << S ) yes() ; else no()
- if ( X >> S ) yes() ; else no()
- if ( -X ) yes() ; else no()
- if ( !X ) yes() ; else no()
- if ( ~X ) yes() ; else no()
- if ( X == Y ) yes() ; else no()
- if ( X != Y ) yes() ; else no()
- if ( X <= Y ) yes() ; else no()
- if ( X >= Y ) yes() ; else no()
- if ( X < Y ) yes() ; else no()
- if ( X > Y ) yes() ; else no()
- if ( X ? X : Y ) yes() ; else no()
- }
- tifass() {
- LSTART
- /* assignment ops */
- if ( Z1 = X ) yes() ; else no()
- if ( Z1 += X ) yes() ; else no()
- if ( Z1 -= X ) yes() ; else no()
- if ( Z1 /= X ) yes() ; else no()
- if ( Z1 %= X ) yes() ; else no()
- if ( Z1 *= X ) yes() ; else no()
- if ( Z1 &= X ) yes() ; else no()
- if ( Z1 |= X ) yes() ; else no()
- if ( Z1 ^= X ) yes() ; else no()
- if ( Z1 <<= S ) yes() ; else no()
- if ( Z1 >>= S ) yes() ; else no()
- if ( Z1 ++ ) yes() ; else no()
- if ( Z1 -- ) yes() ; else no()
- if ( -- Z1 ) yes() ; else no()
- if ( ++ Z1 ) yes() ; else no()
- }
- yes() { printf("yes ") ; }
- no() { printf("no ") ; }
|