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