|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--edu.mit.ai.psg.jeva.JevaVisitorBase
|
+--edu.mit.ai.psg.jeva.examples.TraceEvalHookBase
|
+--edu.mit.ai.psg.jeva.examples.TraceAllEvalHook
TraceAllEvalHook.java traces evaluation by printing out the source of each java construct and the values of its free variables. 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;
| }
| ->i < 1
| | {i=0}
| | 0 < 1
| <-true
| for (int i = 0; true; i++) {
| break;
| }
| ->{
| | break;
| | }
| | ->break;
| | <-break
| <-break
<-
| Constructor Summary | |
TraceAllEvalHook()
|
|
TraceAllEvalHook(PrintWriter pw)
|
|
| Method Summary | |
Object |
indentedTrace(PrintWriter iw,
IJevaNode node,
Object data)
Calls TraceMethods.traceSource(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object) and
TraceMethods.traceFreeNames(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object) before node is evaluated,
TraceMethods.traceApplications(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object) after subexpressions are
evaluated, and TraceMethods.tracePostData(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object)
after node completes. |
static void |
main(String[] ignore)
|
Object |
visit(JNELiteralExpression node,
Object data)
An override to avoid tracing literals |
Object |
visit(JNName node,
Object data)
An override to avoid tracing simple names, but still trace field accesses |
| Methods inherited from class edu.mit.ai.psg.jeva.examples.TraceEvalHookBase |
trace,
visit |
| 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 |
public TraceAllEvalHook()
public TraceAllEvalHook(PrintWriter pw)
| Method Detail |
public Object visit(JNELiteralExpression node,
Object data)
public Object visit(JNName node,
Object data)
public Object indentedTrace(PrintWriter iw,
IJevaNode node,
Object data)
TraceMethods.traceSource(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object) and
TraceMethods.traceFreeNames(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object) before node is evaluated,
TraceMethods.traceApplications(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object) after subexpressions are
evaluated, and TraceMethods.tracePostData(java.io.PrintWriter, edu.mit.ai.psg.jeva.IJevaNode, java.lang.Object)
after node completes.public static void main(String[] ignore)
|
Copyright (c) 1996-1999 Massachusetts Institute of Technology Feedback: jeva-feedback@ai.mit.edu |
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||