com.singularsys.jep.walkers

## Class PrefixTreeWalker

- java.lang.Object
- - com.singularsys.jep.walkers.PrefixTreeWalker

- Direct Known Subclasses:
    PrefixTreeDumper

      public abstract class PrefixTreeWalker
      extends java.lang.Object

  Base class for routines which use a non recursive tree walker strategy. The typical recursive strategy can use a lot of stack frames for very large expressions these can cause a stack overflow exception. Subclasses should implement the visit methods of `ParserVisitor` to traverse the various nodes. In general these methods should not recursively walk the child nodes. This class uses a prefix traversal scheme hence the nodes of '1+2' will be visited in the order +,1,2.
  Author:
    Richard Morris
  See Also:
    `PostfixTreeWalker`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrefixTreeWalker()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | `visit(ASTConstant node, int nchildren, int depth1)`
    `protected abstract void` | `visit(ASTFunNode node, int nchildren, int depth1)`
    `protected abstract void` | `visit(ASTOpNode node, int nchildren, int depth1)`
    `protected abstract void` | `visit(ASTVarNode node, int nchildren, int depth1)`
    `void` | `walk(Node top)` Uses a non-recursive method to traverse the tree under the node 'top'.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PrefixTreeWalker

          public PrefixTreeWalker()

  - ### Method Detail

    - #### walk

          public void walk(Node top)
                    throws JepException

      Uses a non-recursive method to traverse the tree under the node 'top'.
      Parameters:
        `top` - the top node of the parse tree.
      Throws:
        `JepException`

    - #### visit

          protected abstract void visit(ASTFunNode node,
                                        int nchildren,
                                        int depth1)
                                 throws JepException

      Throws:
        `JepException`

    - #### visit

          protected abstract void visit(ASTOpNode node,
                                        int nchildren,
                                        int depth1)
                                 throws JepException

      Throws:
        `JepException`

    - #### visit

          protected abstract void visit(ASTVarNode node,
                                        int nchildren,
                                        int depth1)
                                 throws JepException

      Throws:
        `JepException`

    - #### visit

          protected abstract void visit(ASTConstant node,
                                        int nchildren,
                                        int depth1)
                                 throws JepException

      Throws:
        `JepException`

Copyright © 2018 Singular Systems http://www.singularsys.com/jep