Шаблоны для реализации этой грамматики в коде C # - PullRequest
1 голос
/ 21 апреля 2010

Эй, ребята, я создаю эту маленькую грамматику БНФ, и я хотел

<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>

Одним из возможных решений, которое мы имеем в виду, является создание POCO с аннотациями пространства имен XMLSerialization, например, например:

[XMLRoot("template")]
public class Template{ 
    [XMLElement("types")]        
    public Types types{

    }
}

Однако я хочу найти больше решений, как вы думаете, ребята?

Ответы [ 2 ]

1 голос
/ 23 апреля 2010

Если вы хотите реализовать это самостоятельно, посмотрите Шаблон проектирования интерпретатора.

0 голосов
/ 22 апреля 2010

Если вы хотите проанализировать определенный ввод некоторой сложности, используйте ANTLR . См. C # инструкции , чтобы начать.

...