harpoon.Tools.PatMat
Class Spec.RuleExp
java.lang.Object
harpoon.Tools.PatMat.Spec.Rule
harpoon.Tools.PatMat.Spec.RuleExp
- Enclosing class:
- Spec
public static class Spec.RuleExp
- extends Spec.Rule
Extension of Spec.Rule
that also contains a
Spec.Exp
to match Tree
expressions
and the identifier for the result that this
produces.
Spec.RuleExp
s match (sub)expressions in the code,
which is why it is necessary to associate a
result_id
: expression matching is context
sensitive, depending on what the outerlying expression or
statement is expecting the nested expression to return.
exp
public final Spec.Exp exp
- Expression
this
matches.
result_id
public final String result_id
- Identifier for return value of expression that
this
matches.
Spec.RuleExp
public Spec.RuleExp(Spec.Exp exp,
String result_id,
Spec.DetailList details,
String action_str)
- Constructs a new
Spec.RuleExp
.
requires:
action_str
is a series of valid Java
code statements.
effects:
constructs a new Spec.RuleExp
object with
associated Spec.Exp
,
result_id
, Spec.DetailList
,
and action to perform if this
fires.
- Parameters:
exp
- Spec.Exp
associated with
this
.result_id
- Tag identifying type of result that
this
produces.details
- List of extra details associated with
this
(speed-cost, size-cost,
predicates, etc.).action_str
- Series of Java code statements that
represent the action to perform if
this
fires.
accept
public void accept(Spec.RuleVisitor v)
- Description copied from class:
Spec.Rule
- Applies
v
's visit
method to
this
. This is effectively a gludge to
emulate multiple dispatch. Must be reimplemented
by all subclasses of Spec.Rule
.
effects: Calls v.visit(this)
.
- Specified by:
accept
in class Spec.Rule
- See Also:
- "Design Patterns pgs. 331-344"
toString
public String toString()
- Overrides:
toString
in class Spec.Rule