Skip to content

Commit c35d587

Browse files
author
Viktor Chernev
committed
implement custom Templating
1 parent 947cf57 commit c35d587

23 files changed

Lines changed: 996 additions & 37 deletions

@DescribeCompilerAPI/DescribeCompiler.cs

Lines changed: 87 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -90,15 +90,21 @@ public string LoadedGrammarName
9090
/// </summary>
9191
/// <param name="verbosity">The logging verbosity of the parser</param>
9292
public DescribeCompiler(
93+
string templateName,
9394
LogVerbosity verbosity = LogVerbosity.High)
9495
{
95-
Translator = new UnfoldTranslator();
96-
9796
LogText = log;
9897
LogError = log;
9998
LogInfo = log;
10099
LogParserInfo = log;
101100

101+
Translator = new UnfoldTranslator(LogText, LogError, LogInfo, templateName);
102+
if (Translator.IsInitialized() == false)
103+
{
104+
LogError("Failed to initialize the translator");
105+
return;
106+
}
107+
102108
LogInfo("Initializing " + COMPILER_NAME);
103109
LoadedGrammarName = "";
104110

@@ -153,18 +159,24 @@ public DescribeCompiler(
153159
/// <param name="logText">method to log text</param>
154160
/// <param name="verbosity">The logging verbosity of the parser</param>
155161
public DescribeCompiler(
162+
string templateName,
156163
Action<string> logText,
157164
LogVerbosity verbosity = LogVerbosity.High)
158165
{
159-
Translator = new UnfoldTranslator();
160-
161166
LogText = log;
162167
LogText += logText;
163168

164169
LogError = log;
165170
LogInfo = log;
166171
LogParserInfo = log;
167172

173+
Translator = new UnfoldTranslator(LogText, LogError, LogInfo, templateName);
174+
if (Translator.IsInitialized() == false)
175+
{
176+
LogError("Failed to initialize the translator");
177+
return;
178+
}
179+
168180
LogInfo("Initializing " + COMPILER_NAME);
169181
LoadedGrammarName = "";
170182

@@ -219,11 +231,12 @@ public DescribeCompiler(
219231
/// <param name="logError">method to log errors<</param>
220232
/// <param name="verbosity">The logging verbosity of the parser</param>
221233
public DescribeCompiler(
234+
string templateName,
222235
Action<string> logText,
223236
Action<string> logError,
224237
LogVerbosity verbosity = LogVerbosity.High)
225238
{
226-
Translator = new UnfoldTranslator();
239+
Translator = new UnfoldTranslator(logText, logError, templateName);
227240

228241
LogText = log;
229242
LogText += logText;
@@ -234,6 +247,13 @@ public DescribeCompiler(
234247
LogInfo = log;
235248
LogParserInfo = log;
236249

250+
Translator = new UnfoldTranslator(LogText, LogError, LogInfo, templateName);
251+
if (Translator.IsInitialized() == false)
252+
{
253+
LogError("Failed to initialize the translator");
254+
return;
255+
}
256+
237257
LogInfo("Initializing " + COMPILER_NAME);
238258
LoadedGrammarName = "";
239259

@@ -289,13 +309,12 @@ public DescribeCompiler(
289309
/// <param name="logInfo">method to log less important info</param>
290310
/// <param name="verbosity">The logging verbosity of the parser</param>
291311
public DescribeCompiler(
312+
string templateName,
292313
Action<string> logText,
293314
Action<string> logError,
294315
Action<string> logInfo,
295316
LogVerbosity verbosity = LogVerbosity.High)
296317
{
297-
Translator = new UnfoldTranslator();
298-
299318
LogText = log;
300319
LogText += logText;
301320

@@ -307,6 +326,13 @@ public DescribeCompiler(
307326

308327
LogParserInfo = log;
309328

329+
Translator = new UnfoldTranslator(LogText, LogError, LogInfo, templateName);
330+
if (Translator.IsInitialized() == false)
331+
{
332+
LogError("Failed to initialize the translator");
333+
return;
334+
}
335+
310336
LogInfo("Initializing " + COMPILER_NAME);
311337
LoadedGrammarName = "";
312338

@@ -364,14 +390,13 @@ public DescribeCompiler(
364390
/// <param name="logParserInfo">method to log parser output</param>
365391
/// <param name="verbosity">The logging verbosity of the parser</param>
366392
public DescribeCompiler(
393+
string templateName,
367394
Action<string> logText,
368395
Action<string> logError,
369396
Action<string> logInfo,
370397
Action<string> logParserInfo,
371398
LogVerbosity verbosity = LogVerbosity.High)
372399
{
373-
Translator = new UnfoldTranslator();
374-
375400
LogText = log;
376401
LogText += logText;
377402

@@ -384,6 +409,13 @@ public DescribeCompiler(
384409
LogParserInfo = log;
385410
LogParserInfo += logParserInfo;
386411

412+
Translator = new UnfoldTranslator(LogText, LogError, LogInfo, templateName);
413+
if (Translator.IsInitialized() == false)
414+
{
415+
LogError("Failed to initialize the translator");
416+
return;
417+
}
418+
387419
LogInfo("Initializing " + COMPILER_NAME);
388420
LoadedGrammarName = "";
389421

@@ -509,6 +541,11 @@ bool ParseFolder_LowVerbosity(DirectoryInfo dirInfo, out string html)
509541
LogError("Parser not innitialized.");
510542
return false;
511543
}
544+
if(Translator.IsInitialized() == false)
545+
{
546+
LogError("Translator not innitialized.");
547+
return false;
548+
}
512549

513550
string msg = "\"" + dirInfo.FullName + "\" - ";
514551
if (!Directory.Exists(dirInfo.FullName))
@@ -592,6 +629,11 @@ bool ParseFolder_MediumVerbosity(DirectoryInfo dirInfo, out string html)
592629
LogError("This parser isn't innitialized, and cannot be used. Create a new instance.");
593630
return false;
594631
}
632+
if (Translator.IsInitialized() == false)
633+
{
634+
LogError("This parser's translator has not been correctly innitialized.");
635+
return false;
636+
}
595637
LogText("------------------------");
596638
LogText("Starting a parse operation on folder: \"" + dirInfo.FullName + "\"");
597639
if (!Directory.Exists(dirInfo.FullName))
@@ -679,6 +721,11 @@ bool ParseFolder_HighVerbosity(DirectoryInfo dirInfo, out string html)
679721
LogError("This parser isn't innitialized, and cannot be used. Create a new instance.");
680722
return false;
681723
}
724+
if (Translator.IsInitialized() == false)
725+
{
726+
LogError("This parser's translator has not been correctly innitialized.");
727+
return false;
728+
}
682729
LogText("------------------------");
683730
LogText("Starting a parse operation on folder: \"" + dirInfo.FullName + "\"");
684731
if (!Directory.Exists(dirInfo.FullName))
@@ -768,6 +815,11 @@ bool ParseFile_LowVerbosity(FileInfo fileInfo, out string html)
768815
LogError("Parser not innitialized.");
769816
return false;
770817
}
818+
if (Translator.IsInitialized() == false)
819+
{
820+
LogError("Translator not innitialized.");
821+
return false;
822+
}
771823

772824
string msg = "\"" + fileInfo.FullName + "\" - ";
773825
if (!File.Exists(fileInfo.FullName))
@@ -879,6 +931,11 @@ bool ParseFile_MediumVerbosity(FileInfo fileInfo, out string html)
879931
LogError("This parser isn't innitialized, and cannot be used. Create a new instance.");
880932
return false;
881933
}
934+
if (Translator.IsInitialized() == false)
935+
{
936+
LogError("This parser's translator has not been correctly innitialized.");
937+
return false;
938+
}
882939

883940
LogText("Starting a parse operation on file: \"" + fileInfo.FullName + "\"");
884941
if (!File.Exists(fileInfo.FullName))
@@ -1002,6 +1059,11 @@ bool ParseFile_HighVerbosity(FileInfo fileInfo, out string html)
10021059
LogError("This parser isn't innitialized, and cannot be used. Create a new instance.");
10031060
return false;
10041061
}
1062+
if (Translator.IsInitialized() == false)
1063+
{
1064+
LogError("This parser's translator has not been correctly innitialized.");
1065+
return false;
1066+
}
10051067
LogText("------------------------");
10061068
LogText("Starting a parse operation on file: \"" + fileInfo.FullName + "\"");
10071069
if (!File.Exists(fileInfo.FullName))
@@ -1126,6 +1188,11 @@ bool ParseFile_LowVerbosity(FileInfo fileInfo, DescribeUnfold unfold)
11261188
LogError("Parser not innitialized.");
11271189
return false;
11281190
}
1191+
if (Translator.IsInitialized() == false)
1192+
{
1193+
LogError("Translator has not been correctly innitialized.");
1194+
return false;
1195+
}
11291196

11301197
string msg = "\"" + fileInfo.FullName + "\" - ";
11311198
if (!File.Exists(fileInfo.FullName))
@@ -1217,6 +1284,11 @@ bool ParseFile_MediumVerbosity(FileInfo fileInfo, DescribeUnfold unfold)
12171284
LogError("This parser isn't innitialized, and cannot be used. Create a new instance.");
12181285
return false;
12191286
}
1287+
if (Translator.IsInitialized() == false)
1288+
{
1289+
LogError("This parser's translator has not been correctly innitialized.");
1290+
return false;
1291+
}
12201292
//LogText("------------------------");
12211293
LogText("Starting a parse operation on file: \"" + fileInfo.FullName + "\"");
12221294
if (!File.Exists(fileInfo.FullName))
@@ -1315,6 +1387,11 @@ bool ParseFile_HighVerbosity(FileInfo fileInfo, DescribeUnfold unfold)
13151387
LogError("This parser isn't innitialized, and cannot be used. Create a new instance.");
13161388
return false;
13171389
}
1390+
if (Translator.IsInitialized() == false)
1391+
{
1392+
LogError("This parser's translator has not been correctly innitialized.");
1393+
return false;
1394+
}
13181395
LogText("------------------------");
13191396
LogText("Starting a parse operation on file: \"" + fileInfo.FullName + "\"");
13201397
if (!File.Exists(fileInfo.FullName))
@@ -1837,7 +1914,7 @@ private string EncodeNonAsciiCharacters(string value)
18371914

18381915

18391916
//private const
1840-
const string COMPILER_NAME = "D#SCRIBE COMPILER v0.9.1";
1917+
const string COMPILER_NAME = "Describe Compiler v0.9.1";
18411918
const GrammarName DEFAULT_GRAMMAR = GrammarName.Decorators;
18421919
}
18431920
}

@DescribeCompilerAPI/DescribeCompiler.csproj

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,21 @@
6060
</ItemGroup>
6161
<ItemGroup>
6262
<Content Include="describe.ico" />
63-
<EmbeddedResource Include="Translations\Item.html" />
64-
<EmbeddedResource Include="Translations\ItemColored.html" />
65-
<EmbeddedResource Include="Translations\ItemComment.html" />
66-
<EmbeddedResource Include="Translations\ItemEmpty.html" />
67-
<EmbeddedResource Include="Translations\Page.html" />
68-
<EmbeddedResource Include="Translations\Production.html" />
69-
<EmbeddedResource Include="Translations\Root.html" />
70-
<EmbeddedResource Include="Translations\Link.html" />
63+
<EmbeddedResource Include="Templates\HTML_PARACORD\Item.html" />
64+
<EmbeddedResource Include="Templates\HTML_PARACORD\ItemColored.html" />
65+
<EmbeddedResource Include="Templates\HTML_PARACORD\ItemComment.html" />
66+
<EmbeddedResource Include="Templates\HTML_PARACORD\ItemEmpty.html" />
67+
<EmbeddedResource Include="Templates\HTML_PARACORD\Page.html" />
68+
<EmbeddedResource Include="Templates\HTML_PARACORD\Production.html" />
69+
<EmbeddedResource Include="Templates\HTML_PARACORD\Root.html" />
70+
<EmbeddedResource Include="Templates\HTML_PARACORD\Link.html" />
7171
</ItemGroup>
7272
<ItemGroup>
7373
<ProjectReference Include="..\GoldParserEngine\GoldParserEngine\GoldParserEngine.csproj">
7474
<Project>{0a2299a4-b711-45cd-a462-322ebe773646}</Project>
7575
<Name>GoldParserEngine</Name>
7676
</ProjectReference>
7777
</ItemGroup>
78+
<ItemGroup />
7879
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
7980
</Project>

@DescribeCompilerAPI/ResourceUtil.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static byte[] ExtractResource_ByteArray(string filename)
3131
/// </summary>
3232
/// <param name="filename">The name of the string resource</param>
3333
/// <returns>The retrieved string</returns>
34-
public static string ExtractResource_String(string filename)
34+
public static string ExtractResourceByFileExtention_String(string filename)
3535
{
3636
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
3737

@@ -61,7 +61,7 @@ public static string ExtractResource_String(string filename)
6161
/// </summary>
6262
/// <param name="filename">The name of the string resource, without extention</param>
6363
/// <returns>The retrieved string</returns>
64-
public static string ExtractResourceByName_String(string filename)
64+
public static string ExtractResourceByFileName_String(string folder, string filename)
6565
{
6666
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
6767

@@ -71,10 +71,20 @@ public static string ExtractResourceByName_String(string filename)
7171
{
7272
string[] sep = s.Split('.');
7373
if (sep.Length < 1) continue;
74-
if (sep.Length >= 2 && sep[sep.Length - 2] == filename)
74+
if (sep.Length >= 3)
7575
{
76-
resourceName = s;
77-
break;
76+
//file extention
77+
if(sep[sep.Length - 2] == filename && sep[sep.Length - 3] == folder)
78+
{
79+
resourceName = s;
80+
break;
81+
}
82+
//no file extention
83+
else if(sep[sep.Length - 1] == filename && sep[sep.Length - 2] == folder)
84+
{
85+
resourceName = s;
86+
break;
87+
}
7888
}
7989
}
8090
if(resourceName == null)
@@ -101,5 +111,13 @@ public static string ExtractResourceByName_String(string filename)
101111
}
102112
}
103113
}
114+
115+
public static string[] extractResourceNames()
116+
{
117+
System.Reflection.Assembly a = System.Reflection.Assembly.GetExecutingAssembly();
118+
119+
string[] resNames = a.GetManifestResourceNames();
120+
return resNames;
121+
}
104122
}
105123
}
File renamed without changes.

@DescribeCompilerAPI/Translations/ItemColored.html renamed to @DescribeCompilerAPI/Templates/HTML_PARACORD/ItemColored.html

File renamed without changes.

@DescribeCompilerAPI/Translations/ItemComment.html renamed to @DescribeCompilerAPI/Templates/HTML_PARACORD/ItemComment.html

File renamed without changes.

@DescribeCompilerAPI/Translations/ItemEmpty.html renamed to @DescribeCompilerAPI/Templates/HTML_PARACORD/ItemEmpty.html

File renamed without changes.
File renamed without changes.
File renamed without changes.

@DescribeCompilerAPI/Translations/Production.html renamed to @DescribeCompilerAPI/Templates/HTML_PARACORD/Production.html

File renamed without changes.

0 commit comments

Comments
 (0)