44 lines
		
	
	
		
			660 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			660 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
extern printfd;
 | 
						|
extern puts;
 | 
						|
 | 
						|
fn ack(m i32 n i32) endvar
 | 
						|
    if m 0 eq then
 | 
						|
        n 1+ ret;
 | 
						|
    elif n 0 eq then
 | 
						|
        (m 1- 1)ack ret;
 | 
						|
    else
 | 
						|
        (m 1- (m n 1-)ack)ack ret;
 | 
						|
    end
 | 
						|
endfn
 | 
						|
 | 
						|
fn foo(ptr pi32) endvar
 | 
						|
    ptr* ptr* 1+:=
 | 
						|
endfn
 | 
						|
 | 
						|
fn main(argc i32 argv ppi8)
 | 
						|
    x y u32;
 | 
						|
    ptr ppi8;
 | 
						|
    endvar
 | 
						|
 | 
						|
    0 y=:;
 | 
						|
    loop
 | 
						|
        y 4 eq breakif;
 | 
						|
        0 x=:;
 | 
						|
        loop
 | 
						|
            x 4 eq breakif;
 | 
						|
            ((y x)ack)printfd;
 | 
						|
            (x&)foo
 | 
						|
        end
 | 
						|
        y 1 + y=:;
 | 
						|
    end
 | 
						|
 | 
						|
    x argc :=;
 | 
						|
    ptr argv :=;
 | 
						|
    loop
 | 
						|
        x 0 eq ptr* 0 eq or breakif;
 | 
						|
        (ptr*)puts;
 | 
						|
        x 1 - x=:;
 | 
						|
        ptr 4+ ptr=:;
 | 
						|
    end
 | 
						|
endfn
 |