Skip to content

Programming language in Russian and Belarusian translated into Java using Runtime compiler.

License

Notifications You must be signed in to change notification settings

Lime-blur/yoptava

Repository files navigation

Yoptava

yoptava logo

release contributions welcome yoptava license

Содержание

  1. О языке
  2. Разработка
  3. Предупреждения
  4. Использование
  5. Добавление собственного словаря
  6. Проблемы
  7. Добавление подсветки синтаксиса
  8. Примеры

О языке

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

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

Разработка

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

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

Caution

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

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

  1. Добавьте репозиторий JitPack в файл сборки:
<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
  1. Добавьте зависимость:
<dependency>
    <groupId>com.github.Lime-blur</groupId>
    <artifactId>yoptava</artifactId>
    <version>latest_version</version>
</dependency>
  1. Инициализируйте необходимый язык программирования, например Goptava:
public class Main {
    public static void main(String[] args) {
        Yoptava.initGoptava();
    }
}
  1. Приступайте к написанию русскоязычного Java кода в файле Авторитет.goptava, предварительно положив его в папку goptava в корне вашего проекта! Примеры реализации:

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

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

  1. Реализовать класс словаря:
public final 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;
    }
}
  1. Создать собственные настройки:
public final class Settings {
    static final String PROJECT_PATH = System.getProperty("user.dir") + FileUtils.fileSeparator;
    static final Language LANGUAGE_MYPTAVA = new Language(".myptava", new MyptavaDictionary());
    static final String SOURCES_DIRECTORY_MYPTAVA = "myptava";
    static final String PROJECT_SOURCES_DIRECTORY_MYPTAVA = PROJECT_PATH + SOURCES_DIRECTORY_MYPTAVA + FileUtils.fileSeparator;
    static final String MAIN_CLASS_NAME_MYPTAVA = "Load";
    static final String MAIN_CLASS_LOAD_METHOD_MYPTAVA = "load";
}
  1. Реализовать класс настроек:
public final class MyptavaSettings implements YoptavaSettings {

    @Override
    public Language getLanguage() {
        return Settings.LANGUAGE_MYPTAVA;
    }

    @Override
    public String getSourcesDirectory() {
        return Settings.SOURCES_DIRECTORY_MYPTAVA;
    }

    @Override
    public String getProjectSourcesDirectory() {
        return Settings.PROJECT_SOURCES_DIRECTORY_MYPTAVA;
    }

    @Override
    public String getMainClassName() {
        return Settings.MAIN_CLASS_NAME_MYPTAVA;
    }

    @Override
    public String getMainClassLoadMethod() {
        return Settings.MAIN_CLASS_LOAD_METHOD_MYPTAVA;
    }
}
  1. Инициализировать собственный язык программирования:
public class Main {

    private static final MyptavaSettings myptavaSettings = new MyptavaSettings();

    public static void main(String[] args) {
        Yoptava.init(myptavaSettings);
    }
}
  1. После этого можно приступать к написанию кода на вашем языке программирования в файле Load.myptava, предварительно положив его в папку myptava в корне вашего проекта! Пример реализации: myptava, example_custom.

Проблемы

  • Приветствуется упрощение парсинга файлов в классе YoptavaParser
  • Очень приветствуется дополнение словарей goptava, ruptava, belptava и leptava

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

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

Примеры

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