Disable var and const declarations

This commit is contained in:
Ginger Bill
2017-06-28 23:17:20 +01:00
parent 9ca2246bac
commit 0622509807
27 changed files with 2508 additions and 2537 deletions
+28 -30
View File
@@ -16,7 +16,7 @@ proc decimal_to_string(buf: []u8, a: ^Decimal) -> string {
}
var n = 10 + a.count + abs(a.decimal_point);
n := 10 + a.count + abs(a.decimal_point);
// TODO(bill): make this work with a buffer that's not big enough
assert(len(buf) >= n);
@@ -27,7 +27,7 @@ proc decimal_to_string(buf: []u8, a: ^Decimal) -> string {
return string(buf[0..<1]);
}
var w = 0;
w := 0;
if a.decimal_point <= 0 {
buf[w] = '0'; w++;
buf[w] = '.'; w++;
@@ -57,10 +57,10 @@ proc trim(a: ^Decimal) {
proc assign(a: ^Decimal, i: u64) {
var buf: [32]u8;
var n = 0;
buf: [32]u8;
n := 0;
for i > 0 {
var j = i/10;
j := i/10;
i -= 10*j;
buf[n] = u8('0'+i);
n++;
@@ -79,10 +79,10 @@ proc assign(a: ^Decimal, i: u64) {
proc shift_right(a: ^Decimal, k: uint) {
var r = 0; // read index
var w = 0; // write index
r := 0; // read index
w := 0; // write index
var n: uint;
n: uint;
for ; n>>k == 0; r++ {
if r >= a.count {
if n == 0 {
@@ -96,16 +96,16 @@ proc shift_right(a: ^Decimal, k: uint) {
}
break;
}
var c = uint(a.digits[r]);
c := uint(a.digits[r]);
n = n*10 + c - '0';
}
a.decimal_point -= r-1;
var mask: uint = (1<<k) - 1;
mask: uint = (1<<k) - 1;
for ; r < a.count; r++ {
var c = uint(a.digits[r]);
var dig = n>>k;
c := uint(a.digits[r]);
dig := n>>k;
n &= mask;
a.digits[w] = u8('0' + dig);
w++;
@@ -113,7 +113,7 @@ proc shift_right(a: ^Decimal, k: uint) {
}
for n > 0 {
var dig = n>>k;
dig := n>>k;
n &= mask;
if w < len(a.digits) {
a.digits[w] = u8('0' + dig);
@@ -130,16 +130,16 @@ proc shift_right(a: ^Decimal, k: uint) {
}
proc shift_left(a: ^Decimal, k: uint) {
var delta = int(k/4);
delta := int(k/4);
var r = a.count; // read index
var w = a.count+delta; // write index
r := a.count; // read index
w := a.count+delta; // write index
var n: uint;
n: uint;
for r--; r >= 0; r-- {
n += (uint(a.digits[r]) - '0') << k;
var quo = n/10;
var rem = n - 10*quo;
quo := n/10;
rem := n - 10*quo;
w--;
if w < len(a.digits) {
a.digits[w] = u8('0' + rem);
@@ -150,8 +150,8 @@ proc shift_left(a: ^Decimal, k: uint) {
}
for n > 0 {
var quo = n/10;
var rem = n - 10*quo;
quo := n/10;
rem := n - 10*quo;
w--;
if 0 <= w && w < len(a.digits) {
a.digits[w] = u8('0' + rem);
@@ -168,10 +168,8 @@ proc shift_left(a: ^Decimal, k: uint) {
}
proc shift(a: ^Decimal, k: int) {
const (
uint_size = 8*size_of(uint);
max_shift = uint_size-4;
)
uint_size :: 8*size_of(uint);
max_shift :: uint_size-4;
match {
case a.count == 0:
@@ -215,8 +213,8 @@ proc round(a: ^Decimal, nd: int) {
proc round_up(a: ^Decimal, nd: int) {
if nd < 0 || nd >= a.count { return; }
for var i = nd-1; i >= 0; i-- {
if var c = a.digits[i]; c < '9' {
for i := nd-1; i >= 0; i-- {
if c := a.digits[i]; c < '9' {
a.digits[i]++;
a.count = i+1;
return;
@@ -241,9 +239,9 @@ proc rounded_integer(a: ^Decimal) -> u64 {
if a.decimal_point > 20 {
return 0xffff_ffff_ffff_ffff;
}
var i: int;
var n: u64 = 0;
var m = min(a.decimal_point, a.count);
i: int;
n: u64 = 0;
m := min(a.decimal_point, a.count);
for i = 0; i < m; i++ {
n = n*10 + u64(a.digits[i]-'0');
}