pascalabcnet/README.md

203 lines
8.8 KiB
Markdown
Raw Permalink Normal View History

2026-07-04 18:31:15 +03:00
Форк для добавления русских синонимов в синтаксис PascalABC.NET
2026-07-04 19:58:25 +03:00
***Изменения внесены в Keywords.cs***
// 🇷🇺 РУССКИЕ СИНОНИМЫ
// Логические операторы
CreateNewKeyword("или", Tokens.tkOr);
CreateNewKeyword("и", Tokens.tkAnd);
CreateNewKeyword("не", Tokens.tkNot);
CreateNewKeyword("исключающее_или", Tokens.tkXor);
CreateNewKeyword("див", Tokens.tkDiv);
CreateNewKeyword("остаток", Tokens.tkMod);
// Условия и циклы
CreateNewKeyword("если", Tokens.tkIf);
CreateNewKeyword("то", Tokens.tkThen);
CreateNewKeyword("иначе", Tokens.tkElse);
CreateNewKeyword("выбор", Tokens.tkCase);
CreateNewKeyword("для", Tokens.tkFor);
CreateNewKeyword("от", Tokens.tkTo);
CreateNewKeyword("вниз_до", Tokens.tkDownto);
CreateNewKeyword("шаг", Tokens.tkStep);
CreateNewKeyword("пока", Tokens.tkWhile);
CreateNewKeyword("повтор", Tokens.tkRepeat);
CreateNewKeyword("до", Tokens.tkUntil);
CreateNewKeyword("цикл", Tokens.tkLoop);
CreateNewKeyword("для_каждого", Tokens.tkForeach);
// Структура программы
CreateNewKeyword("нач", Tokens.tkBegin);
CreateNewKeyword("кон", Tokens.tkEnd);
CreateNewKeyword("алг", Tokens.tkFunction, KeywordKind.Function, true);
CreateNewKeyword("проц", Tokens.tkProcedure, KeywordKind.Function, true);
CreateNewKeyword("перем", Tokens.tkVar, KeywordKind.Var);
CreateNewKeyword("конст", Tokens.tkConst, KeywordKind.Const);
CreateNewKeyword("тип", Tokens.tkType, KeywordKind.Type);
CreateNewKeyword("использовать", Tokens.tkUses, KeywordKind.Uses);
CreateNewKeyword("модуль", Tokens.tkUnit, KeywordKind.Unit);
CreateNewKeyword("программа", Tokens.tkProgram, KeywordKind.Program);
// ООП
CreateNewKeyword("класс", Tokens.tkClass, isTypeKeyword: true);
CreateNewKeyword("запись", Tokens.tkRecord, isTypeKeyword: true);
CreateNewKeyword("конструктор", Tokens.tkConstructor, KeywordKind.Constructor);
CreateNewKeyword("деструктор", Tokens.tkDestructor, KeywordKind.Destructor);
CreateNewKeyword("свойство", Tokens.tkProperty);
CreateNewKeyword("наследованный", Tokens.tkInherited, KeywordKind.Inherited);
CreateNewKeyword("виртуальный", Tokens.tkVirtual);
CreateNewKeyword("переопределить", Tokens.tkOverride);
CreateNewKeyword("абстрактный", Tokens.tkAbstract);
CreateNewKeyword("приватный", Tokens.tkPrivate);
CreateNewKeyword("защищенный", Tokens.tkProtected);
CreateNewKeyword("публичный", Tokens.tkPublic);
// Массивы и коллекции
CreateNewKeyword("массив", Tokens.tkArray, isTypeKeyword: true);
CreateNewKeyword("множество", Tokens.tkSet, isTypeKeyword: true);
CreateNewKeyword("файл", Tokens.tkFile, isTypeKeyword: true);
// Исключения
CreateNewKeyword("попытка", Tokens.tkTry);
CreateNewKeyword("исключение", Tokens.tkExcept);
CreateNewKeyword("конец_попытки", Tokens.tkFinally);
CreateNewKeyword("вызвать", Tokens.tkRaise, KeywordKind.Raise);
// Прочее
CreateNewKeyword("метка", Tokens.tkLabel);
CreateNewKeyword("перейти", Tokens.tkGoto);
CreateNewKeyword("с", Tokens.tkWith);
CreateNewKeyword("в", Tokens.tkIn);
CreateNewKeyword("является", Tokens.tkIs);
CreateNewKeyword("как", Tokens.tkAs);
CreateNewKeyword("новый", Tokens.tkNew, KeywordKind.New);
CreateNewKeyword("пусто", Tokens.tkNil);
CreateNewKeyword("размер", Tokens.tkSizeOf, treatAsFunction: true);
CreateNewKeyword("тип_объекта", Tokens.tkTypeOf, treatAsFunction: true);
#endregion
***примеры программ***
2026-07-04 19:59:19 +03:00
программа Тест;
2026-07-04 19:58:25 +03:00
2026-07-04 19:59:19 +03:00
проц ВыводСтро(obj: object);
нач
Writeln(obj);
кон;
2026-07-04 19:58:25 +03:00
2026-07-04 19:59:19 +03:00
нач
ВыводСтро('ПаскальЁКЛМН.сеть работает1!');
кон.
2026-07-04 19:58:25 +03:00
2026-07-04 18:31:15 +03:00
2016-02-07 14:57:25 +03:00
## Building PascalABC.NET in Windows
2018-01-08 22:32:20 +03:00
***Run _RegisterHelix.bat on first use to install the HelixToolkit.dll and HelixToolkit.Wpf.dll in GAC***
2016-02-07 14:57:25 +03:00
_RebuildReleaseAndRunTests.bat builds the project in Release-mode, rebuilds the pas-units and runs tests (run with administrative privileges!).
2015-12-29 15:40:15 +03:00
2016-02-07 14:57:25 +03:00
_GenerateAllSetups.bat builds the project in Release-mode, rebuilds the pas-units, runs tests and creates the install package (run with administrative privileges!).
2015-12-29 15:40:15 +03:00
2016-02-07 14:57:25 +03:00
_ReBuildRelease.bat builds the project in Release-mode.
2015-12-29 15:40:15 +03:00
2018-01-08 22:32:20 +03:00
_ReBuildDebug.bat builds the project in Debug-mode.
2015-09-06 13:30:44 +03:00
2020-12-06 15:49:53 +03:00
PascalABC is being developed in Visual Studio Community 2019.
2015-09-06 13:35:55 +03:00
2023-03-19 17:08:20 +03:00
## Building PascalABC.NET in Linux (Ubuntu 22.04)
2016-02-07 14:57:25 +03:00
Install Mono (http://www.mono-project.com/docs/getting-started/install/linux/)
2015-12-30 14:51:30 +03:00
```bash
2022-12-11 12:34:27 +03:00
sudo apt install gnupg ca-certificates
2015-12-30 14:51:30 +03:00
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
2022-12-11 12:34:27 +03:00
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
2015-12-30 14:51:30 +03:00
sudo apt-get install mono-devel
sudo apt-get install mono-complete
2023-03-19 16:31:27 +03:00
sudo apt-get install mono-roslyn
sudo apt-get install msbuild
2015-12-30 14:51:30 +03:00
```
2016-02-07 14:57:25 +03:00
Build the project and run tests.
2015-09-10 22:44:35 +03:00
```bash
2015-09-10 22:42:56 +03:00
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
2016-04-03 15:58:20 +03:00
$ sh _RebuildReleaseAndRunTests.sh
2015-09-10 22:44:35 +03:00
```
2016-02-07 14:57:25 +03:00
## Building PascalABC.NET in MacOS
Download and install Mono from official page. Install the git-client. Run the commands:
2015-10-20 22:26:03 +03:00
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
2016-04-03 15:58:20 +03:00
$ sh _RebuildReleaseAndRunTests.sh
2015-10-20 22:26:03 +03:00
```
2016-02-07 14:57:25 +03:00
### Run the PascalABC.NET command line compiler
2015-09-10 22:44:59 +03:00
```bash
2015-09-10 22:42:56 +03:00
$ cd bin
$ mono pabcnetc.exe
or $ mono --debug pabcnetc.exe
2015-09-10 22:44:59 +03:00
```
2015-09-06 15:19:19 +03:00
2016-02-07 14:57:25 +03:00
## Tests
Tests are located in the directory "TestSuite". To run the tests execute the file bin/TestRunner.exe
2016-02-07 14:51:02 +03:00
2016-02-07 14:57:25 +03:00
-----------------------------------------------------------------------------------------------------
2016-02-07 14:51:02 +03:00
2016-02-07 14:57:25 +03:00
## Сборка проекта в Windows
2018-01-08 22:32:20 +03:00
***Перед первой компиляцией необходимо запустить _RegisterHelix.bat с правами администратора***
2016-02-07 14:57:25 +03:00
_RebuildReleaseAndRunTests.bat собирает проект в Release-режиме, перекомпилирует pas-модули и прогоняет все тесты (запускать с правами администратора).
2016-02-07 14:51:02 +03:00
2016-02-07 14:57:25 +03:00
_GenerateAllSetups.bat собирает инсталлят (запускать с правами администратора).
2016-02-07 14:51:02 +03:00
2016-02-07 14:57:25 +03:00
_ReBuildRelease.bat собирает проект в Release-режиме.
2016-02-07 14:51:02 +03:00
2016-02-07 14:57:25 +03:00
_ReBuildDebug.bat собирает проект в Debug-режиме.
2016-02-07 14:51:02 +03:00
2020-12-06 15:49:53 +03:00
Разработка ведется в Visual Studio Community 2019.
2016-02-07 14:57:25 +03:00
2022-12-11 12:34:27 +03:00
## Сборка проекта в Linux (Ubuntu 20.04)
2016-02-07 14:57:25 +03:00
Установка Mono (http://www.mono-project.com/docs/getting-started/install/linux/)
2016-02-07 14:51:02 +03:00
```bash
2022-12-11 12:34:27 +03:00
sudo apt install gnupg ca-certificates
2016-02-07 14:51:02 +03:00
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
2022-12-11 12:34:27 +03:00
echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
2016-02-07 14:51:02 +03:00
sudo apt-get install mono-devel
sudo apt-get install mono-complete
```
2016-02-07 14:57:25 +03:00
Сборка проекта и выполение тестов
2016-02-07 14:51:02 +03:00
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
2016-04-03 15:58:20 +03:00
$ sh _RebuildReleaseAndRunTests.sh
2016-02-07 14:51:02 +03:00
```
2016-02-07 14:57:25 +03:00
## Сборка проекта в MacOS
Скачайте и установите Mono с официального сайта. При необходимости установите git-клиент. Далее выполните команды
2016-02-07 14:51:02 +03:00
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
2016-04-03 15:58:20 +03:00
$ sh _RebuildReleaseAndRunTests.sh
2016-02-07 14:51:02 +03:00
```
2016-02-07 14:57:25 +03:00
### Запуск
2016-02-07 14:51:02 +03:00
```bash
$ cd bin
$ mono pabcnetc.exe
или $ mono --debug pabcnetc.exe
```
2016-02-07 14:57:25 +03:00
## Тесты
Тесты расположены в папке TestSuite. Прогон тестов осуществляется программой bin/TestRunner.exe