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

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

public class TraceAllEvalHook
extends JevaVisitorBase

TraceAllEvalHook traces evaluation of each java construct. This version only works on single threaded programs. Output defaults to System.err. (note: requires edu.mit.ai.psg.strings). It produce traces of the following form:

->for (int i = 0; i < 1; i++) {
|   break;
| }
| ->0
| <-0
| ->i < 1
| | {i=0}
| | ->i
| | <-0
| | ->1
| | <-1
| <-true
| ->{
| |   break;
| | }
| | ->break;
| | <-break
| <-break
<-

Author:
CarlManning, caroma@ai.mit.edu
Copyright (c) 1999 Massachusetts Institute of Technology

Inner Class Summary
static class TraceAllEvalHook.FreeSimpleNamesCollector
          Collect free simple names in node
 
Constructor Summary
TraceAllEvalHook()
           
TraceAllEvalHook(PrintWriter pw)
           
 
Method Summary
static void main(String[] ignore)
          test
 Object trace(IJevaNode node, Object data)
          trace: prints out "->[node]" on calls, and "<-[result]" on results.
 Object visit(IJevaNode node, Object data)
          default method: trace all nodes.
 Object visit(JNELiteralExpression node, Object data)
          Doesn't trace literals
 Object visit(JNName node, Object data)
          Doesn't trace simple names
 
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TraceAllEvalHook

public TraceAllEvalHook()

TraceAllEvalHook

public TraceAllEvalHook(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

visit

public Object visit(JNELiteralExpression node,
                    Object data)
Doesn't trace literals
Overrides:
visit in class JevaVisitorBase

visit

public Object visit(JNName node,
                    Object data)
Doesn't trace simple names
Overrides:
visit in class JevaVisitorBase

trace

public Object trace(IJevaNode node,
                    Object data)
trace: prints out "->[node]" on calls, and "<-[result]" on results. keeps track of calls and results and indents appropriately.

main

public static void main(String[] ignore)
test

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-bugs@ai.mit.edu