final CellIndex cell = ((ExpressionNodeForCell) _exprDef).getCellIndex();
return buildExpressionModelForCell( cell );
}
else if (_exprDef instanceof ExpressionNodeForRangeShape) {
final ExpressionNode expressionNode = _exprDef.arguments().get( 0 );
final CellRange range;
if (expressionNode instanceof ExpressionNodeForRange) {
range = ((ExpressionNodeForRange) expressionNode).getRange();
}
else if (expressionNode instanceof ExpressionNodeForCell) {
range = ((ExpressionNodeForCell) expressionNode).getCellIndex();
}
else {
throw new IllegalArgumentException();
}
return new RangeExpressionBuilder( range, true ).build();
}
else if (_exprDef instanceof ExpressionNodeForRange) {
final CellRange range = ((ExpressionNodeForRange) _exprDef).getRange();
return new RangeExpressionBuilder( range, false ).build();
}
else {
final ExpressionNode result = _exprDef.cloneWithoutArguments();
for (ExpressionNode arg : _exprDef.arguments()) {