203 lines
8.8 KiB
Markdown
203 lines
8.8 KiB
Markdown
Форк для добавления русских синонимов в синтаксис 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
|
||
|