procedure main() local line defs := table() while line := read() do (define | generate | diagnose)(line) end procedure diagnose(s) write("**** erroneous input: ",s) return end