procedure main() ops := "+-*/"; ws := ' \t' while stk := [] & line := " " || read() || " " do { line ? while tab(many(ws)) & x:=tab(upto(ws)) do { put(stk,real(x)) | (1=*x & find(x,ops) & t:=pull(stk) & put(stk,proc(x,2)(pull(stk),t))) | (write("error") & break next) } write((1=*stk & pull(stk)) | "error") } end