Skip to content

oliolaina/ConfigLanguage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Домашнее задание №3

Разработать инструмент командной строки для учебного конфигурационного языка, синтаксис которого приведен далее. Этот инструмент преобразует текст из входного формата в выходной. Синтаксические ошибки выявляются с выдачей сообщений.

Входной текст на языке json принимается из файла, путь к которому задан ключом командной строки. Выходной текст на учебном конфигурационном языке попадает в стандартный вывод.

Однострочные комментарии:

C Это однострочный комментарий 

Словари:

table( 
имя => значение, 
имя => значение, 
имя => значение, 
... 
) 

Имена:

[a-zA-Z][_a-zA-Z0-9]* 

Значения:

• Числа. 
• Строки. 
• Словари. 

Строки:

  "Это строка" 

Объявление константы на этапе трансляции:

  (def имя значение) 

Вычисление константы на этапе трансляции:

  |имя| 

Результатом вычисления константного выражения является значение.

Все конструкции учебного конфигурационного языка (с учетом их возможной вложенности) должны быть покрыты тестами.

Пример работы

Входной файл на языке json:

{
 "comment": "configuration example",
 "player": {
  "name": "Player1",
  "health": "100",
  "level": "1",
  "inventory": {
   "weapon": "sword",
   "items": "potion"
  }
 }
}

Выходной файл на учебном конфигурационном языке:

C configuration example
(def comment "configuration example")
(def player table(
name => "Player1",
health => "100",
level => "1",
inventory => table(
weapon => "sword",
items => "potion"
)
))

Результаты тестов

image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages