package org.nfunk.jep.function; import java.util.Stack; import org.nfunk.jep.ParseException; public class Logical extends PostfixMathCommand { int id; public static final int AND = 0; public static final int OR = 1; public Logical(int paramInt) { this.id = paramInt; this.numberOfParameters = 2; } public void run(Stack paramStack) throws ParseException { checkStack(paramStack); Number number1 = (Number)paramStack.pop(); Number number2 = (Number)paramStack.pop(); if (number2 instanceof Number && number1 instanceof Number) { boolean bool; double d1 = ((Number)number2).doubleValue(); double d2 = ((Number)number1).doubleValue(); switch (this.id) { case 0: bool = (d1 != 0.0D && d2 != 0.0D) ? true : false; break; case 1: bool = (d1 != 0.0D || d2 != 0.0D) ? true : false; break; default: bool = false; break; } paramStack.push(new Double(bool)); } else { throw new ParseException("Invalid parameter type"); } } }