namespace; include rt; fn put_f(x) { asm { x @ #1220 } return 0; } fn sp() { rt.put_c(32); return 0; } struct cell { int tag; float field; } float g; float add(float a, float b) { return a + b; } float pick(cell* p) { return p.field; } fn main() { float x; float y; cell c; cell* q; float buf[1]; let w = 0; let z = 0.0 * -1.0; let n = 0; x = 1.5; y = 2; g = 10; put_f(add(x, y)); sp(); put_f(add(g, 0.5)); sp(); put_f(add(1, 2) + 0.5); sp(); c.tag = 4; c.field = 4.25; q = &c; put_f(pick(q)); sp(); put_f(q.field + 1); sp(); put_f(c.field); sp(); buf[0] = 6.5; put_f(buf[0]); sp(); rt.put_n(&(1.field)); sp(); w = (&c) as word; rt.put_n(w.tag); sp(); put_f(w.field); sp(); w.field = 8.5; put_f(c.field); sp(); rt.put_n(g > 3); sp(); if (z) n = 1; do { if (z) n = n + 2; } while (z); if (!z && g) n = n + 4; rt.put_n(n); rt.put_c(10); return 0; }