remove u8 and i32 from tests and examples

pull/1822/head
Alexander Medvednikov 2019-09-02 15:02:25 +03:00
parent 0db1eaa55a
commit 1c6d51f271
12 changed files with 38 additions and 43 deletions

View File

@ -73,16 +73,13 @@ void pthread_mutex_unlock(HANDLE *m) {
//================================== TYPEDEFS ================================*/ //================================== TYPEDEFS ================================*/
typedef unsigned char byte;
typedef unsigned int uint;
typedef int64_t i64; typedef int64_t i64;
typedef int32_t i32;
typedef int16_t i16; typedef int16_t i16;
typedef int8_t i8; typedef int8_t i8;
typedef uint64_t u64; typedef uint64_t u64;
typedef uint32_t u32; typedef uint32_t u32;
typedef uint16_t u16; typedef uint16_t u16;
typedef uint8_t u8; typedef uint8_t byte;
typedef uint32_t rune; typedef uint32_t rune;
typedef float f32; typedef float f32;
typedef double f64; typedef double f64;
@ -94,8 +91,6 @@ typedef struct map map;
typedef array array_string; typedef array array_string;
typedef array array_int; typedef array array_int;
typedef array array_byte; typedef array array_byte;
typedef array array_uint;
typedef array array_float;
typedef array array_f32; typedef array array_f32;
typedef array array_f64; typedef array array_f64;
typedef map map_int; typedef map map_int;

View File

@ -1619,8 +1619,8 @@ fn (p mut Parser) name_expr() string {
if orig_name == 'i32' { if orig_name == 'i32' {
println('`i32` alias was removed, use `int` instead') println('`i32` alias was removed, use `int` instead')
} }
if orig_name == 'u8' { if orig_name == 'byte' {
println('`u8` alias was removed, use `byte` instead') println('`byte` alias was removed, use `byte` instead')
} }
p.error('undefined: `$orig_name`') p.error('undefined: `$orig_name`')
} }
@ -1949,7 +1949,7 @@ fn (p mut Parser) index_expr(typ_ string, fn_ph int) string {
if is_arr { if is_arr {
index_pos := p.cgen.cur_line.len index_pos := p.cgen.cur_line.len
T := p.table.find_type(p.expression()) T := p.table.find_type(p.expression())
// Allows only i8-64 and u8-64 to be used when accessing an array // Allows only i8-64 and byte-64 to be used when accessing an array
if T.parent != 'int' && T.parent != 'u32' { if T.parent != 'int' && T.parent != 'u32' {
p.check_types(T.name, 'int') p.check_types(T.name, 'int')
} }

View File

@ -758,7 +758,7 @@ fn (table &Table) cgen_name_type_pair(name, typ string) string {
fn is_valid_int_const(val, typ string) bool { fn is_valid_int_const(val, typ string) bool {
x := val.int() x := val.int()
switch typ { switch typ {
case 'u8': return 0 <= x && x <= math.MaxU8 case 'byte': return 0 <= x && x <= math.MaxU8
case 'u16': return 0 <= x && x <= math.MaxU16 case 'u16': return 0 <= x && x <= math.MaxU16
//case 'u32': return 0 <= x && x <= math.MaxU32 //case 'u32': return 0 <= x && x <= math.MaxU32
//case 'u64': return 0 <= x && x <= math.MaxU64 //case 'u64': return 0 <= x && x <= math.MaxU64

View File

@ -81,20 +81,20 @@ pub fn (nn u32) str() string {
} }
/* /*
pub fn (nn u8) str() string { pub fn (nn byte) str() string {
mut n := nn mut n := nn
if n == u8(0) { if n == byte(0) {
return '0' return '0'
} }
max := 5 max := 5
mut buf := malloc(max) mut buf := malloc(max)
mut len := 0 mut len := 0
// Fill the string from the end // Fill the string from the end
for n > u8(0) { for n > byte(0) {
d := n % u8(10) d := n % byte(10)
buf[max - len - 1] = d + u8(`0`) buf[max - len - 1] = d + byte(`0`)
len++ len++
n = n / u8(10) n = n / byte(10)
} }
return tos(buf + max - len, len) return tos(buf + max - len, len)
} }

View File

@ -20,8 +20,8 @@ fn test_str_methods() {
assert i64(1).str() == '1' assert i64(1).str() == '1'
assert i64(-1).str() == '-1' assert i64(-1).str() == '-1'
assert u8(1).str() == '1' assert byte(1).str() == '1'
assert u8(-1).str() == '255' assert byte(-1).str() == '255'
assert u16(1).str() == '1' assert u16(1).str() == '1'
assert u16(-1).str() == '65535' assert u16(-1).str() == '65535'
assert u32(1).str() == '1' assert u32(1).str() == '1'

View File

@ -64,10 +64,10 @@ fn encrypt_block_generic(xk []u32, dst, src []byte) {
mut t2 := u32(0) mut t2 := u32(0)
mut t3 := u32(0) mut t3 := u32(0)
for r := 0; r < nr; r++ { for r := 0; r < nr; r++ {
t0 = xk[u32(k+0)] ^ u32(Te0[u8(s0>>u32(24))]) ^ u32(Te1[u8(s1>>u32(16))]) ^ u32(Te2[u8(s2>>u32(8))]) ^ u32(Te3[u8(s3)]) t0 = xk[u32(k+0)] ^ u32(Te0[byte(s0>>u32(24))]) ^ u32(Te1[byte(s1>>u32(16))]) ^ u32(Te2[byte(s2>>u32(8))]) ^ u32(Te3[byte(s3)])
t1 = xk[u32(k+1)] ^ u32(Te0[u8(s1>>u32(24))]) ^ u32(Te1[u8(s2>>u32(16))]) ^ u32(Te2[u8(s3>>u32(8))]) ^ u32(Te3[u8(s0)]) t1 = xk[u32(k+1)] ^ u32(Te0[byte(s1>>u32(24))]) ^ u32(Te1[byte(s2>>u32(16))]) ^ u32(Te2[byte(s3>>u32(8))]) ^ u32(Te3[byte(s0)])
t2 = xk[u32(k+2)] ^ u32(Te0[u8(s2>>u32(24))]) ^ u32(Te1[u8(s3>>u32(16))]) ^ u32(Te2[u8(s0>>u32(8))]) ^ u32(Te3[u8(s1)]) t2 = xk[u32(k+2)] ^ u32(Te0[byte(s2>>u32(24))]) ^ u32(Te1[byte(s3>>u32(16))]) ^ u32(Te2[byte(s0>>u32(8))]) ^ u32(Te3[byte(s1)])
t3 = xk[u32(k+3)] ^ u32(Te0[u8(s3>>u32(24))]) ^ u32(Te1[u8(s0>>u32(16))]) ^ u32(Te2[u8(s1>>u32(8))]) ^ u32(Te3[u8(s2)]) t3 = xk[u32(k+3)] ^ u32(Te0[byte(s3>>u32(24))]) ^ u32(Te1[byte(s0>>u32(16))]) ^ u32(Te2[byte(s1>>u32(8))]) ^ u32(Te3[byte(s2)])
k += 4 k += 4
s0 = t0 s0 = t0
s1 = t1 s1 = t1
@ -117,10 +117,10 @@ fn decrypt_block_generic(xk []u32, dst, src []byte) {
mut t3 := u32(0) mut t3 := u32(0)
for r := 0; r < nr; r++ { for r := 0; r < nr; r++ {
// println('### 1') // println('### 1')
t0 = xk[u32(k+0)] ^ u32(Td0[u8(s0>>u32(24))]) ^ u32(Td1[u8(s3>>u32(16))]) ^ u32(Td2[u8(s2>>u32(8))]) ^ u32(Td3[u8(s1)]) t0 = xk[u32(k+0)] ^ u32(Td0[byte(s0>>u32(24))]) ^ u32(Td1[byte(s3>>u32(16))]) ^ u32(Td2[byte(s2>>u32(8))]) ^ u32(Td3[byte(s1)])
t1 = xk[u32(k+1)] ^ u32(Td0[u8(s1>>u32(24))]) ^ u32(Td1[u8(s0>>u32(16))]) ^ u32(Td2[u8(s3>>u32(8))]) ^ u32(Td3[u8(s2)]) t1 = xk[u32(k+1)] ^ u32(Td0[byte(s1>>u32(24))]) ^ u32(Td1[byte(s0>>u32(16))]) ^ u32(Td2[byte(s3>>u32(8))]) ^ u32(Td3[byte(s2)])
t2 = xk[u32(k+2)] ^ u32(Td0[u8(s2>>u32(24))]) ^ u32(Td1[u8(s1>>u32(16))]) ^ u32(Td2[u8(s0>>u32(8))]) ^ u32(Td3[u8(s3)]) t2 = xk[u32(k+2)] ^ u32(Td0[byte(s2>>u32(24))]) ^ u32(Td1[byte(s1>>u32(16))]) ^ u32(Td2[byte(s0>>u32(8))]) ^ u32(Td3[byte(s3)])
t3 = xk[u32(k+3)] ^ u32(Td0[u8(s3>>u32(24))]) ^ u32(Td1[u8(s2>>u32(16))]) ^ u32(Td2[u8(s1>>u32(8))]) ^ u32(Td3[u8(s0)]) t3 = xk[u32(k+3)] ^ u32(Td0[byte(s3>>u32(24))]) ^ u32(Td1[byte(s2>>u32(16))]) ^ u32(Td2[byte(s1>>u32(8))]) ^ u32(Td3[byte(s0)])
// println('### 1 end') // println('### 1 end')
k += 4 k += 4
s0 = t0 s0 = t0

View File

@ -19,8 +19,8 @@ import crypto.internal.subtle
struct Cipher { struct Cipher {
mut: mut:
s []u32 s []u32
i u8 i byte
j u8 j byte
} }
// new_cipher creates and returns a new Cipher. The key argument should be the // new_cipher creates and returns a new Cipher. The key argument should be the
@ -35,9 +35,9 @@ pub fn new_cipher(key []byte) ?Cipher {
for i := 0; i < 256; i++ { for i := 0; i < 256; i++ {
c.s[i] = u32(i) c.s[i] = u32(i)
} }
mut j := u8(0) mut j := byte(0)
for i := 0; i < 256; i++ { for i := 0; i < 256; i++ {
j += u8(c.s[i]) + u8(key[i%key.len]) j += byte(c.s[i]) + byte(key[i%key.len])
tmp := c.s[i] tmp := c.s[i]
c.s[i] = c.s[j] c.s[i] = c.s[j]
c.s[j] = tmp c.s[j] = tmp
@ -53,8 +53,8 @@ pub fn (c mut Cipher) reset() {
for i in c.s { for i in c.s {
c.s[i] = u32(0) c.s[i] = u32(0)
} }
c.i = u8(0) c.i = byte(0)
c.j = u8(0) c.j = byte(0)
} }
// xor_key_stream sets dst to the result of XORing src with the key stream. // xor_key_stream sets dst to the result of XORing src with the key stream.
@ -71,13 +71,13 @@ pub fn (c mut Cipher) xor_key_stream(dst mut []byte, src []byte) {
_ := dst[src.len-1] _ := dst[src.len-1]
*dst = dst.left(src.len) // eliminate bounds check from loop *dst = dst.left(src.len) // eliminate bounds check from loop
for k, v in src { for k, v in src {
i += u8(1) i += byte(1)
x := c.s[i] x := c.s[i]
j += u8(x) j += byte(x)
y := c.s[j] y := c.s[j]
c.s[i] = y c.s[i] = y
c.s[j] = x c.s[j] = x
dst[k] = v ^ byte(c.s[u8(x+y)]) dst[k] = v ^ byte(c.s[byte(x+y)])
} }
c.i = i c.i = i
c.j = j c.j = j

View File

@ -10,10 +10,10 @@ module bits
// To rotate x right by k bits, call rotate_left_8(x, -k). // To rotate x right by k bits, call rotate_left_8(x, -k).
// //
// This function's execution time does not depend on the inputs. // This function's execution time does not depend on the inputs.
pub fn rotate_left_8(x u8, k int) u8 { pub fn rotate_left_8(x byte, k int) byte {
n := u8(8) n := byte(8)
s := u8(k) & u8(n - u8(1)) s := byte(k) & byte(n - byte(1))
return u8((x<<s) | (x>>(n-s))) return byte((x<<s) | (x>>(n-s)))
} }
// rotate_left_16 returns the value of x rotated left by (k mod 16) bits. // rotate_left_16 returns the value of x rotated left by (k mod 16) bits.