Парсер шаблонов готов

This commit is contained in:
2025-03-23 19:32:41 +03:00
parent e93a028bc4
commit b58bddc1a3
19 changed files with 352 additions and 22 deletions
+20
View File
@@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\mROA.CodegenTools\mROA.CodegenTools.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="exampleTemplate.cstmpl">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
+23
View File
@@ -0,0 +1,23 @@
// See https://aka.ms/new-console-template for more information
using mROA.CodegenTools;
// var doc = new TemplateDocument();
// doc.Parts = new List<ITemplateSection>
// {
// new LiteralTemplateSection("teset text", doc),
// new DefineTemplateSection(" another text which is dinided, bun not placed ", "text define", doc),
// new LinkTemplateSection("text define", doc),
// new LinkTemplateSection("text define", doc),
// new LinkTemplateSection("text define", doc),
// new LiteralTemplateSection(" = = = ", doc),
// new InsertTemplatePart("insert", doc),
// new LinkTemplateSection("post", doc)
// };
//
// doc.Insert("insert", "inserted text by insert template => ");
// doc.Parts.Add(new DefineTemplateSection("post added", "post", doc));
// Console.WriteLine(doc.Compile());
var doc = TemplateReader.Parce(File.ReadAllText("exampleTemplate.cstmpl"));
Console.WriteLine(doc.Parts.Count);
+19
View File
@@ -0,0 +1,19 @@
public class A
{
<!L linkTagA>
<!L linkTag>
<!L linkTag>
Some literal for test
<!D linkTagA>test text with definition in template<!D>
<!I ctorInserting>
<!I methodInserting R>
<!T MethodTemplate>
public void <!L methodName>()
{
Console.WriteLine("<!L printText>");
}
<!T>
}