From: ceriel Date: Wed, 15 Nov 1989 17:46:58 +0000 (+0000) Subject: Added unsigned bit-field test X-Git-Tag: release-5-5~2077 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=72f667fbf90e6d231f888498d9505b76bb3f25b5;p=ack.git Added unsigned bit-field test --- diff --git a/lang/cem/ctest/ctgen/.distr b/lang/cem/ctest/ctgen/.distr index 357c55344..224da4cb7 100644 --- a/lang/cem/ctest/ctgen/.distr +++ b/lang/cem/ctest/ctgen/.distr @@ -1,6 +1,8 @@ OPS bf.cem.g bf.sed +bfu.cem.g +bfu.sed cel.cem.g cel.sed clu.cem.g diff --git a/lang/cem/ctest/ctgen/bfu.cem.g b/lang/cem/ctest/ctgen/bfu.cem.g new file mode 100644 index 000000000..05842e00f --- /dev/null +++ b/lang/cem/ctest/ctgen/bfu.cem.g @@ -0,0 +1,111 @@ +bfs.bf1 + bfs.bf2 +bfs.bf1 - bfs.bf2 +bfs.bf1 / bfs.bf2 +bfs.bf1 % bfs.bf2 +bfs.bf1 * bfs.bf2 +bfs.bf1 & bfs.bf2 +bfs.bf1 | bfs.bf2 +bfs.bf1 ^ bfs.bf2 +bfs.bf1 || bfs.bf2 +bfs.bf1 && bfs.bf2 +bfs.bf1 << 1 +bfs.bf1 >> 1 +-bfs.bf1 +!bfs.bf1 +~bfs.bf1 +bfs.bf1 == bfs.bf2 +bfs.bf1 != bfs.bf2 +bfs.bf1 <= bfs.bf2 +bfs.bf1 >= bfs.bf2 +bfs.bf1 < bfs.bf2 +bfs.bf1 > bfs.bf2 +bfs.bf1 ? bfs.bf1 : bfs.bf2 +bfs.bf3 = bfs.bf1 1 +bfs.bf3 += bfs.bf1 0 +bfs.bf3 -= bfs.bf1 254 +bfs.bf3 /= bfs.bf1 255 +bfs.bf3 %= bfs.bf1 0 +bfs.bf3 *= bfs.bf1 255 +bfs.bf3 &= bfs.bf1 1 +bfs.bf3 |= bfs.bf1 255 +bfs.bf3 ^= bfs.bf1 254 +bfs.bf3 <<= 1 254 +bfs.bf3 >>= 1 127 +bfs.bf3 ++ 0 +bfs.bf3 -- 254 +-- bfs.bf3 254 +++ bfs.bf3 0 +bfs.bf4 = ( bfs.bf1 + bfs.bf2 ) 9 +bfs.bf4 = ( bfs.bf1 - bfs.bf2 ) 65529 +bfs.bf4 = ( bfs.bf1 / bfs.bf2 ) 0 +bfs.bf4 = ( bfs.bf1 % bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf1 * bfs.bf2 ) 8 +bfs.bf4 = ( bfs.bf1 & bfs.bf2 ) 0 +bfs.bf4 = ( bfs.bf1 | bfs.bf2 ) 9 +bfs.bf4 = ( bfs.bf1 ^ bfs.bf2 ) 9 +bfs.bf4 = ( bfs.bf1 || bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf1 && bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf1 << 1 ) 2 +bfs.bf4 = ( bfs.bf1 >> 1 ) 0 +bfs.bf4 = ( -bfs.bf1 ) 65535 +bfs.bf4 = ( !bfs.bf1 ) 0 +bfs.bf4 = ( ~bfs.bf1 ) 65534 +bfs.bf4 = ( bfs.bf1 == bfs.bf2 ) 0 +bfs.bf4 = ( bfs.bf1 != bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf1 <= bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf1 >= bfs.bf2 ) 0 +bfs.bf4 = ( bfs.bf1 < bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf1 > bfs.bf2 ) 0 +bfs.bf4 = ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) 1 +bfs.bf4 = ( bfs.bf3 = bfs.bf1 ) 1 1 +bfs.bf4 = ( bfs.bf3 += bfs.bf1 ) 0 0 +bfs.bf4 = ( bfs.bf3 -= bfs.bf1 ) 254 254 +bfs.bf4 = ( bfs.bf3 /= bfs.bf1 ) 255 255 +bfs.bf4 = ( bfs.bf3 %= bfs.bf1 ) 0 0 +bfs.bf4 = ( bfs.bf3 *= bfs.bf1 ) 255 255 +bfs.bf4 = ( bfs.bf3 &= bfs.bf1 ) 1 1 +bfs.bf4 = ( bfs.bf3 |= bfs.bf1 ) 255 255 +bfs.bf4 = ( bfs.bf3 ^= bfs.bf1 ) 254 254 +bfs.bf4 = ( bfs.bf3 <<= 1 ) 254 254 +bfs.bf4 = ( bfs.bf3 >>= 1 ) 127 127 +bfs.bf4 = ( bfs.bf3 ++ ) 0 255 +bfs.bf4 = ( bfs.bf3 -- ) 254 255 +bfs.bf4 = ( -- bfs.bf3 ) 254 254 +bfs.bf4 = ( ++ bfs.bf3 ) 0 0 +yes if ( bfs.bf1 + bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 - bfs.bf2 ) yes() ; else no() +no if ( bfs.bf1 / bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 % bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 * bfs.bf2 ) yes() ; else no() +no if ( bfs.bf1 & bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 | bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 ^ bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 || bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 && bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 << 1 ) yes() ; else no() +no if ( bfs.bf1 >> 1 ) yes() ; else no() +yes if ( -bfs.bf1 ) yes() ; else no() +no if ( !bfs.bf1 ) yes() ; else no() +yes if ( ~bfs.bf1 ) yes() ; else no() +no if ( bfs.bf1 == bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 != bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 <= bfs.bf2 ) yes() ; else no() +no if ( bfs.bf1 >= bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 < bfs.bf2 ) yes() ; else no() +no if ( bfs.bf1 > bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf1 ? bfs.bf1 : bfs.bf2 ) yes() ; else no() +yes if ( bfs.bf3 = bfs.bf1 ) yes() ; else no() 1 +no if ( bfs.bf3 += bfs.bf1 ) yes() ; else no() 0 +yes if ( bfs.bf3 -= bfs.bf1 ) yes() ; else no() 254 +yes if ( bfs.bf3 /= bfs.bf1 ) yes() ; else no() 255 +no if ( bfs.bf3 %= bfs.bf1 ) yes() ; else no() 0 +yes if ( bfs.bf3 *= bfs.bf1 ) yes() ; else no() 255 +yes if ( bfs.bf3 &= bfs.bf1 ) yes() ; else no() 1 +yes if ( bfs.bf3 |= bfs.bf1 ) yes() ; else no() 255 +yes if ( bfs.bf3 ^= bfs.bf1 ) yes() ; else no() 254 +yes if ( bfs.bf3 <<= 1 ) yes() ; else no() 254 +yes if ( bfs.bf3 >>= 1 ) yes() ; else no() 127 +yes if ( bfs.bf3 ++ ) yes() ; else no() 0 +yes if ( bfs.bf3 -- ) yes() ; else no() 254 +yes if ( -- bfs.bf3 ) yes() ; else no() 254 +no if ( ++ bfs.bf3 ) yes() ; else no() 0 diff --git a/lang/cem/ctest/ctgen/bfu.sed b/lang/cem/ctest/ctgen/bfu.sed new file mode 100644 index 000000000..b17f65e7d --- /dev/null +++ b/lang/cem/ctest/ctgen/bfu.sed @@ -0,0 +1,26 @@ +/ISTART/c\ +/* test bit fields */\ +struct bfs {\ + unsigned int bf1:1 ;\ + unsigned int bf2:4 ;\ + unsigned int bf3:8 ;\ + unsigned int bf4:16 ;\ +} bfs ; +s/FN/main/ +/LSTART/c\ + bfs.bf1=1 ; bfs.bf2=8 ; +/[XYZS]/s/.*/& ; printf("%s#","&"@) ;/ +/Z1/s/#/ %d&/ +/Z1/s/@/, Z1&/ +/Z2/s/#/ %d&/ +/Z2/s/@/, Z2&/ +/Z1/s/^/Z1 = 255 ; / +/Z2/s/^/Z2 = 3 ; / +/[XYZS]/s/^/ / +s/X/bfs.bf1/g +s/Y/bfs.bf2/g +s/S/1/g +s/Z1/bfs.bf3/g +s/Z2/bfs.bf4/g +s/#/\\n/ +s/@//