Class SequenceRule

  • All Implemented Interfaces:
    GrammaticalRuleI, GrammarMatcher, java.io.Serializable
    Direct Known Subclasses:
    SequenceSeparatorRule

    public class SequenceRule
    extends java.lang.Object
    implements GrammaticalRuleI
    Parses a sequence of statements
     <SequenceRule> ::=
            (<statement>)*
     
    A successful parses will return a SequenceNode with one child per statement. If there is only one child then just that child will be parsed.
    Author:
    Richard Morris
    See Also:
    Serialized Form
    • Constructor Detail

      • SequenceRule

        public SequenceRule​(GrammaticalRuleI statement)
        Parameters:
        statement - rule to parse individual statements
    • Method Detail

      • match

        public Node match​(Lookahead2Iterator<Token> it,
                          SymbolToken end,
                          GrammarParser parser)
                   throws ParseException
        Repeatedly parse statements until end token is encountered or end of input
        Parameters:
        it - the input list of tokens
        end - symbol marking end of sequence
        parser - parser to parse individual statements
        Returns:
        a SequenceNode
        Throws:
        ParseException - if input cannot be parsed
      • init

        public void init​(Jep jep)
        Description copied from interface: GrammarMatcher
        Delayed initialisation, this methods is called whenever components of the jep instance are changed.
        Specified by:
        init in interface GrammarMatcher
        Parameters:
        jep - the current jep instance.