edu.mit.ai.psg.jeva.examples
Class TraceEvalHookBase

java.lang.Object
  |
  +--edu.mit.ai.psg.jeva.JevaVisitorBase
        |
        +--edu.mit.ai.psg.jeva.examples.TraceEvalHookBase
Direct Known Subclasses:
TraceAllEvalHook

public abstract class TraceEvalHookBase
extends JevaVisitorBase

TraceEvalHookBase.java provides indented printing for trace output.

Call trace(IJevaNode, Object) from the visit method of the type(s) of node you want traced (default is to trace all nodes: visit(IJevaNode, Object)). Subclasses override visit methods to specify which nodes they want traced.

trace(IJevaNode, Object) will set up a printwriter with the appropriate indenting, and calls indentedTrace(PrintWriter, IJevaNode, Object). Subclasses can override this trace method to specify how they want the node to print out.

Default output stream is System.err.


Constructor Summary
TraceEvalHookBase()
           
TraceEvalHookBase(PrintWriter pw)
           
 
Method Summary
abstract  Object indentedTrace(PrintWriter pw, IJevaNode node, Object data)
          Override this method to customize how to print out node.
 Object trace(IJevaNode node, Object data)
          prints out "->" on calls, and "<-" on results, and calls indentedTrace(PrintWriter, IJevaNode, Object) with an appropriately indenting printwriter.
 Object visit(IJevaNode node, Object data)
          default method: trace all nodes.
 
Methods inherited from class edu.mit.ai.psg.jeva.JevaVisitorBase
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TraceEvalHookBase

public TraceEvalHookBase()

TraceEvalHookBase

public TraceEvalHookBase(PrintWriter pw)
Method Detail

visit

public Object visit(IJevaNode node,
                    Object data)
default method: trace all nodes. To trace less, override this method with one that simply return null;, and override the methods for the nodes you want to trace to just call return trace(node, data);
Overrides:
visit in class JevaVisitorBase

trace

public Object trace(IJevaNode node,
                    Object data)
prints out "->" on calls, and "<-" on results, and calls indentedTrace(PrintWriter, IJevaNode, Object) with an appropriately indenting printwriter.

indentedTrace

public abstract Object indentedTrace(PrintWriter pw,
                                     IJevaNode node,
                                     Object data)
Override this method to customize how to print out node.

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-feedback@ai.mit.edu