Google Data APIs Client Library (1.41.1)



com.google.gdata.util.parser
Class Intersection<T>

java.lang.Object
  extended by com.google.gdata.util.parser.Parser<T>
      extended by com.google.gdata.util.parser.Intersection<T>
Type Parameters:
T -

public class Intersection<T>
extends Parser<T>

The Intersection parser provides one of the more powerful pieces of functionality in the parser framework. It returns a successful match only if both the left and right sub-parsers match. Additionally, the amount of parse data passed to the right parser is restricted to the size of the match for the left parser. This allows certain types of recursively defined grammars to be more easily specified. Note that this definition of intersection is not the same as a set-theoretic definition. In particular, this definition is not commutative. Parser i = Parser.intersection(Chset.ALPHA.plus(), Chset.ALNUM.plus()); i.parse("a", null) -> matches "a" i.parse("a1", null) -> matches "a" Parser j = Parser.intersection(Chset.ALNUM.plus(), Chset.ALPHA.plus()); j.parse("a", null) -> matches "a" j.parse("a1", null) -> no match, because ALNUM+ matches "a1" which doesn't match ALPHA+

See Also:
Parser

Field Summary
 
Fields inherited from class com.google.gdata.util.parser.Parser
NO_MATCH
 
Constructor Summary
Intersection(Parser<? super T> left, Parser<? super T> right)
          Class constructor.
 
Method Summary
 int parse(char[] buf, int start, int end, T data)
          Matches the prefix of the buffer (buf[start,end)) being parsed against the left and right sub-parsers.
 
Methods inherited from class com.google.gdata.util.parser.Parser
action, alternative, difference, intersection, list, optional, parse, parse, parse, plus, repeat, repeat, sequence, sequence, sequence, sequence, star
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Intersection

public Intersection(Parser<? super T> left,
                    Parser<? super T> right)
Class constructor.

Parameters:
left - The Parser that is first matched against the parse buffer. It restricts the region of the parse buffer that is matched against the right parser.
right - The Parser that is matched against the parse buffer if the left parses has already matched.
Method Detail

parse

public int parse(char[] buf,
                 int start,
                 int end,
                 T data)
Matches the prefix of the buffer (buf[start,end)) being parsed against the left and right sub-parsers.

Specified by:
parse in class Parser<T>
Parameters:
buf - The character array to match against.
start - The start offset of data within the character array to match against.
end - The end offset of data within the character array to match against.
data - User defined object that is passed to Callback.handle when an Action fires.
See Also:
Parser.parse(char[], int, int, T)