pascalabcnet/README.md
2026-07-04 16:59:45 +00:00

203 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Форк для добавления русских синонимов в синтаксис PascalABC.NET
***Изменения внесены в 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
***примеры программ***
программа Тест;
проц ВыводСтро(obj: object);
нач
Writeln(obj);
кон;
нач
ВыводСтро('ПаскальЁКЛМН.сеть работает1!');
кон.
## Building PascalABC.NET in Windows
***Run _RegisterHelix.bat on first use to install the HelixToolkit.dll and HelixToolkit.Wpf.dll in GAC***
_RebuildReleaseAndRunTests.bat builds the project in Release-mode, rebuilds the pas-units and runs tests (run with administrative privileges!).
_GenerateAllSetups.bat builds the project in Release-mode, rebuilds the pas-units, runs tests and creates the install package (run with administrative privileges!).
_ReBuildRelease.bat builds the project in Release-mode.
_ReBuildDebug.bat builds the project in Debug-mode.
PascalABC is being developed in Visual Studio Community 2019.
## Building PascalABC.NET in Linux (Ubuntu 22.04)
Install Mono (http://www.mono-project.com/docs/getting-started/install/linux/)
```bash
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
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
sudo apt-get install mono-devel
sudo apt-get install mono-complete
sudo apt-get install mono-roslyn
sudo apt-get install msbuild
```
Build the project and run tests.
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
```
## Building PascalABC.NET in MacOS
Download and install Mono from official page. Install the git-client. Run the commands:
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
```
### Run the PascalABC.NET command line compiler
```bash
$ cd bin
$ mono pabcnetc.exe
or $ mono --debug pabcnetc.exe
```
## Tests
Tests are located in the directory "TestSuite". To run the tests execute the file bin/TestRunner.exe
-----------------------------------------------------------------------------------------------------
## Сборка проекта в Windows
***Перед первой компиляцией необходимо запустить _RegisterHelix.bat с правами администратора***
_RebuildReleaseAndRunTests.bat собирает проект в Release-режиме, перекомпилирует pas-модули и прогоняет все тесты (запускать с правами администратора).
_GenerateAllSetups.bat собирает инсталлят (запускать с правами администратора).
_ReBuildRelease.bat собирает проект в Release-режиме.
_ReBuildDebug.bat собирает проект в Debug-режиме.
Разработка ведется в Visual Studio Community 2019.
## Сборка проекта в Linux (Ubuntu 20.04)
Установка Mono (http://www.mono-project.com/docs/getting-started/install/linux/)
```bash
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
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
sudo apt-get install mono-devel
sudo apt-get install mono-complete
```
Сборка проекта и выполение тестов
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
```
## Сборка проекта в MacOS
Скачайте и установите Mono с официального сайта. При необходимости установите git-клиент. Далее выполните команды
```bash
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
```
### Запуск
```bash
$ cd bin
$ mono pabcnetc.exe
или $ mono --debug pabcnetc.exe
```
## Тесты
Тесты расположены в папке TestSuite. Прогон тестов осуществляется программой bin/TestRunner.exe