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

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

public class TraceCallsEvalHook
extends TraceAllEvalHook

TraceCallsEvalHook 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

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

Inner classes inherited from class edu.mit.ai.psg.jeva.examples.TraceAllEvalHook
TraceAllEvalHook.FreeSimpleNamesCollector
 
Constructor Summary
TraceCallsEvalHook()
           
TraceCallsEvalHook(PrintWriter pw)
           
 
Method Summary
static void main(String[] ignore)
          test
 Object visit(IJevaNode node, Object data)
          Override default to not trace
 Object visit(JNEMethodInvocationExpression node, Object data)
          Cause trace on method invocations
 
Methods inherited from class edu.mit.ai.psg.jeva.examples.TraceAllEvalHook
trace, visit, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TraceCallsEvalHook

public TraceCallsEvalHook()

TraceCallsEvalHook

public TraceCallsEvalHook(PrintWriter pw)
Method Detail

visit

public Object visit(IJevaNode node,
                    Object data)
Override default to not trace
Overrides:
visit in class TraceAllEvalHook

visit

public Object visit(JNEMethodInvocationExpression node,
                    Object data)
Cause trace on method invocations
Overrides:
visit in class JevaVisitorBase

main

public static void main(String[] ignore)
test

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-bugs@ai.mit.edu