我已经在我的OmniXaml项目中创建了一个pull解析器。它读取XML文件并将其转换为可枚举的XAML节点。但我对结果不满意,所以我决定尝试以更优雅的方式建立另一个。
这就是我尝试使用Sprache生成解析器的原因。
问题是我甚至不知道如何开始。 XAML解析严重依赖于上下文,因此如果要生成一个Xaml节点,则可能需要先行处理并处理以下节点。 我目前使用XmlReader来读取XAML。
这里我列出了一些输入/输出示例,以便您了解我想要做的事情。输入是XAML代码,输出是XAML节点列表。 XAML节点是一种结构,其中我保存重新创建XAML中表示的对象所需的数据。它们就像CPU的指令。
示例1
输入(XAML):
<DummyClass xmlns="root" SampleProperty="Property!">
</DummyClass>
输出(XAML节点列表)
示例2
输入:
<DummyClass xmlns="root">
<DummyClass.Child>
<ChildClass></ChildClass>
</DummyClass.Child>
</DummyClass>
输出:
示例3
输入:
<DummyClass xmlns="root">
<DummyClass.Items>
<Item/>
<Item/>
<Item/>
</DummyClass.Items>
</DummyClass>
输出:
问题: 如何从这开始?
你能提供一些样品/指南吗? 谢谢!