46 lines
723 B
C
46 lines
723 B
C
#include "chibicc-uxn/varvara.h"
|
|
|
|
char mem[100];
|
|
unsigned mem_length;
|
|
|
|
char *
|
|
aalloc(unsigned size)
|
|
{
|
|
unsigned pos = mem_length;
|
|
mem_length += size;
|
|
return (char *)&mem[pos];
|
|
}
|
|
|
|
void
|
|
afree()
|
|
{
|
|
mem_length = 0;
|
|
}
|
|
|
|
char *
|
|
amcpy(char *from, unsigned length)
|
|
{
|
|
unsigned total = length + sizeof(unsigned);
|
|
char *ptr = aalloc(total);
|
|
|
|
ptr[0] = (char)(length & 0xff);
|
|
ptr[1] = (char)((length >> 8) & 0xff);
|
|
|
|
for (unsigned i = 0; i < length; i++) {
|
|
ptr[i + sizeof(unsigned)] = from[i];
|
|
}
|
|
|
|
return ptr;
|
|
}
|
|
|
|
char* nat_to_str(unsigned n) {
|
|
char buffer[5];
|
|
unsigned i = 5;
|
|
|
|
do {
|
|
buffer[--i] = '0' + n % 10;
|
|
n /= 10;
|
|
} while(n > 0);
|
|
|
|
return amcpy(buffer + i, 5 - i);
|
|
} |