org.parboiled.support
Class MatcherPath

java.lang.Object
  extended by org.parboiled.support.MatcherPath

public class MatcherPath
extends java.lang.Object

Holds a snapshot of the current Matcher stack at a certain point during the parsing process. Implemented as a specialized, immutable single-linked list of Element objects with the deepest stack Element in the first position and the root at the end.


Nested Class Summary
static class MatcherPath.Element
           
 
Field Summary
 MatcherPath.Element element
           
 MatcherPath parent
           
 
Constructor Summary
MatcherPath(MatcherPath.Element element, MatcherPath parent)
          Constructs a new MatcherPath wrapping the given elements.
 
Method Summary
 MatcherPath commonPrefix(MatcherPath that)
          Returns the common prefix of this MatcherPath and the given other one.
 boolean contains(Matcher matcher)
          Determines whether the given matcher is contained in this path.
 MatcherPath.Element getElementAtLevel(int level)
          Returns the Element at the given level.
 boolean isPrefixOf(MatcherPath that)
          Determines whether this path is a prefix of the given other path.
 int length()
           
 java.lang.String toString()
           
 java.lang.String toString(MatcherPath skipPrefix)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

element

public final MatcherPath.Element element

parent

public final MatcherPath parent
Constructor Detail

MatcherPath

public MatcherPath(MatcherPath.Element element,
                   MatcherPath parent)
Constructs a new MatcherPath wrapping the given elements. Normally you don't construct a MatcherPath directly but rather call Context.getPath() to get one.

Parameters:
element - the last element of this path
parent - the parent path
Method Detail

length

public int length()
Returns:
the length of this path, i.e. the number of matchers contained in it

isPrefixOf

public boolean isPrefixOf(MatcherPath that)
Determines whether this path is a prefix of the given other path.

Parameters:
that - the other path
Returns:
true if this path is a prefix of the given other path

getElementAtLevel

public MatcherPath.Element getElementAtLevel(int level)
Returns the Element at the given level.

Parameters:
level - the level to get the element from
Returns:
the element

commonPrefix

public MatcherPath commonPrefix(MatcherPath that)
Returns the common prefix of this MatcherPath and the given other one.

Parameters:
that - the other path
Returns:
the common prefix or null

contains

public boolean contains(Matcher matcher)
Determines whether the given matcher is contained in this path.

Parameters:
matcher - the matcher
Returns:
true if contained

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(MatcherPath skipPrefix)