| 
					
	
	
	
	
				 | 
				
					 
				This post was updated on .
			 
	
	
		Hello,
  There's a little improvement for the if-code, which is also used by the supplied compiler, I think:
  if (cond)
   A
 else
   B
  can be written as
  cond
 if-goto X
 B
 goto Y
 X:
 A
 Y:
  This saves one line, because we don't have to calculate ~cond. Remark that it is now necessary to write A into a buffer, because we must not write A immediately when we encounter it while parsing. If the if's are nested, we have to use a stacked buffer.
  There's also an improvement in handling let-assignments involving arrays.
  If you have something like
  let a[exp1] = exp2
  The supplied compiler saves the value of exp2 in a temp. variable, then assigns pointer 1 and finally that 0;
  however you can again save this temp-stuff by writing the exp1 code to a buffer.
  startBuffer()
 push a
 push exp1
 add
 pop pointer 1
 pop that 0
 endBuffer()
  push exp2
 writeBuffer() // writes the stuff inside startBuffer() ... endBuffer()
  best regards,
 uli
	
	
	
	 
				 |