* Implement first version of languages interfaces and classes ParsersController заменен на LanguageProvider. * Update ParserTools.csproj * Update RemoteCompiler.cs * Update TestRunner * Rename LanguageIntegrator project to Languages * Update TestRunner * Rename Parsers folder * Rename PascalABCParser.dll to PascalABCLanguage.dll * Reorganise LanguageIntegrator and rename DocTagsParser * Update Release Generators * Update language loading messages * Update linux version * Move BaseParser fields to ILanguage interface * Revert "Update Release Generators" This reverts commit 26a991c71b81e643d9fbd9a815ddca222768dda9. * Revert "Rename PascalABCParser.dll to PascalABCLanguage.dll" * Clean the mess in parser folders * Organize namespaces properly * Revert "Rename LanguageIntegrator project to Languages" * Add new enclosing folders for standard languages * Organize namespaces of LanguageIntegrator properly * Rename StandardLanguages to Languages * Comment the rest of Visual basic source code * Update OutputPath in pascal parser project * Move BaseParser methods to IParser * Restore Pascal parser project initial structure * Add PascalLanguage project * Move SyntaxTreeConverters project to Languages\Pascal folder * Rename SemanticRules in parser project * Rename Errors1 to Errors in parser project * Delete LambdaConverter dll from installer * Update language integrator to load *Language.dll files * Move lambda converter project to pascal lanuage dir * Revert "Delete LambdaConverter dll from installer" This reverts commit dd56f559ebe4f8c4c5c33752d44e6953001b96a5. * Switch off VBNETParser building * Delete syntax tree converters controller * Delete lambda converter dll from repository * Reorganize syntax tree to semantic tree conversion stage * Add BaseLanguage class to make language initialization more neat * Delete syntax tree post processors entity from ILanguage and refactor ABCStatistics calls * Add new IDocParser interface for documentation comments parser * Clean up folders * Add helper data structures to reduce parameters amount in CompileInterface and CompileImplementation * Add documentation to language classes * Move Union struct in global namespace and project (ParserTools) * Add more comments and a safe select language method * Rename SemanticRules class * Fix directives format null bug * Add System.Linq ref to LanguageIntegrator * Delete SyntaxToSemanticTreeConverter interface * Add BaseSyntaxTreeConverter * Call safe select language method in intellisence * Delete source files providers from parsers * Rename GetSyntaxTree method * Change Prebuild tree to be virtual - not abstract * Refresh documentation a bit * Add temporary language check for ABCHealth button * Add parser reference to parser tools * Move current compilation unit assigning higher to avoid bug with unit check * Delete null DirectiveInfo's and refactor directives' code * Add a few more comments |
||
|---|---|---|
| .github/workflows | ||
| _NewAppIcons | ||
| _ParsePABC1 | ||
| _Presentations/2015 New Features | ||
| bin | ||
| CodeCompletion | ||
| CodeExamples | ||
| Compiler | ||
| CompilerTools | ||
| Configuration | ||
| Debugger.Core | ||
| doc | ||
| Errors | ||
| Grammars | ||
| ICSharpCode.TextEditor | ||
| ICSharpCode.TextEditorLinux | ||
| InstallerSamples | ||
| InteractiveDataDisplay_OneDll | ||
| LambdaAnySynToSemConverter | ||
| LanguageIntegrator | ||
| Languages | ||
| Libraries | ||
| Localization | ||
| NETGenerator | ||
| Optimizer | ||
| pabcnetc | ||
| pabcnetc_clear | ||
| PABCNetHelp | ||
| ParserTools | ||
| PluginsSupport | ||
| PluginsSupportLinux | ||
| Release | ||
| ReleaseGenerators | ||
| SemanticTree | ||
| StringConstants | ||
| SyntaxTree | ||
| SyntaxVisitors | ||
| TestSuite | ||
| TreeConverter | ||
| Utils | ||
| VisualPascalABCNET | ||
| VisualPascalABCNETLinux | ||
| VisualPlugins | ||
| WeifenLuo | ||
| WeifenLuoLinux/WinFormsUI | ||
| Yield | ||
| YMC | ||
| .gitignore | ||
| _BuildDebug.bat | ||
| _BuildDebug.sh | ||
| _Clean.bat | ||
| _GenerateAllSetups.bat | ||
| _GenerateLinuxVersion.bat | ||
| _ReBuildDebug.bat | ||
| _RebuildDebugAndBuildUnits.bat | ||
| _ReBuildRelease.bat | ||
| _RebuildRelease.sh | ||
| _RebuildReleaseAndBuildUnits.bat | ||
| _RebuildReleaseAndRunTests.bat | ||
| _RebuildReleaseAndRunTests.sh | ||
| _RebuildReleaseAndRunTestsForGitHubActions.bat | ||
| _RegisterHelixNUnit.bat | ||
| _TestGitIgnore.bat | ||
| fileslist_install.pas | ||
| pabcnetc.sln | ||
| PascalABCNET.axml | ||
| PascalABCNET.sln | ||
| PascalABCNET.xml | ||
| PascalABCNET_40.sln | ||
| PascalABCNETLinux.sln | ||
| README.md | ||
| Studio.bat | ||
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/)
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.
$ 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:
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
Run the PascalABC.NET command line compiler
$ 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/)
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
Сборка проекта и выполение тестов
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
Сборка проекта в MacOS
Скачайте и установите Mono с официального сайта. При необходимости установите git-клиент. Далее выполните команды
$ git clone https://github.com/pascalabcnet/pascalabcnet
$ cd pascalabcnet
$ sh _RebuildReleaseAndRunTests.sh
Запуск
$ cd bin
$ mono pabcnetc.exe
или $ mono --debug pabcnetc.exe
Тесты
Тесты расположены в папке TestSuite. Прогон тестов осуществляется программой bin/TestRunner.exe