Skip to content

Commit 8fd26b7

Browse files
author
Viktor Chernev
committed
testing grammars, refactoring
1 parent 1ac177a commit 8fd26b7

File tree

143 files changed

+23227
-12329
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+23227
-12329
lines changed

@DescribeCompilerAPI/Compiler/DescribeCompiler.cs renamed to @DescribeCompilerAPI/Compiler/Compiler/Compiler.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using System.Reflection;
88
using System.Text.RegularExpressions;
99
using System.Text;
10+
using DescribeCompiler.Compiler.Optimizers;
11+
using DescribeCompiler.Compiler.Preprocessors;
1012

1113
namespace DescribeCompiler
1214
{
@@ -26,6 +28,15 @@ public IDescribeOptimizer Optimizer
2628
set;
2729
}
2830

31+
/// <summary>
32+
/// The preprocessor class
33+
/// </summary>
34+
public IDescribePreprocessor Preprocessor
35+
{
36+
get;
37+
set;
38+
}
39+
2940

3041

3142
/// <summary>
@@ -42,6 +53,32 @@ public bool ChangeGrammar(GrammarName grammarName)
4253
string fullname = GrammarNameToFullGramarName(grammarName);
4354
if (LoadGrammar(grammar))
4455
{
56+
switch (grammarName)
57+
{
58+
case GrammarName.Basic:
59+
Optimizer = new OptimizerForDescribe06();
60+
Preprocessor = new PreprocessorForDescribe06();
61+
break;
62+
case GrammarName.Tags:
63+
Optimizer = new OptimizerForDescribe07();
64+
Preprocessor = new PreprocessorForDescribe07();
65+
break;
66+
case GrammarName.Links:
67+
Optimizer = new OptimizerForDescribe08();
68+
Preprocessor = new PreprocessorForDescribe08();
69+
break;
70+
case GrammarName.Decorators:
71+
Optimizer = new OptimizerForDescribe09();
72+
Preprocessor = new PreprocessorForDescribe09();
73+
break;
74+
case GrammarName.Official:
75+
default:
76+
Optimizer = new DefaultOptimizer();
77+
//Optimizer = new OptimizerForDescribe10();
78+
Preprocessor = new PreprocessorForDescribe10();
79+
break;
80+
}
81+
Optimizer = new DefaultOptimizer();
4582
LogInfo("Loaded new grammar: \"" + fullname + "\"");
4683
return true;
4784
}
Lines changed: 339 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,339 @@
1+
using DescribeCompiler.Compiler.Optimizers;
2+
using DescribeCompiler.Compiler.Preprocessors;
3+
using System;
4+
5+
namespace DescribeCompiler
6+
{
7+
public partial class DescribeCompiler
8+
{
9+
/// <summary>
10+
/// Ctor.
11+
/// </summary>
12+
public DescribeCompiler()
13+
{
14+
LogText = log;
15+
LogError = log;
16+
LogInfo = log;
17+
LogParserInfo = log;
18+
19+
switch (DEFAULT_GRAMMAR)
20+
{
21+
case GrammarName.Basic:
22+
Optimizer = new OptimizerForDescribe06();
23+
Preprocessor = new PreprocessorForDescribe06();
24+
break;
25+
case GrammarName.Tags:
26+
Optimizer = new OptimizerForDescribe07();
27+
Preprocessor = new PreprocessorForDescribe07();
28+
break;
29+
case GrammarName.Links:
30+
Optimizer = new OptimizerForDescribe08();
31+
Preprocessor = new PreprocessorForDescribe08();
32+
break;
33+
case GrammarName.Decorators:
34+
Optimizer = new OptimizerForDescribe09();
35+
Preprocessor = new PreprocessorForDescribe09();
36+
break;
37+
case GrammarName.Official:
38+
default:
39+
Optimizer = new DefaultOptimizer();
40+
Preprocessor = new PreprocessorForDescribe10();
41+
break;
42+
}
43+
44+
45+
initializeCompiler(LogVerbosity.High);
46+
}
47+
48+
/// <summary>
49+
/// Ctor.
50+
/// </summary>
51+
/// <param name="verbosity">The logging verbosity of the parser</param>
52+
public DescribeCompiler(
53+
LogVerbosity verbosity)
54+
{
55+
LogText = log;
56+
LogError = log;
57+
LogInfo = log;
58+
LogParserInfo = log;
59+
60+
switch (DEFAULT_GRAMMAR)
61+
{
62+
case GrammarName.Basic:
63+
Optimizer = new OptimizerForDescribe06();
64+
Preprocessor = new PreprocessorForDescribe06();
65+
break;
66+
case GrammarName.Tags:
67+
Optimizer = new OptimizerForDescribe07();
68+
Preprocessor = new PreprocessorForDescribe07();
69+
break;
70+
case GrammarName.Links:
71+
Optimizer = new OptimizerForDescribe08();
72+
Preprocessor = new PreprocessorForDescribe08();
73+
break;
74+
case GrammarName.Decorators:
75+
Optimizer = new OptimizerForDescribe09();
76+
Preprocessor = new PreprocessorForDescribe09();
77+
break;
78+
case GrammarName.Official:
79+
default:
80+
Optimizer = new DefaultOptimizer();
81+
Preprocessor = new PreprocessorForDescribe10();
82+
break;
83+
}
84+
85+
initializeCompiler(verbosity);
86+
}
87+
88+
/// <summary>
89+
/// Ctor.
90+
/// </summary>
91+
/// <param name="verbosity">The logging verbosity of the parser</param>
92+
/// <param name="logText">method to log text</param>
93+
public DescribeCompiler(
94+
LogVerbosity verbosity,
95+
Action<string> logText)
96+
{
97+
LogText = log;
98+
LogText += logText;
99+
100+
LogError = log;
101+
LogInfo = log;
102+
LogParserInfo = log;
103+
104+
switch (DEFAULT_GRAMMAR)
105+
{
106+
case GrammarName.Basic:
107+
Optimizer = new OptimizerForDescribe06();
108+
Preprocessor = new PreprocessorForDescribe06();
109+
break;
110+
case GrammarName.Tags:
111+
Optimizer = new OptimizerForDescribe07();
112+
Preprocessor = new PreprocessorForDescribe07();
113+
break;
114+
case GrammarName.Links:
115+
Optimizer = new OptimizerForDescribe08();
116+
Preprocessor = new PreprocessorForDescribe08();
117+
break;
118+
case GrammarName.Decorators:
119+
Optimizer = new OptimizerForDescribe09();
120+
Preprocessor = new PreprocessorForDescribe09();
121+
break;
122+
case GrammarName.Official:
123+
default:
124+
Optimizer = new DefaultOptimizer();
125+
Preprocessor = new PreprocessorForDescribe10();
126+
break;
127+
}
128+
129+
initializeCompiler(verbosity);
130+
}
131+
132+
/// <summary>
133+
/// Ctor.
134+
/// </summary>
135+
/// <param name="verbosity">The logging verbosity of the parser</param>
136+
/// <param name="logText">method to log text<</param>
137+
/// <param name="logError">method to log errors<</param>
138+
public DescribeCompiler(
139+
LogVerbosity verbosity,
140+
Action<string> logText,
141+
Action<string> logError)
142+
{
143+
LogText = log;
144+
LogText += logText;
145+
146+
LogError = log;
147+
LogError += logError;
148+
149+
LogInfo = log;
150+
LogParserInfo = log;
151+
152+
switch (DEFAULT_GRAMMAR)
153+
{
154+
case GrammarName.Basic:
155+
Optimizer = new OptimizerForDescribe06();
156+
Preprocessor = new PreprocessorForDescribe06();
157+
break;
158+
case GrammarName.Tags:
159+
Optimizer = new OptimizerForDescribe07();
160+
Preprocessor = new PreprocessorForDescribe07();
161+
break;
162+
case GrammarName.Links:
163+
Optimizer = new OptimizerForDescribe08();
164+
Preprocessor = new PreprocessorForDescribe08();
165+
break;
166+
case GrammarName.Decorators:
167+
Optimizer = new OptimizerForDescribe09();
168+
Preprocessor = new PreprocessorForDescribe09();
169+
break;
170+
case GrammarName.Official:
171+
default:
172+
Optimizer = new DefaultOptimizer();
173+
Preprocessor = new PreprocessorForDescribe10();
174+
break;
175+
}
176+
177+
initializeCompiler(verbosity);
178+
}
179+
180+
/// <summary>
181+
/// Ctor.
182+
/// </summary>
183+
/// <param name="verbosity">The logging verbosity of the parser</param>
184+
/// <param name="logText">method to log text</param>
185+
/// <param name="logError">method to log errors</param>
186+
/// <param name="logInfo">method to log less important info</param>
187+
public DescribeCompiler(
188+
LogVerbosity verbosity,
189+
Action<string> logText,
190+
Action<string> logError,
191+
Action<string> logInfo)
192+
{
193+
LogText = log;
194+
LogText += logText;
195+
196+
LogError = log;
197+
LogError += logError;
198+
199+
LogInfo = log;
200+
LogInfo += logInfo;
201+
202+
LogParserInfo = log;
203+
204+
switch (DEFAULT_GRAMMAR)
205+
{
206+
case GrammarName.Basic:
207+
Optimizer = new OptimizerForDescribe06();
208+
Preprocessor = new PreprocessorForDescribe06();
209+
break;
210+
case GrammarName.Tags:
211+
Optimizer = new OptimizerForDescribe07();
212+
Preprocessor = new PreprocessorForDescribe07();
213+
break;
214+
case GrammarName.Links:
215+
Optimizer = new OptimizerForDescribe08();
216+
Preprocessor = new PreprocessorForDescribe08();
217+
break;
218+
case GrammarName.Decorators:
219+
Optimizer = new OptimizerForDescribe09();
220+
Preprocessor = new PreprocessorForDescribe09();
221+
break;
222+
case GrammarName.Official:
223+
default:
224+
Optimizer = new DefaultOptimizer();
225+
Preprocessor = new PreprocessorForDescribe10();
226+
break;
227+
}
228+
229+
initializeCompiler(verbosity);
230+
}
231+
232+
/// <summary>
233+
/// Ctor.
234+
/// </summary>
235+
/// <param name="verbosity">The logging verbosity of the parser</param>
236+
/// <param name="logText">method to log text</param>
237+
/// <param name="logError">method to log errors</param>
238+
/// <param name="logInfo">method to log less important info</param>
239+
/// <param name="logParserInfo">method to log parser output</param>
240+
public DescribeCompiler(
241+
LogVerbosity verbosity,
242+
Action<string> logText,
243+
Action<string> logError,
244+
Action<string> logInfo,
245+
Action<string> logParserInfo)
246+
{
247+
LogText = log;
248+
LogText += logText;
249+
250+
LogError = log;
251+
LogError += logError;
252+
253+
LogInfo = log;
254+
LogInfo += logInfo;
255+
256+
LogParserInfo = log;
257+
LogParserInfo += logParserInfo;
258+
259+
switch (DEFAULT_GRAMMAR)
260+
{
261+
case GrammarName.Basic:
262+
Optimizer = new OptimizerForDescribe06();
263+
Preprocessor = new PreprocessorForDescribe06();
264+
break;
265+
case GrammarName.Tags:
266+
Optimizer = new OptimizerForDescribe07();
267+
Preprocessor = new PreprocessorForDescribe07();
268+
break;
269+
case GrammarName.Links:
270+
Optimizer = new OptimizerForDescribe08();
271+
Preprocessor = new PreprocessorForDescribe08();
272+
break;
273+
case GrammarName.Decorators:
274+
Optimizer = new OptimizerForDescribe09();
275+
Preprocessor = new PreprocessorForDescribe09();
276+
break;
277+
case GrammarName.Official:
278+
default:
279+
Optimizer = new DefaultOptimizer();
280+
Preprocessor = new PreprocessorForDescribe10();
281+
break;
282+
}
283+
284+
initializeCompiler(verbosity);
285+
}
286+
287+
288+
289+
private void initializeCompiler(LogVerbosity verbosity)
290+
{
291+
LogInfo("Initializing " + COMPILER_NAME);
292+
LoadedGrammarName = "";
293+
294+
//init
295+
try
296+
{
297+
_GoldParser = new GoldParser.Parser.Parser();
298+
LogInfo("GOLD parser engine initialized");
299+
300+
//set verbosity
301+
Verbosity = verbosity;
302+
LogInfo("Verbosity set to: " + Verbosity.ToString());
303+
}
304+
catch (Exception ex)
305+
{
306+
LogError("Failed to initialize GOLD parser: " + ex.Message);
307+
return;
308+
}
309+
310+
//preload default grammar
311+
try
312+
{
313+
string grammarname = GrammarNameToResourceName(DEFAULT_GRAMMAR);
314+
byte[] grammar = ResourceUtil.ExtractResource_ByteArray(grammarname);
315+
string fullname = GrammarNameToFullGramarName(DEFAULT_GRAMMAR);
316+
if (LoadGrammar(grammar))
317+
{
318+
LogInfo("Preloaded grammar: \"" + fullname + "\"");
319+
if (Verbosity != LogVerbosity.High) LogText("------------------------");
320+
LoadedGrammarName = fullname;
321+
}
322+
else
323+
{
324+
LogInfo("Failed to preload grammar: \"" + fullname + "\"");
325+
if (Verbosity != LogVerbosity.High) LogText("------------------------");
326+
return;
327+
}
328+
}
329+
catch (Exception ex)
330+
{
331+
LogError("Failed to preload grammar: " + ex.Message);
332+
if (Verbosity != LogVerbosity.High) LogText("------------------------");
333+
return;
334+
}
335+
336+
isInitialized = true;
337+
}
338+
}
339+
}
File renamed without changes.

@DescribeCompilerAPI/Compiler/DescribeCompiler#LogHandlers.cs renamed to @DescribeCompilerAPI/Compiler/Compiler/LogHandlers.cs

File renamed without changes.

@DescribeCompilerAPI/Compiler/DescribeCompiler#Properties.cs renamed to @DescribeCompilerAPI/Compiler/Compiler/Properties.cs

File renamed without changes.

@DescribeCompilerAPI/Compiler/DescribeCompiler#Settings.cs renamed to @DescribeCompilerAPI/Compiler/Compiler/Settings.cs

File renamed without changes.

@DescribeCompilerAPI/Compiler/DescribeCompiler#Statistics.cs renamed to @DescribeCompilerAPI/Compiler/Compiler/Statistics.cs

File renamed without changes.

0 commit comments

Comments
 (0)