com.varankin.bnf
Class TerminalString

java.lang.Object
  extended by com.varankin.bnf.TerminalString
All Implemented Interfaces:
SyntacticPrimary, java.lang.CharSequence
Direct Known Subclasses:
SpecialSequence

public class TerminalString
extends java.lang.Object
implements SyntacticPrimary, java.lang.CharSequence

A quote-symbol followed by a sequence of one or more terminal-characters followed by a quote-symbol.

Author:
© 2009 Nikolai Varankine

Field Summary
protected static java.util.Collection<java.lang.Character> QUOTES
          Collection of quotes eligible for terminal string.
 
Constructor Summary
  TerminalString(java.lang.Character aCharacter)
           
  TerminalString(java.lang.Character aQuote, java.lang.Character... aCharacters)
           
  TerminalString(java.lang.Character aQuote, java.lang.CharSequence aCharacters)
           
protected TerminalString(java.lang.Character aQuote, java.util.Collection<java.lang.Character> aQuotes, int aMin, java.lang.Character... aString)
           
protected TerminalString(java.lang.CharSequence aCharacters)
           
 
Method Summary
 char charAt(int index)
           
 int length()
           
 java.lang.CharSequence subSequence(int start, int end)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

QUOTES

protected static final java.util.Collection<java.lang.Character> QUOTES
Collection of quotes eligible for terminal string.

Constructor Detail

TerminalString

public TerminalString(java.lang.Character aQuote,
                      java.lang.Character... aCharacters)
Parameters:
aQuote - character used to quote specified string.
aCharacters - characters comprising this terminal string.
Throws:
java.lang.NullPointerException - if character string is null.
java.lang.IllegalArgumentException - if either quote does not belong to QUOTES or character string is empty, or character string contains quote symbol.

TerminalString

public TerminalString(java.lang.Character aQuote,
                      java.lang.CharSequence aCharacters)
Parameters:
aQuote - character used to quote specified string.
aCharacters - characters comprising this terminal string.
Throws:
java.lang.NullPointerException - if character string is null.
java.lang.IllegalArgumentException - if either quote does not belong to QUOTES or character string is empty, or character string contains quote symbol.

TerminalString

protected TerminalString(java.lang.CharSequence aCharacters)
Parameters:
aCharacters - characters comprising this terminal string.
Throws:
java.lang.NullPointerException - if character string is null.
java.lang.IllegalArgumentException - if character string is empty, or character string contains symbol belonging to QUOTES.

TerminalString

public TerminalString(java.lang.Character aCharacter)
Parameters:
aCharacter - single character comprising this terminal string; arbitrary non-conflicting quote is assumed.
Throws:
java.lang.NullPointerException - if character string is null.

TerminalString

protected TerminalString(java.lang.Character aQuote,
                         java.util.Collection<java.lang.Character> aQuotes,
                         int aMin,
                         java.lang.Character... aString)
Parameters:
aQuote - character used to quote specified string.
aQuotes - valid quote options.
aMin - minimum required number of characters.
aString - characters comprising this terminal string.
Throws:
java.lang.NullPointerException - if character string is null.
java.lang.IllegalArgumentException - if either quote does not belong to specified set, or character string is too short, or character string contains quote symbol.
Method Detail

toString

public java.lang.String toString()
Specified by:
toString in interface java.lang.CharSequence
Overrides:
toString in class java.lang.Object

length

public int length()
Specified by:
length in interface java.lang.CharSequence

charAt

public char charAt(int index)
Specified by:
charAt in interface java.lang.CharSequence

subSequence

public java.lang.CharSequence subSequence(int start,
                                          int end)
Specified by:
subSequence in interface java.lang.CharSequence