2010-05-11 4 views
0

Для школьного проекта мне нужно реализовать парсер для языка разметки (возможно, на основе XML) для пользовательских интерфейсов. На основе ввода он создает HTML-документ с различными компонентами пользовательского интерфейса (текстовые поля, входы, панели, диалоги и т. Д.)Инструменты для создания парсера языка разметки UI

Есть ли у вас предложения по инструментам/библиотекам, которые я могу использовать для этого? (В школе мы используем Flex и Bison, но нам разрешено использовать современные инструменты - возможно, инструмент, который имеет возможности как lex, так и yacc)

ответ

2

Если ваш ввод, как и предполагалось, XML и ваш вывод это HTML, то это основной вариант использования XSLT. целая точка XML - это то, что вам не нужно писать собственный парсер, поэтому, если это делается как работа работы, а не как школьный проект, который будет первым методом использования. Если вы не можете выразить это как преобразование, вы можете посмотреть в другом месте.

Если вы не хотите использовать XML, то современные инструменты для текстовых языков включают в себя parser expression grammars и инструменты синтеза DSL, такие как Microsoft M.

PEGs освобождает вас от необходимости отдельного лекса и разбора, поэтому токен может быть контекстно-зависимым, не усложняя грамматику (так как много токенов на многих языках), а некоторые реализации означают, что вам не нужно беспокоиться о левых/правый рекурсивный цикл.

Инструменты синтеза DSL объединяют грамматику на основе IDE с семантикой времени выполнения. У Мартина Фаулера есть book on DSLs on his site.

Но для языка определения пользовательского интерфейса, который является входом для преобразования, первым может быть XML или другое стандартное отображение структуры (JSON, YAML), которое может выступать в качестве входа в XSLT-процессор через интерфейс SAX. Я попробую.

+0

Благодарим вас за руководство! – Dan

Смежные вопросы