001: 002: type string: 1 -> character 003: type BooleanXBoolean: [Boolean: x; Boolean: y] 004: type characterXcharacter: [character: x; character: y] 005: type integerXinteger: [integer: x; integer: y] 006: 007: type Boolean2Boolean: Boolean -> Boolean 008: type integer2integer: integer -> integer 009: type character2integer: character -> integer 010: type Boolean2integer: Boolean -> integer 011: type string2integer: string -> integer 012: type integerXinteger2integer: integerXinteger -> integer 013: type integerXinteger2Boolean: integerXinteger -> Boolean 014: type characterXcharacter2Boolean: characterXcharacter -> Boolean 015: type BooleanXBoolean2Boolean: BooleanXBoolean -> Boolean 016: type integer2address: integer -> address 017: type address2integer: address -> integer 018: type integer2string: integer -> string 019: type integer2character: integer -> character 020: type integer2Boolean: integer -> Boolean 021: 022: 023: external function printInteger: integer2integer 024: external function printCharacter: character2integer 025: external function printBoolean: Boolean2integer 026: 027: external function printS: string2integer 028: external function printI: integer2integer 029: external function printC: character2integer 030: external function printB: Boolean2integer 031: 032: external function inS: integer2string 033: external function inI: integer2integer 034: external function inC: integer2character 035: 036: function entry: string2integer 037: 038: type rec: [integer: x; integer: y; integer: z; integer: a; integer: b; integer: c; integer: d] 039: type T2: rec -> integer 040: type T: integer -> integer 041: function bar: T2 042: function ahh: T 043: 044: ahh (a) := { 045: a := printInteger(a); 046: return -1; 047: } 048: 049: bar (a, b, c,d,e,f,g) := { 050: a := printInteger(g); 051: return b; 052: } 053: 054: entry (arg) := { 055: [integer:x; integer:y; integer: result; character: a] 056: a := 'a'; 057: x := printCharacter(a); 058: result := bar(1,2,3,4,5,6,7); 059: return 1; 060: }