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
|
Line | |
---|
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.