#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); }