Skip to content

Commit 1491d90

Browse files
authored
Merge pull request #30 from Lime-blur/develop
Добавил белорусский словарь
2 parents 2639c2d + d6d7231 commit 1491d90

File tree

15 files changed

+801
-6
lines changed

15 files changed

+801
-6
lines changed

README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
Yoptava — это первый в мире язык программирования на русском языке, транслируемый в Java с помощью Runtime компилятора. Yoptava позволяет выбрать определённую лексику для программирования, например:
2121

2222
- [ruptava](https://github.com/Lime-blur/yoptava/blob/main/example/ruptava) — классический язык программирования Java на русском языке
23+
- [belptava](https://github.com/Lime-blur/yoptava/blob/main/example/belptava) — классический язык программирования Java на белорусском языке
2324
- [goptava](https://github.com/Lime-blur/yoptava/blob/main/example/goptava) — язык программирования Java для гопников и реальных пацанов, основанный на [YoptaScript](http://yopta.space/)
2425
- [leptava](https://github.com/Lime-blur/yoptava/blob/main/example/leptava) — язык программирования Java использующий старославянскую лексику
2526

@@ -68,6 +69,7 @@ public class Main {
6869
- Goptava: [goptava](https://github.com/Lime-blur/yoptava/blob/main/example/goptava), [example_goptava](https://github.com/Lime-blur/yoptava/blob/main/example/src/main/java/ru/limedev/example/example_goptava)
6970
- Leptava: [leptava](https://github.com/Lime-blur/yoptava/blob/main/example/leptava), [example_leptava](https://github.com/Lime-blur/yoptava/blob/main/example/src/main/java/ru/limedev/example/example_leptava)
7071
- Ruptava: [ruptava](https://github.com/Lime-blur/yoptava/blob/main/example/ruptava), [example_ruptava](https://github.com/Lime-blur/yoptava/blob/main/example/src/main/java/ru/limedev/example/example_ruptava)
72+
- Belptava: [belptava](https://github.com/Lime-blur/yoptava/blob/main/example/belptava), [example_belptava](https://github.com/Lime-blur/yoptava/blob/main/example/src/main/java/ru/limedev/example/example_belptava)
7173

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

@@ -150,10 +152,10 @@ public class Main {
150152
## Проблемы
151153

152154
- **Приветствуется** упрощение парсинга файлов в классе [YoptavaParser](https://github.com/Lime-blur/yoptava/blob/main/src/main/java/ru/limedev/yoptava/parser/YoptavaParser.java)
153-
- **Очень приветствуется** дополнение словарей `goptava`, `ruptava` и `leptava`
155+
- **Очень приветствуется** дополнение словарей `goptava`, `ruptava`, `belptava` и `leptava`
154156

155157
## Добавление подсветки синтаксиса
156-
Если вы пользуетесь Intellij Idea, вы можете добавить подсветку синтаксиса `.goptava`, `.ruptava`, `.leptava` файлов используя следующие файлы: [Ruptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Ruptava.txt), [Goptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Goptava.txt), [Leptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Leptava.txt).
158+
Если вы пользуетесь Intellij Idea, вы можете добавить подсветку синтаксиса `.goptava`, `.ruptava`, `belptava`, `.leptava` файлов используя следующие файлы: [Goptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Goptava.txt), [Ruptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Ruptava.txt), [Belptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Belptava.txt), [Leptava.txt](https://github.com/Lime-blur/yoptava/blob/main/intellij_settings/editor_filetypes/Leptava.txt).
157159

158160
## Примеры
159-
В [ruptava](https://github.com/Lime-blur/yoptava/blob/main/example/ruptava), [goptava](https://github.com/Lime-blur/yoptava/blob/main/example/goptava) и [leptava](https://github.com/Lime-blur/yoptava/blob/main/example/leptava) присутствуют примеры использования массивов, мап, циклов, switch-оператора, а также реализации пакетов, классов и методов.
161+
В [ruptava](https://github.com/Lime-blur/yoptava/blob/main/example/ruptava), [belptava](https://github.com/Lime-blur/yoptava/blob/main/example/belptava), [goptava](https://github.com/Lime-blur/yoptava/blob/main/example/goptava) и [leptava](https://github.com/Lime-blur/yoptava/blob/main/example/leptava) присутствуют примеры использования массивов, мап, циклов, switch-оператора, а также реализации пакетов, классов и методов.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
пакет model.base;
2+
3+
публічны інтэрфейс БазаваяМадэль {
4+
5+
Радок атрымацьНазву();
6+
7+
Радок атрымацьДругуюНазву();
8+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
пакет model;
2+
3+
імпартаваць model.base.БазаваяМадэль;
4+
5+
публічны канчатковы клас ІмяПрозвішча рэалізуе БазаваяМадэль {
6+
7+
прыватны канчатковы Радок імя;
8+
прыватны канчатковы Радок прозвішча;
9+
10+
публічны ІмяПрозвішча(Радок імя, Радок прозвішча) {
11+
гэты.імя = імя;
12+
гэты.прозвішча = прозвішча;
13+
}
14+
15+
@Перавызначыць
16+
публічны Радок атрымацьНазву() {
17+
вярнуць гэты.імя;
18+
}
19+
20+
@Перавызначыць
21+
публічны Радок атрымацьДругуюНазву() {
22+
вярнуць гэты.прозвішча;
23+
}
24+
25+
@Перавызначыць
26+
публічны Радок даРадка() {
27+
вярнуць імя + " " + прозвішча;
28+
}
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
пакет model;
2+
3+
імпартаваць model.base.БазаваяМадэль;
4+
5+
публічны канчатковы клас ХімічныЭлемент рэалізуе БазаваяМадэль {
6+
7+
прыватны канчатковы Радок назва;
8+
прыватны канчатковы Радок сімвалЭлемента;
9+
10+
публічны ХімічныЭлемент(Радок назва, Радок сімвалЭлемента) {
11+
гэты.назва = назва;
12+
гэты.сімвалЭлемента = сімвалЭлемента;
13+
}
14+
15+
@Перавызначыць
16+
публічны Радок атрымацьНазву() {
17+
вярнуць гэты.назва;
18+
}
19+
20+
@Перавызначыць
21+
публічны Радок атрымацьДругуюНазву() {
22+
вярнуць гэты.сімвалЭлемента;
23+
}
24+
25+
@Перавызначыць
26+
публічны Радок даРадка() {
27+
вярнуць назва + " (" + сімвалЭлемента + ")";
28+
}
29+
}
+135
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
імпартаваць java.util.СпісМасіва;
2+
імпартаваць java.util.Спіс;
3+
імпартаваць java.util.ХэшКарта;
4+
імпартаваць java.util.Карта;
5+
6+
імпартаваць model.ІмяПрозвішча;
7+
імпартаваць model.ХімічныЭлемент;
8+
9+
публічны клас Галоўны {
10+
11+
прыватны статычны канчатковы Спіс<Радок> ключавыяРадкі = новы СпісМасіва<Радок>() {
12+
{
13+
дадаць("публічны статычны пусты 1");
14+
дадаць("публічны статычны пусты 2");
15+
дадаць("публічны статычны пусты 3");
16+
дадаць("публічны статычны пусты 4");
17+
дадаць("публічны статычны пусты 5");
18+
}
19+
};
20+
21+
прыватны статычны канчатковы цэлы[][] матрыца = {
22+
{0, 1, 2, 3, 4},
23+
{1, 2, 3, 4, 5},
24+
{2, 3, 4, 5, 6},
25+
{3, 4, 5, 6, 7}
26+
};
27+
28+
прыватны статычны канчатковы Карта<ІмяПрозвішча, Лагічны> часопіс = новы ХэшКарта<>();
29+
30+
статычны {
31+
запоўніцьЧасопіс();
32+
}
33+
34+
/**
35+
* Альтэрнатыва метаду "main" у java.
36+
*/
37+
публічны статычны пусты галоўны() {
38+
раздрукавацьРадкі();
39+
раздрукавацьМатрыцу();
40+
раздрукавацьАтмасферуПланеты();
41+
праверыцьНаведвальнасць();
42+
}
43+
44+
/**
45+
* Друкуе спіс з радкоў з ключавымі словамі Belptava.
46+
*/
47+
прыватны статычны пусты раздрукавацьРадкі() {
48+
для (Радок ключ : ключавыяРадкі) {
49+
сістэмнаРаздрукавацьРадок(ключ);
50+
}
51+
}
52+
53+
/**
54+
* Друкуе матрыцу з цэлых лікаў.
55+
*/
56+
прыватны статычны пусты раздрукавацьМатрыцу() {
57+
сістэмнаРаздрукавацьРадок("");
58+
для (цэлы i = 0; i < матрыца.даўжыня; i++) {
59+
для (цэлы j = 0; j < матрыца[i].даўжыня; j++) {
60+
сістэмнаРаздрукаваць(матрыца[i][j] + " ");
61+
}
62+
Сістэма.вывад.раздрукаваць("\n");
63+
}
64+
}
65+
66+
/**
67+
* Друкуе атмасферу планеты Зямля.
68+
*/
69+
прыватны статычны пусты раздрукавацьАтмасферуПланеты() {
70+
Спіс<ХімічныЭлемент> атмасфера = атрымацьАтмасферуПланеты(3);
71+
сістэмнаРаздрукавацьРадок("\nАтмасфера планеты \"Зямля\" складаецца з:");
72+
для (ХімічныЭлемент хімічныЭлемент : атмасфера) {
73+
Сістэма.вывад.раздрукавацьРадок(хімічныЭлемент.даРадка());
74+
}
75+
}
76+
77+
/**
78+
* Вызначае атмасферу планеты па значэнні нумарАдСонца.
79+
*/
80+
прыватны статычны Спіс<ХімічныЭлемент> атрымацьАтмасферуПланеты(цэлы нумарАдСонца) {
81+
Спіс<ХімічныЭлемент> вынік = новы СпісМасіва<>();
82+
перамыкач (нумарАдСонца) {
83+
выпадак 1: вынік.дадаць(новы ХімічныЭлемент("Няма атмасферы", "?"));
84+
перапыніць;
85+
выпадак 2:
86+
выпадак 4: вынік.дадаць(новы ХімічныЭлемент("Вуглякіслы газ", "CO2"));
87+
перапыніць;
88+
выпадак 3: вынік.дадаць(новы ХімічныЭлемент("Вуглякіслы газ", "CO2"));
89+
вынік.дадаць(новы ХімічныЭлемент("Азот", "N2"));
90+
вынік.дадаць(новы ХімічныЭлемент("Кісларод", "O2"));
91+
перапыніць;
92+
выпадак 5:
93+
выпадак 6: вынік.дадаць(новы ХімічныЭлемент("Вадарод", "H2"));
94+
вынік.дадаць(новы ХімічныЭлемент("Гелій", "He"));
95+
перапыніць;
96+
выпадак 7:
97+
выпадак 8: вынік.дадаць(новы ХімічныЭлемент("Метан", "CH4"));
98+
вынік.дадаць(новы ХімічныЭлемент("Вадарод", "H2"));
99+
вынік.дадаць(новы ХімічныЭлемент("Гелій", "He"));
100+
перапыніць;
101+
стандартны:
102+
перапыніць;
103+
}
104+
вярнуць вынік;
105+
}
106+
107+
/**
108+
* Запаўняе часопіс наведвальнасці вучняў.
109+
*/
110+
прыватны статычны пусты запоўніцьЧасопіс() {
111+
часопіс.пакласці(новы ІмяПрозвішча("Ваня", "Карпаў"), праўда);
112+
часопіс.пакласці(новы ІмяПрозвішча("Жэня", "Уласаў"), хлусня);
113+
часопіс.пакласці(новы ІмяПрозвішча("Дзіма", "Сафонаў"), праўда);
114+
часопіс.пакласці(новы ІмяПрозвішча("Пеця", "Шароў"), хлусня);
115+
часопіс.пакласці(новы ІмяПрозвішча("Коля", "Шчукін"), праўда);
116+
часопіс.пакласці(новы ІмяПрозвішча("Лена", "Якушава"), праўда);
117+
часопіс.пакласці(новы ІмяПрозвішча("Каця", "Шашкова"), хлусня);
118+
часопіс.пакласці(новы ІмяПрозвішча("Таня", "Ражкова"), праўда);
119+
часопіс.пакласці(новы ІмяПрозвішча("Галя", "Селязнёва"), хлусня);
120+
}
121+
122+
/**
123+
* Правярае наведвальнасць вучняў.
124+
*/
125+
прыватны статычны пусты праверыцьНаведвальнасць() {
126+
сістэмнаРаздрукавацьРадок("\nПравяраем наведвальнасць:");
127+
для (Карта.Запіс<ІмяПрозвішча, Лагічны> запіс : часопіс.наборЗапісаў()) {
128+
калі (запіс.атрымацьЗначэнне() == праўда) {
129+
Сістэма.вывад.раздрукавацьРадок(запіс.атрымацьКлюч().даРадка() + " тут, малайчына!");
130+
} інакш {
131+
Сістэма.памылка.раздрукавацьРадок(запіс.атрымацьКлюч().даРадка() + " адсутнічае, дрэнна!");
132+
}
133+
}
134+
}
135+
}

example/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<dependency>
3232
<groupId>com.github.Lime-blur</groupId>
3333
<artifactId>yoptava</artifactId>
34-
<version>2.1</version>
34+
<version>2.1.1</version>
3535
</dependency>
3636
</dependencies>
3737
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package ru.limedev.example.example_belptava;
2+
3+
import ru.limedev.yoptava.Yoptava;
4+
5+
public class Main {
6+
7+
public static void main(String[] args) {
8+
Yoptava.initBelptava();
9+
}
10+
}

0 commit comments

Comments
 (0)