/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.parser.expressions; import gw.lang.parser.expressions.IConditionalOrExpression; /** * Represents a conditional OR expression in the Gosu grammar: * <pre> * <i>conditional-or-expression</i> * <conditional-and-expression> * <conditional-or-expression> <b>||</b> <conditional-and-expression> * <conditional-and-expression> <b>or</b> <equality-expression> * </pre> * <p/> * * @see gw.lang.parser.IGosuParser */ public final class ConditionalOrExpression extends ConditionalExpression implements IConditionalOrExpression { /** * Performs a logical OR operation. Note this operation is naturally short- * circuited by using || in conjunction with postponing RHS evaluation. */ public Object evaluate() { if( !isCompileTimeConstant() ) { return super.evaluate(); } return (Boolean)getLHS().evaluate() || (Boolean)getRHS().evaluate(); } @Override public String toString() { return getLHS().toString() + "||" + getRHS().toString(); } }