parsav  Diff

Differences From Artifact [1e93ad8eb5]:

To Artifact [638f6c2759]:


   178    178   		self.buf = [rawstring](lib.mem.heapr_raw(self.buf, self.space))
   179    179   	end
   180    180   	lib.mem.cpy(self.buf + self.sz, str, len)
   181    181   	self.sz = self.sz + len
   182    182   	self.buf[self.sz] = 0
   183    183   	return self
   184    184   end;
          185  +
          186  +terra m.acc:ipush(i: intptr)
          187  +	var decbuf: int8[21]
          188  +	var si = lib.math.decstr_friendly(i, &decbuf[20])
          189  +	var len: intptr = [decbuf.type.N] - (si - &decbuf[0])
          190  +	return self:push(si,len)
          191  +end
          192  +
          193  +terra m.acc:shpush(i: uint64)
          194  +	var sbuf: int8[lib.math.shorthand.maxlen]
          195  +	var len = lib.math.shorthand.gen(i,&sbuf[0])
          196  +	return self:push(&sbuf[0], len)
          197  +end
   185    198   
   186    199   m.lit = macro(function(str)
   187    200   	if str:asvalue() ~= nil then
   188    201   		return `[lib.mem.ref(int8)] {ptr = [str:asvalue()], ct = [#(str:asvalue())]}
   189    202   	else
   190    203   		return `[lib.mem.ref(int8)] {ptr = nil, ct = 0}
   191    204   	end