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