Class Parser

  • Direct Known Subclasses:
    JavaParser, ParseUtils.DebugParser

    public class Parser
    extends java.lang.Object
    A class to parse a given input (string) using given rule(s).
    • Constructor Detail

      • Parser

        public Parser()
        Creates a new Parser.
      • Parser

        public Parser​(ParseRule aRule)
        Creates a new Parser for given rule.
    • Method Detail

      • getRule

        public ParseRule getRule()
        Returns the top level rule.
      • setRule

        public void setRule​(ParseRule aRule)
        Sets the top level rule.
      • createRule

        protected ParseRule createRule()
        Creates the top level rule.
      • getInput

        public java.lang.CharSequence getInput()
        Returns the current parse character input.
      • setInput

        public Parser setInput​(java.lang.CharSequence aSequence)
        Sets the current parse string.
      • getTokenizer

        public Tokenizer getTokenizer()
        Returns the tokenizer.
      • createTokenizer

        protected Tokenizer createTokenizer()
        Creates the tokenizer instance and initializes patters from rule.
      • createTokenizerImpl

        protected Tokenizer createTokenizerImpl()
        Creates the tokenizer instance.
      • setTokenizer

        protected void setTokenizer​(Tokenizer aTokenizer)
        Sets the tokenizer.
      • getToken

        public Token getToken()
        Returns the current token.
      • getNextToken

        @Nonnull
        protected Token getNextToken()
        Fetches and returns the next token.
      • getLookAheadToken

        protected Token getLookAheadToken​(int anIndex)
        Returns the look ahead token at given index.
      • parse

        public ParseNode parse()
        Parses input and returns ParseNode.
      • parseCustom

        public <T> T parseCustom​(java.lang.Class<T> aClass)
        Parses input and returns custom parse tree node.
      • createNode

        protected ParseNode createNode​(ParseRule aRule,
                                       Token aStartToken,
                                       Token anEndToken)
        Creates a node for given rule and start/end tokens (returns a shared node by default).
      • lookAhead

        protected int lookAhead​(ParseRule aRule,
                                int aLookAhead,
                                int aTokenIndex,
                                int aPathIndex,
                                int aRuleIndex)
        Returns a parse node if this rule matches string.
      • parse

        public ParseNode parse​(java.lang.CharSequence anInput)
        Parses a given input and returns ParseNode (convenience).
      • parseCustom

        public <T> T parseCustom​(java.lang.CharSequence anInput,
                                 java.lang.Class<T> aClass)
        Parses given input and returns custom parse tree node (convenience).