Формализм определения синтаксиса - Syntax Definition Formalism

Синтаксис Определение формализма ( SDF ) является metasyntax используется для определения контекстно-свободных грамматик : то есть формальный способ описания формальных языков. Он может выражать весь спектр контекстно-свободных грамматик . Текущая версия - SDF3. Анализатор и генератор парсеров для спецификации SDF предоставляются как часть свободного ASF + SDF Meta окружающей среды . Они работают с использованием SGLR ( анализатора GLR без сканирования ). Анализатор SDF выводит деревья синтаксического анализа или, в случае неоднозначности , анализирует леса.

Обзор

Особенности SDF:

  • Поддерживает весь спектр контекстно-свободных языков
  • Позволяет модульное определение синтаксиса (грамматики могут импортировать подграмматики), что позволяет повторно использовать
  • Поддерживает аннотации

Примеры

В следующем примере определяется простой синтаксис логического выражения в SDF2:

module basic/Booleans

exports
  sorts Boolean
  context-free start-symbols Boolean

context-free syntax
   "true"                      -> Boolean
   "false"                     -> Boolean
   lhs:Boolean "|" rhs:Boolean -> Boolean {left}         
   lhs:Boolean "&" rhs:Boolean -> Boolean {left}       
   "not" "(" Boolean ")"       -> Boolean           
   "(" Boolean ")"             -> Boolean

 context-free priorities
   Boolean "&" Boolean -> Boolean >
   Boolean "|" Boolean -> Boolean

Системы анализа и преобразования программ с использованием SDF

Смотрите также

Ссылки

дальнейшее чтение

внешние ссылки