Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Компилятор для БНФ

Браузерный компилятор для языка, определенного с помощью Бэкуса-Наура Формы (БНФ).

Описание

Данное приложение является портом C# проекта Compiler-for-BNF на JavaScript. Он позволяет вводить и анализировать код в соответствии с определенной БНФ-грамматикой.

Функциональность

  • Лексический анализ входного кода
  • Синтаксический анализ и проверка на соответствие грамматике
  • Выполнение вычислений
  • Вывод результатов в восьмеричной системе счисления
  • Подсветка ошибок в коде

Как использовать

  1. Откройте файл index.html в вашем браузере
  2. В правой части введите код для анализа или используйте предварительно загруженный пример
  3. Нажмите кнопку "Компилировать"
  4. Результат выполнения или сообщение об ошибке будет показано в правой части экрана

Пример кода

Начало
First A, B, C
Second 1
Second 56 36 21
First D, E, F
3, 4 Конец слагаемого
1: A = 2
2: D = 5 + A
3: C = (((10 + D)+5)*2-10)/7
4: C = C + 10
Конец

БНФ грамматика языка

Язык = "Начало" Множество ... Множество Слагаемое Опер ... Опер "Конец"
Множество = "First" Перем "," ... Перем ! "Second" Цел ... Цел
Слагаемое = Цел "," ... Цел "Конец слагаемого"
Опер = Метка ... Метка ":" Перем "=" Прав.часть
Прав.часть = </"-"/> выр1 ["+" ! "-"] ... выр1
Выр1 = выр2["*" ! "/"] ... выр2
Выр2 = выр3 ["&" ! "|"] ... выр3
Выр3 = </"not"/> выр4
Выр4 = Перем! цел! "(" Прав.часть ")"
Перем = Буква </[Буква ! Цифра] ... [Буква ! Цифра]/>
Метка = Цел
Цел = Цифра ... Цифра
Буква = "А" ! "Б" ! "В" ! ... ! "Я" ! "A" ! "B" ! "C" ! ... ! "Z"
Цифра = "0" ! "1" ! ... ! "7"

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages