P --> D ; E D --> D ; D | id : T T --> list of T | char | integer E --> ( L ) | literal | num | id L --> E , L | EWrite translation rules to determine the types of expressions (E) and lists (L).
a) c: char; i: integer
c mod i mod e
b) p : ^ integer; a: array[10] of integer;
a[p^]
c) f: integer --> boolean
i: integer; j: integer; k: integer;
while F(i) do
k := i;
i := j mod i;
j := k;