# Copyright 2005-2007 Kevin Reid, under the terms of the MIT X license # found at http://www.opensource.org/licenses/mit-license.html ................ pragma.syntax("0.9") def makeException :DeepFrozen := def defineException implements DeepFrozen, ExitViaHere { to run(typeIDs :List[String], printer :DeepFrozen) { def cprinter :DeepFrozen := {def cprinter(tw :TextWriter, exception) implements DeepFrozen { printer(tw, exception._getProperties()) }} def exceptionDefinition implements DeepFrozen { to run(properties :Map[String, any]) { return makeException(typeIDs, properties, cprinter) } } return exceptionDefinition } }