Reputation: 2685
Hey guys, I'm creating this little BNF grammar and I wanted to
<template>::= <types><editors>
<types>::= <type>+
<type>::= <property>+
<property>::= <name><type>
<editors>::= <editor>+
<editor>::= <name><type>(<textfield>|<form>|<list>|<pulldown>)+
<textfield>::= <label><property>[<editable>]
<form>::= <label><property><editor>
<list>::= <label><property><item-editor>
<pulldown>::= <label><property><option>+
<option>::= <value>
One possible solution we have in mind is to create POCO's that have annotations of the XMLSerialization namespace, like this, for example:
[XMLRoot("template")]
public class Template{
[XMLElement("types")]
public Types types{
}
}
However I want to explore more solutions, what do you guys think?
Upvotes: 1
Views: 238
Reputation: 18560
If you want to implement this by yourself, look at Interpreter Design Pattern.
Upvotes: 1
Reputation: 9474
If you want to parse a specific input of some complexity, use ANTLR. See C# instructions to get started.
Upvotes: 0