Skip to content

Lime-blur/yoptava

Repository files navigation

Yoptava

yoptava logo

yoptava contributions welcome yoptava license

Yoptava — это первый в мире язык программирования на русском языке, транслируемый в Java с помощью Runtime компилятора. Yoptava позволяет выбрать определённую лексику для программирования, например:

  • ruptava — классический язык программирования Java на русском языке
  • goptava — язык программирования Java для гопников и реальных пацанов, основанный на YoptaScript
  • leptava — язык программирования Java использующий старославянскую лексику

Разработка

Вся разработка и поиск ошибок ведётся в ветке develop! При разработке языка использовался язык программирования YoptaScript, Словарь старославянских слов, Словарь старорусских слов, а также Викисловарь.

Предупреждения

Yoptava была реализована всего за несколько дней и не является серьёзной разработкой. Yoptava не несёт в себе цели оскорбить кого-то или унизить. Yoptava содержит множество нецензурной лексики.

Использование

  • Скачайте последнюю версию языка
  • Установите Java SDK в Project Structure. Минимальная версия Java SDK — 1.8
  • Внесите нужные настройки в файле YoptavaSettings
  • Приступайте к написанию кода ruptava, goptava или leptava, в зависимости от выставленных настроек

Проблемы

  • Yoptava поддерживает только компиляцию класса Load. Очень приветствуется доработка языка под компиляцию дерева .goptava, .ruptava, .leptava файлов
  • Также приветствуется упрощение парсинга файлов в классе YoptavaParser

Добавление собственного словаря

Имеется возможность добавить свой собственный словарь Yoptava. Для этого необходимо:

  • В пакете dictionary создать новый класс, например:
public class MyptavaDictionary implements Dictionary {

    private final Map<String, String> keywords = new HashMap<String, String>() {
        {
            put("ключевое слово в вашем языке", "оригинал ключевого слова Java");
        }
    };

    @Override
    public @NotNull Map<String, String> getKeywords() {
        return keywords;
    }
}
  • Добавить созданный класс как новый тип языка в LanguageType:
MYPTAVA(".myptava", new MyptavaDictionary())
  • Создать новую папку myptava в корне проекта
  • В YoptavaSettings изменить константы LANGUAGE_TYPE и SOURCES_DIRECTORY:
public static final LanguageType LANGUAGE_TYPE = LanguageType.MYPTAVA;

..

public static final String SOURCES_DIRECTORY = "myptava";

Добавление подсветки синтаксиса

Если вы пользуетесь Intellij Idea, вы можете добавить подсветку синтаксиса .goptava, .ruptava, .leptava файлов используя следующие файлы: Ruptava.txt, Goptava.txt, Leptava.txt.

Примеры

В файлах ruptava, goptava и leptava присутствуют примеры использования массивов, мап, циклов, switch-оператора, а также реализации методов. Приветствуется дополнение примеров.