001 package escjava.vcGeneration;
002
003 // %Type * %Type -> boolean
004 abstract class TTypeOp extends TBoolRes {
005
006 protected void typeTree(){
007
008 /*
009 * Semantic control : each son should have type '$Type'
010 */
011
012 for(int i = 0; i <= sons.size() - 1; i++){
013 TNode nodeTemp = getChildAt(i);
014
015 if(nodeTemp.type != null) {
016 if(!nodeTemp.type.equals(_Type)) {
017 System.err.println("*** Typecheck error in the tree of ifpvc");
018
019 /*
020 * Print all sons
021 */
022 System.err.println("Node : "+this.toString());
023 System.err.println("should have all sons with type _Type");
024 System.err.println("List of sons :");
025
026 for(int j = 0; j <= sons.size() - j; j++)
027 System.err.println("Node : "+getChildAt(j).toString());
028 }
029 }
030 else // type has not been set, setting it
031 nodeTemp.setType("%Type", true);
032
033 nodeTemp.typeTree();
034 }
035
036 }
037 }
038