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
| 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 |
TraceAllEvalHook
public TraceAllEvalHook()
TraceAllEvalHook
public TraceAllEvalHook(PrintWriter pw)
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