INTERFACE Material; (* Physical properties of materials *) IMPORT ParseParams; TYPE T = RECORD name: Name; density, alpha, beta, eta1, eta2: LONGREAL END; List = ARRAY OF T; Num = CARDINAL; (* Index in a "List" *) Name = TEXT; CONST None = LAST(CARDINAL); (* A NIL value for "Num" *) PROCEDURE Find(READONLY mat: List; name: Name): Num; (* Looks for "name" in the given list. If it doesn't occur, returns "None" *) CONST OptionsHelp = "density NUM elasticity ALPHA BETA viscosity ETA1 ETA2"; PROCEDURE ParseOptions(pp: ParseParams.T): T RAISES{ParseParams.Error}; (* Parses a material description from the command line, according to the syntax described in the "OptionsHelp" text above. *) END Material.