fri.patterns.interpreter.parsergenerator.syntax
Class Rule

java.lang.Object
  |
  +--fri.patterns.interpreter.parsergenerator.syntax.Rule
All Implemented Interfaces:
java.io.Serializable

public class Rule
extends java.lang.Object
implements java.io.Serializable

A rule is a list of String symbols on the right side and a nonterminal on the left side: "a ::= b c d;" A nonterminal is represented as a String with no quotes, every terminal must appear quoted by " or ' or ` (backquote).

Author:
(c) 2004 Fritz Ritzberger
See Also:
Serialized Form

Constructor Summary
protected Rule()
          Serializable constructor, do not use.
  Rule(java.util.List symbols)
          Constructing a rule from a String List, first element is interpreted as nonterminal.
  Rule(java.lang.String[] symbols)
          Constructing a rule from a String array, first element is interpreted as nonterminal.
  Rule(java.lang.String nonterminal, int rightSize)
          Source generator constructor.
 
Method Summary
 void addRightSymbol(java.lang.String symbol)
           
 boolean equals(java.lang.Object o)
          Returns true if symbol lists are equal.
 java.lang.String getNonterminal()
           
 java.lang.String getRightSymbol(int i)
           
 int hashCode()
          Returns symbol lists hashcode.
 int indexOnRightSide(java.lang.String symbol)
           
 int rightSize()
           
 void setRightSymbol(java.lang.String symbol, int i)
           
 java.lang.String toString()
          Returns the syntax as a multiline string.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Rule

public Rule(java.lang.String nonterminal,
            int rightSize)
Source generator constructor.


Rule

public Rule(java.lang.String[] symbols)
Constructing a rule from a String array, first element is interpreted as nonterminal.


Rule

public Rule(java.util.List symbols)
Constructing a rule from a String List, first element is interpreted as nonterminal.


Rule

protected Rule()
Serializable constructor, do not use.

Method Detail

getNonterminal

public java.lang.String getNonterminal()

rightSize

public int rightSize()

getRightSymbol

public java.lang.String getRightSymbol(int i)

setRightSymbol

public void setRightSymbol(java.lang.String symbol,
                           int i)

addRightSymbol

public void addRightSymbol(java.lang.String symbol)

indexOnRightSide

public int indexOnRightSide(java.lang.String symbol)

equals

public boolean equals(java.lang.Object o)
Returns true if symbol lists are equal.

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Returns symbol lists hashcode.

Overrides:
hashCode in class java.lang.Object

toString

public java.lang.String toString()
Returns the syntax as a multiline string.

Overrides:
toString in class java.lang.Object