- О языке
- Разработка
- Предупреждения
- Использование
- Добавление собственного словаря
- Проблемы
- Добавление подсветки синтаксиса
- Примеры
Yoptava — это первый в мире язык программирования на русском языке, транслируемый в Java с помощью Runtime компилятора. Yoptava позволяет выбрать определённую лексику для программирования, например:
- ruptava — классический язык программирования Java на русском языке
- belptava — классический язык программирования Java на белорусском языке
- goptava — язык программирования Java для гопников и реальных пацанов, основанный на YoptaScript
- leptava — язык программирования Java использующий старославянскую лексику
Вся разработка и поиск ошибок ведётся в ветке develop! При разработке языка использовался язык программирования YoptaScript, Словарь старославянских слов, Словарь старорусских слов, а также Викисловарь.
Caution
Yoptava была реализована всего за несколько дней и не является серьёзной разработкой.
Yoptava не несёт в себе цели оскорбить кого-то или унизить. Yoptava содержит множество нецензурной лексики.
- Добавьте репозиторий JitPack в файл сборки:
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
- Добавьте зависимость:
<dependency>
<groupId>com.github.Lime-blur</groupId>
<artifactId>yoptava</artifactId>
<version>latest_version</version>
</dependency>
- Инициализируйте необходимый язык программирования, например
Goptava
:
public class Main {
public static void main(String[] args) {
Yoptava.initGoptava();
}
}
- Приступайте к написанию русскоязычного Java кода в файле
Авторитет.goptava
, предварительно положив его в папкуgoptava
в корне вашего проекта! Примеры реализации:- Goptava: goptava, example_goptava
- Leptava: leptava, example_leptava
- Ruptava: ruptava, example_ruptava
- Belptava: belptava, example_belptava
Yoptava поддерживает возможность добавления собственного словаря. Для этого необходимо:
- Реализовать класс словаря:
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;
}
}
- Создать собственные настройки:
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";
}
- Реализовать класс настроек:
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;
}
}
- Инициализировать собственный язык программирования:
public class Main {
private static final MyptavaSettings myptavaSettings = new MyptavaSettings();
public static void main(String[] args) {
Yoptava.init(myptavaSettings);
}
}
- После этого можно приступать к написанию кода на вашем языке программирования в файле
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-оператора, а также реализации пакетов, классов и методов.