edu.mit.ai.psg.jeva.examples
Class TraceCallsEvalHook
java.lang.Object
|
+--edu.mit.ai.psg.jeva.JevaVisitorBase
|
+--edu.mit.ai.psg.jeva.examples.TraceEvalHookBase
|
+--edu.mit.ai.psg.jeva.examples.TraceAllEvalHook
|
+--edu.mit.ai.psg.jeva.examples.TraceCallsEvalHook
- public class TraceCallsEvalHook
- extends TraceAllEvalHook
TraceCallsEvalHook.java
traces only method call expressions.
This version only works on single threaded programs.
Output defaults to System.err.
It produce traces of the following form:
->System.out.println("result: "+fib(5))
| ->fib(5)
| | ->fib(n-2)
| | | {n=5}
| | | ->fib(n-2)
| | | | {n=3}
| | | <- 1
| | | ->fib(n-1)
| | | | {n=3}
| | | <- 1
| | <- 2
| | ->fib(n-1)
| | | {n=5}
| | | ->fib(n-2)
| | | | {n=4}
| | | <- 1
| | | ->fib(n-1)
| | | | {n=4}
| | | | ->fib(n-2)
| | | | | {n=3}
| | | | <- 1
| | | | ->fib(n-1)
| | | | | {n=3}
| | | | <- 1
| | | <- 2
| | <- 3
| <- 5
result: 5
<- null
| 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 |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
TraceCallsEvalHook
public TraceCallsEvalHook()
TraceCallsEvalHook
public TraceCallsEvalHook(PrintWriter pw)
visit
public Object visit(IJevaNode node,
Object data)
- Override default to not trace
- Overrides:
- visit in class TraceEvalHookBase
visit
public Object visit(JNEMethodInvocationExpression node,
Object data)
- Cause trace on method invocations
- Overrides:
- visit in class JevaVisitorBase
indentedTrace
public Object indentedTrace(PrintWriter pw,
IJevaNode node,
Object data)
- Don't trace before subexpressions evaluated
- Overrides:
- indentedTrace in class TraceAllEvalHook
main
public static void main(String[] ignore)
- test