8.3.3. Написание специальной грамматики

8.3.3. Написание специальной грамматики

Для декларативных мини-языков основной вопрос состоит в том, следует ли использовать XML в качестве основного синтаксиса и определять грамматику как тип XML-документа. Вполне возможно, что такой подход верен для сложно структурированных декларативных мини-языков, однако здесь также актуальны предостережения, изложенные в главе 5, о конструкции форматов файлов данных — XML может быть излишним. Если XML не используется, следует соблюдать правило наименьшей неожиданности, поддерживая описанные Unix-соглашения для файлов данных (простой синтаксис на основе лексем, поддержка С-соглашений об использовании обратной косой черты и т.д.).

Если специальная грамматика действительно требуется, то утилиты уасс и lex (или их локальный эквивалент в используемом языке), вероятно, будут наилучшими помощниками, кроме тех случаев, когда грамматика используемого языка настолько проста, что ручное кодирование рекурсивного нисходящего синтаксического анализатора представляет собой тривиальную задачу. Даже тогда утилита уасс может предоставить более надежное устранение ошибок, а модифицировать г/асс-специфи-кацию по мере развития синтаксиса языка будет проще. В главе 9 рассматриваются производные от уасс и lex инструменты, доступные в языках различной реализации.

Даже в случае принятия решения о реализации собственного синтаксиса рекомендуется рассмотреть возможную выгоду от повторного использования имеющихся инструментальных средств. Если требуются макросредства, следует учесть, что предобработка средствами т4(1) может быть правильным решением. Однако, прежде всего, необходимо учесть предостережения, приведенные в следующем разделе.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

R.17 Приложение A: Сводка грамматики

Из книги Справочное руководство по C++ автора Страустрап Бьярн

R.17 Приложение A: Сводка грамматики Это приложение не относится к справочному руководству языка и не является определением конструкций C++.Оно только должно служить более полному пониманию С++. Нельзя рассматривать его как точное определение языка, так как описанная здесь


Глава 19 Написание CGI-приложений

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Глава 19 Написание CGI-приложений Постановка задачи Разработать CGI-сценарий на Delphi. В качестве примера, при активации через форму сценарий будет выводить определенную


8.3.3. Написание специальной грамматики

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

8.3.3. Написание специальной грамматики Для декларативных мини-языков основной вопрос состоит в том, следует ли использовать XML в качестве основного синтаксиса и определять грамматику как тип XML-документа. Вполне возможно, что такой подход верен для сложно


Написание инструкций SELECT

Из книги VBA для чайников автора Каммингс Стив

Написание инструкций SELECT Процесс создания объектов Recordset модели ADO я подробно рассмотрел раньше в настоящей главе. В этом разделе основной акцент будет сделан именно на коде SQL, необходимом для определения того, какие записи относятся к набору. Вам необходимо выполнить


7.10. Написание собственного алгоритма

Из книги C++. Сборник рецептов автора Диггинс Кристофер

7.10. Написание собственного алгоритма ПроблемаДля диапазона требуется выполнить алгоритм, и ни один из стандартных алгоритмов не удовлетворяет требованиям.РешениеНапишите алгоритм в виде шаблона функции и с помощью имен параметров шаблона укажите свои требования к


8.11. Написание шаблона класса

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

8.11. Написание шаблона класса ПроблемаИмеется класс, чьи члены в различных ситуациях должны иметь разные типы, а использование обычного полиморфного поведения очень сложно или сильно избыточно. Другими словами, как разработчик класса, вы хотите, чтобы пользователь


Написание сценария

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Написание сценария Итак, с панелью Actions мы вкратце познакомились. Конечно, полностью ее возможности (кстати, весьма широкие) мы не рассмотрели, но сейчас нам важнее написать наш первый сценарий, чем выяснять, чем богата эта панель. Позже мы займемся ей более подробно.Выше


Написание букв

Из книги Разработка ядра Linux автора Лав Роберт

Написание букв Окно программы содержит две вкладки: «Написание букв» и «Графологический анализ».Щелкнув на вкладке «Написание букв», вы попадаете в раздел для определения сильных и слабых качественных черт характера по форме написания букв (рис. 199). Рис. 199Слева


Написание обработчика прерывания

Из книги QT 4: программирование GUI на С++ автора Бланшет Жасмин

Написание обработчика прерывания Следующее описание является типичным для обработчика прерывания.static irqreturn_t intr_handler(int irq, void *dev_id, struct pt_regs *regs);Заметим, что оно должно соответствовать аргументу, который передается в функцию request_irq(). Первый параметр, irq, — это численное


Написание НТТР—клиента

Из книги Идеальный программист. Как стать профессионалом разработки ПО автора Мартин Роберт С.


4 Написание кода

Из книги автора

4 Написание кода В предыдущей книге[13] я подробно описал структуру и природу Чистого Кода. В этой главе будет рассмотрен сам акт написания кода, а также контекст, в котором он происходит.Когда мне было 18 лет, я набирал текст достаточно быстро, но мне приходилось смотреть на