📄 binaryexpression.as
字号:
package flare.query
{
/**
* Base class for binary expression operators.
*/
public class BinaryExpression extends Expression
{
/** Code indicating the operation perfomed by this instance. */
protected var _op:int;
/** The left-hand-side sub-expression. */
protected var _left:Expression;
/** The right-hand-side sub-expression. */
protected var _right:Expression;
/** Code indicating the operation performed by this instance. */
public function get operator():int { return _op; }
public function set operator(op:int):void { _op = op; }
/** String representation of the operation performed by this
* instance. */
public function get operatorString():String { return null; }
/** The left-hand-side sub-expression. */
public function get left():Expression { return _left; }
public function set left(l:*):void {
_left = Expression.expr(l);
}
/** The right-hand-side sub-expression. */
public function get right():Expression { return _right; }
public function set right(r:*):void {
_right = Expression.expr(r);
}
/**
* @inheritDoc
*/
public override function get numChildren():int {
return 2;
}
// --------------------------------------------------------------------
/**
* Creates a new BinaryExpression.
* @param op the operation code
* @param minOp the minimum legal operation code
* @param maxOp the maximum legal operation code
* @param left the left-hand-side sub-expression
* @param right the right-hand-side sub-expression
*/
public function BinaryExpression(op:int, minOp:int, maxOp:int,
left:*, right:*)
{
// operation check
if (op < minOp || op > maxOp) {
throw new ArgumentError("Unknown operation type: " + op);
}
// null check
if (left == null || right == null) {
throw new ArgumentError("Expressions must be non-null.");
}
_op = op;
this.left = left;
this.right = right;
}
/**
* @inheritDoc
*/
public override function getChildAt(idx:int):Expression
{
switch (idx) {
case 0: return _left;
case 1: return _right;
default: return null;
}
}
/**
* @inheritDoc
*/
public override function setChildAt(idx:int, expr:Expression):Boolean
{
switch (idx) {
case 0: _left = expr; return true;
case 1: _right = expr; return true;
default: return false;
}
}
/**
* @inheritDoc
*/
public override function toString():String
{
return '(' + _left.toString() +' '
+ operatorString +' '
+ _right.toString()+')';
}
} // end of class BinaryExpression
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -