Class LazyParser<T>

java.lang.Object
proguard.classfile.attribute.signature.parsing.LazyParser<T>
Type Parameters:
T - The return type of the parser.
All Implemented Interfaces:
Parser<T>

public final class LazyParser<T> extends Object implements Parser<T>
Lazily initialized parser. Used to avoid problems with recursive definitions of grammar.
  • Constructor Details

    • LazyParser

      public LazyParser()
  • Method Details

    • setDelegate

      public void setDelegate(Parser<T> delegate)
      Configure with the parser that all calls will be forwarded to.
    • parse

      @Nullable public T parse(ParserContext context)
      Description copied from interface: Parser
      The core of the parsing logic. The context argument specifies where in the input string we are currently parsing. The responsibility of this function is to do one of:
      • Consume a part of the input and return a non-null value.
      • Return null and keep the input context untouched. This can be achieved either by avoiding the calls to ParserContext.advance(int), or through the use of snapshotting (see ParserContext.snapshot()).
      Specified by:
      parse in interface Parser<T>
      Parameters:
      context - Context of the parser containing the parsed string and the position in that string.
      Returns:
      Null-value if this parser did not match anything. Non-null if it matched.