Last change
on this file since 15712 was
15712,
checked in by lkammere, 7 years ago
|
#2886 Add basic class structure, grammar and grammar iteration.
|
File size:
924 bytes
|
Rev | Line | |
---|
[15712] | 1 | namespace HeuristicLab.Algorithms.DataAnalysis.SymRegGrammarEnumeration {
|
---|
| 2 | public class Grammar {
|
---|
| 3 |
|
---|
| 4 | public Symbol StartSymbol;
|
---|
| 5 |
|
---|
| 6 | public Grammar(string[] variables) {
|
---|
| 7 | #region Define Symbols
|
---|
| 8 | VariableSymbol var = new VariableSymbol("var", variables);
|
---|
| 9 |
|
---|
| 10 | NonterminalSymbol expr = new NonterminalSymbol("Expr");
|
---|
| 11 | NonterminalSymbol term = new NonterminalSymbol("Expr");
|
---|
| 12 | NonterminalSymbol factor = new NonterminalSymbol("Expr");
|
---|
| 13 |
|
---|
| 14 | TerminalSymbol addition = new TerminalSymbol("+");
|
---|
| 15 | TerminalSymbol multiplication = new TerminalSymbol("*");
|
---|
| 16 | #endregion
|
---|
| 17 |
|
---|
| 18 |
|
---|
| 19 | #region Production ruless
|
---|
| 20 | StartSymbol = expr;
|
---|
| 21 |
|
---|
| 22 | expr.AddProduction(term, expr, addition);
|
---|
| 23 | expr.AddProduction(term);
|
---|
| 24 |
|
---|
| 25 | term.AddProduction(factor, term, multiplication);
|
---|
| 26 | term.AddProduction(factor);
|
---|
| 27 |
|
---|
| 28 | factor.AddProduction(var);
|
---|
| 29 | #endregion
|
---|
| 30 | }
|
---|
| 31 | }
|
---|
| 32 | }
|
---|
Note: See
TracBrowser
for help on using the repository browser.