|
|
1.1 ! root 1: procedure main() ! 2: while write(fix(read())) ! 3: end ! 4: ! 5: procedure fix(exp) ! 6: while exp ?:= 2(="(",tab(bal(')')),pos(-1)) ! 7: return lassoc(exp,'+-' | '*/') | rassoc(exp,'^') | exp ! 8: end ! 9: ! 10: procedure lassoc(exp,op) ! 11: local j ! 12: return exp ? { ! 13: every j := bal(op) ! 14: form(tab(\j),move(1),tab(0)) ! 15: } ! 16: end ! 17: ! 18: procedure rassoc(exp,op) ! 19: return exp ? form(tab(bal(op)),move(1),tab(0)) ! 20: end ! 21: ! 22: procedure form(arg1,op,arg2) ! 23: return op || "(" || fix(arg1) || "," || fix(arg2) || ")" ! 24: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.