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


Constructor Summary
TraceCallsEvalHook()
           
TraceCallsEvalHook(PrintWriter pw)
           
 
Method Summary
 Object indentedTrace(PrintWriter pw, IJevaNode node, Object data)
          Don't trace before subexpressions evaluated
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
visit, visit
 
Methods inherited from class edu.mit.ai.psg.jeva.examples.TraceEvalHookBase
trace
 
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 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

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-feedback@ai.mit.edu