001    package escjava.vcGeneration;
002    
003    // int * int -> boolean
004    abstract class TIntOp extends TBoolRes {
005    
006        protected void typeTree(){
007    
008            /*
009             * Semantic control : each son should have type 'integer'
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(_integer)) {
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 integer");
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(_integer, true);
032    
033                nodeTemp.typeTree();
034                
035            }
036    
037        }
038    }
039