class interface UT_MESSAGE creation make (msg: STRING) -- Create a new message object. require msg_not_void: msg /= Void feature(s) from KL_SHARED_ARGUMENTS -- Access Arguments: KL_ARGUMENTS -- Command-line arguments ensure arguments_not_void: Result /= Void feature(s) from KL_IMPORTED_STRING_ROUTINES -- Access STRING_: KL_STRING_ROUTINES -- Routines that ought to be in class STRING ensure string_routines_not_void: Result /= Void feature(s) from KL_IMPORTED_ARRAY_ROUTINES -- Access ANY_ARRAY_: KL_ARRAY_ROUTINES[ANY] -- Routines that ought to be in class ARRAY ensure any_array_routines_not_void: Result /= Void INTEGER_ARRAY_: KL_ARRAY_ROUTINES[INTEGER] -- Routines that ought to be in class ARRAY ensure integer_array_routines_not_void: Result /= Void STRING_ARRAY_: KL_ARRAY_ROUTINES[STRING] -- Routines that ought to be in class ARRAY ensure string_array_routines_not_void: Result /= Void feature(s) from UT_ERROR -- Access message (a_template: STRING): STRING -- Error message built using a_template; -- Occurrences of "$N" or "${N}" (where N stands -- for [0-9]+) in the template are substituted by -- the entry N in parameters or left as "$N" -- or "${N}" if N is out of bounds, unless it is -- equal to 0 in which case it is substituted by -- the program name. The character '$' is escaped -- using "$$". Return a new string each time. require a_template_not_void: a_template /= Void ensure message_not_void: Result /= Void parameters: ARRAY[STRING] -- Parameters used for building the error message -- (See header comment of message for details.) default_message: STRING -- Default error message built using default_template ensure default_message_not_void: Result /= Void default_template: STRING -- Default template used to built the error message code: STRING -- Error code invariant -- dollar0: $0 = program name -- dollar1: $1 = message parameters_not_void: parameters /= Void; no_void_parameter: not STRING_ARRAY_.has(parameters,Void); end of UT_MESSAGE