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