/* OP.PTN: Operator application: 0-4 argument operators */ -exports("apply") apply(op,as) { ? op ?= {":",mod,call}, char(mod) -> { ? call ?= {name}, char(name) -> { ? as ?= {} -> {; `mod`:`name`() }, as ?= {a} -> {; `mod`:`name`(a) }, as ?= {a1,a2} -> {; `mod`:`name`(a1,a2) }, as ?= {a1,a2,a3} -> {; `mod`:`name`(a1,a2,a3) }, as ?= {a1,a2,a3,a4} -> {; `mod`:`name`(a1,a2,a3,a4) }, default -> {; co_msg:error_message("Error: ptn_op:apply(): bad argument tuple (0-arity call)\n", {}) } }, call ?= {name,arg}, char(name) -> { ? as ?= {} -> {; `mod`:`name`(arg) }, as ?= {a} -> {; `mod`:`name`(arg,a) }, as ?= {a1,a2} -> {; `mod`:`name`(arg,a1,a2) }, as ?= {a1,a2,a3} -> {; `mod`:`name`(arg,a1,a2,a3) }, as ?= {a1,a2,a3,a4} -> {; `mod`:`name`(arg,a1,a2,a3,a4) }, default -> {; co_msg:error_message("Error: ptn_op:apply(): bad argument tuple (1-arity call)\n", {}) } }, default -> {; co_msg:error_message("Error: ptn_op:apply(): bad call argument\n", {}) } }, default -> {; co_msg:error_message("Error: ptn_op:apply(): bad op argument\n", {}) } }