C# Class CFGLib.GrammarGenerator

This class can be used to generate random grammars
Show file Open project: ellisonch/CFGLib Class Usage Examples

Public Methods

Method Description
GrammarGenerator ( Random rand ) : System
GrammarGenerator ( int seed ) : System
NextCFG ( int numNonterminals, int numProductions, int maxProductionLength, IList terminals, bool useNull = true ) : Grammar

Generates a new, random generic grammar

NextCNF ( int numNonterminals, int numProductions, IList terminals, bool useNull = true ) : CNFGrammar

Generates a new, random CNF grammar

NextCNFNonterminalProduction ( int numNonTerminals, Nonterminal lhs = null ) : Production
NextCNFTerminalProduction ( int numNonterminals, IList terminals, Terminal rhs = null ) : Production
RandomProduction ( int maxProductionLength, int numNonterminals, IList terminals, bool useNull = true ) : Production

Private Methods

Method Description
RandomNonterminal ( int numNonterminals, bool allowStart = true ) : Nonterminal
RandomTerminal ( IList terminals ) : Terminal

Method Details

GrammarGenerator() public method

public GrammarGenerator ( Random rand ) : System
rand System.Random
return System

GrammarGenerator() public method

public GrammarGenerator ( int seed ) : System
seed int
return System

NextCFG() public method

Generates a new, random generic grammar
public NextCFG ( int numNonterminals, int numProductions, int maxProductionLength, IList terminals, bool useNull = true ) : Grammar
numNonterminals int
numProductions int
maxProductionLength int
terminals IList
useNull bool
return Grammar

NextCNF() public method

Generates a new, random CNF grammar
public NextCNF ( int numNonterminals, int numProductions, IList terminals, bool useNull = true ) : CNFGrammar
numNonterminals int
numProductions int
terminals IList
useNull bool
return CNFGrammar

NextCNFNonterminalProduction() public method

public NextCNFNonterminalProduction ( int numNonTerminals, Nonterminal lhs = null ) : Production
numNonTerminals int
lhs Nonterminal
return Production

NextCNFTerminalProduction() public method

public NextCNFTerminalProduction ( int numNonterminals, IList terminals, Terminal rhs = null ) : Production
numNonterminals int
terminals IList
rhs Terminal
return Production

RandomProduction() public method

public RandomProduction ( int maxProductionLength, int numNonterminals, IList terminals, bool useNull = true ) : Production
maxProductionLength int
numNonterminals int
terminals IList
useNull bool
return Production