1 16 19 20 package com.sun.org.apache.xalan.internal.xsltc.compiler; 21 22 import java.util.Vector ; 23 24 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator; 25 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator; 26 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type; 27 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError; 28 29 33 final class BooleanCall extends FunctionCall { 34 35 private Expression _arg = null; 36 37 public BooleanCall(QName fname, Vector arguments) { 38 super(fname, arguments); 39 _arg = argument(0); 40 } 41 42 public Type typeCheck(SymbolTable stable) throws TypeCheckError { 43 _arg.typeCheck(stable); 44 return _type = Type.Boolean; 45 } 46 47 public void translate(ClassGenerator classGen, MethodGenerator methodGen) { 48 _arg.translate(classGen, methodGen); 49 final Type targ = _arg.getType(); 50 if (!targ.identicalTo(Type.Boolean)) { 51 _arg.startIterator(classGen, methodGen); 52 targ.translateTo(classGen, methodGen, Type.Boolean); 53 } 54 } 55 } 56 | Popular Tags |