Задание 2.1E

Лабораторная №2 — задание 2.1E #

Нужно написать EBNF грамматику для некоторых лексем в одном из двух языков программирования, выбранных аналитиком в лабораторной №1.

Информация об этих языках записана в каталоге docs/competitors/ вашего проекта.

Порядок выполнения #

  1. Найдите описание правил EBNF и изучите его
  2. Найдите и изучите пример EBNF грамматики для лексем какого-либо языка программирования
  3. Найдите и изучите документацию по лексической структуре языка, для которого вы будете описывать грамматику лексем
  4. Опишите в EBNF следующие типы лексем:
    • идентификатор (identifier)
    • литералы целых чисел (integer number)
    • литералы чисел с плавающей точкой (real number)
    • литералы строк (string literal)

Требования к EBNF грамматике лексики языка #

  1. Сохраните грамматику в markdown файл docs/theory/EBNF-for-lexemes.md
    • В начале файла укажите, для какого языка и какие лексемы вы описываете
  2. Грамматика должна быть описана по правилам EBNF (Extended Backus-Naur Form)
    • не путайте EBNF с более ранней нотацией BNF (Backus-Naur Form)
  3. Грамматика должна содержать следующие типы лексем:
    • идентификатор (identifier)
    • литералы целых чисел (integer number)
    • литералы чисел с плавающей точкой (real number)
    • литералы строк (string literal)
  4. Вы можете взять описание лексем в EBNF из документации языка, из примеров в сети либо составить самостоятельно

Справочные материалы #

  1. EBNF для описания грамматик