gnu.expr
Interface CanInline

All Known Implementing Classes:
AddOp, AncestorAxis, AncestorOrSelfAxis, AppendValues, ApplyToArgs, ArithOp, AttributeAxis, BooleanValue, CastableAs, CastAs, ChildAxis, Compare, ConstantFunction0, Convert, DescendantAxis, DescendantOrSelfAxis, DivideOp, FollowingAxis, FollowingSiblingAxis, GetNamedInstancePart, GetNamedPart, InstanceOf, Invoke, IsEqv, MakeProcedure, MakeUnescapedData, map, MultiplyOp, NumberCompare, OrderedMap, ParentAxis, PrecedingAxis, PrecedingSiblingAxis, RelativeStep, SelfAxis, SetNamedPart, Setter, SlotGet, SlotSet, TreeScanner, TypeSwitch, ValuesFilter, ValuesMap

public interface CanInline

Inline an application, at the Expression level. In contrast, Inlineable is done at code generation time.


Method Summary
 Expression inline(ApplyExp exp, InlineCalls walker, boolean argsInlined)
          Inline an application of this Procedure and return result.
 

Method Detail

inline

Expression inline(ApplyExp exp,
                  InlineCalls walker,
                  boolean argsInlined)
Inline an application of this Procedure and return result. Unless argsInlined is true, then this method is responsible for walking exp.getArgs(); you can handle this using exp.getArgs(walker, argsInlined). (The exp.getFunction() has been walked, regardless.)

Parameters:
argsInlined - true if the arguments have been inlined. Can return original expression.