Kontrola typů: Příklad 1/3
45/69
Pravidlo: F ® i {F.type := i.type;
  generate(:=, i.loc, ,F.loc) }
Pravidlo: Fi ® (Ej) {Fi.type := Ej .type}
• Vytvořme kontrolu typů pro následující gramatiku:
• Gexpr1 = (N, T, P, E), kde N = {E, F, T}, T = {i, +, *, (, )},
  P = { E ® E+T, E ® T, T ® T*F, T ® F, F ® (E), F ® i }
• Operatory *, + jsou definovány:
Pravidlo: Ti ® Fj  {Ti.type := Fj .type}
Pravidlo: Ei ® Tj  {Ei.type := Tj .type}
• int   * int   ®  int
• int   + int   ®  int
• real * real ®  real
• real + real ®  real
Možné konverze:
• Z int na real