1 16 19 20 package org.apache.xalan.xsltc.compiler; 21 22 import java.util.Vector ; 23 24 import org.apache.bcel.generic.BranchHandle; 25 import org.apache.bcel.generic.GOTO; 26 import org.apache.bcel.generic.InstructionList; 27 import org.apache.xalan.xsltc.compiler.util.ClassGenerator; 28 import org.apache.xalan.xsltc.compiler.util.MethodGenerator; 29 30 34 final class NotCall extends FunctionCall { 35 public NotCall(QName fname, Vector arguments) { 36 super(fname, arguments); 37 } 38 39 public void translate(ClassGenerator classGen, MethodGenerator methodGen) { 40 final InstructionList il = methodGen.getInstructionList(); 41 argument().translate(classGen, methodGen); 42 il.append(ICONST_1); 43 il.append(IXOR); 44 } 45 46 public void translateDesynthesized(ClassGenerator classGen, 47 MethodGenerator methodGen) { 48 final InstructionList il = methodGen.getInstructionList(); 49 final Expression exp = argument(); 50 exp.translateDesynthesized(classGen, methodGen); 51 final BranchHandle gotoh = il.append(new GOTO(null)); 52 _trueList = exp._falseList; _falseList = exp._trueList; 54 _falseList.add(gotoh); 55 } 56 } 57 | Popular Tags |