Typ-Prüfung als abstrakte Interpretation

Jedem Teilausdruck wird vor der Auswertung sein Typ zugeordnet. Das ist auch ein synthetisches Attribut!

enum Type { Number, Bool }
class Typecheck extends DepthFirstAdapter {
  public void outANumberExp(ANumberExp node) {
    setOut (node, Type.Number);
  }
  public void outAApplyExp(AApplyExp node) {
    String name = node.getIdentifier().getText();
    Function fun = defined.get(name);
    // vergleiche Argumenttypen
    setOut(node, fun.getResult());
  }
}



Johannes Waldmann 2006-02-02