package de.unisiegen.gtitool.core.grammars.rg;
import de.unisiegen.gtitool.core.entities.NonterminalSymbol;
import de.unisiegen.gtitool.core.entities.NonterminalSymbolSet;
import de.unisiegen.gtitool.core.entities.TerminalSymbolSet;
import de.unisiegen.gtitool.core.grammars.AbstractGrammar;
import de.unisiegen.gtitool.core.grammars.Grammar;
/**
* The class for regular grammars.
*
* @author Christian Fehler
* @version $Id$
*/
public final class DefaultRG extends AbstractGrammar implements RG
{
/**
* The serial version uid.
*/
private static final long serialVersionUID = 5814924266068717426L;
/**
* Allocate a new {@link DefaultRG}.
*
* @param nonterminalSymbolSet The {@link NonterminalSymbolSet}.
* @param terminalSymbolSet The {@link TerminalSymbolSet}.
* @param startSymbol The start symbol of this grammar.
*/
public DefaultRG ( NonterminalSymbolSet nonterminalSymbolSet,
TerminalSymbolSet terminalSymbolSet, NonterminalSymbol startSymbol )
{
super ( nonterminalSymbolSet, terminalSymbolSet, startSymbol,
ValidationElement.DUPLICATE_PRODUCTION,
ValidationElement.NONTERMINAL_NOT_REACHABLE,
ValidationElement.GRAMMAR_NOT_REGULAR );
}
/**
* Returns the {@link Grammar.GrammarType}.
*
* @return The {@link Grammar.GrammarType}.
*/
@Override
public final GrammarType getGrammarType ()
{
return GrammarType.RG;
}
}