Commit graph

58 commits

Author SHA1 Message Date
AlexanderZemlyak 342375501b
New languages engine (#3120)
* 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
2024-05-25 12:26:32 +03:00
AlexanderZemlyak efb4a4338f
New checks for directives added (#3099)
* Extract base classes from ParserTools (local) and GPPGParserHelper

* Fix string resources error

* Extract base class for unexpected token error

* Update ParserTools project file

* Add comments for compiler directives usages in compiler

* Add directives checks

* Move string constants to new project

* Implement scalable directives checks

* Remove known directives from compiler

* Fix PABCSystem namespace error

* Allow region and endregion with no params

* Allow parameters to endif directive

* Delete directive parameters extension checks

* Replace error with warning for uknown directive case

* Fix generate native code (semantic rule) assigning

* Improve error messages for directives

* Rename RunParseThread to SwitchOnIntellisence

Для отладки может требоваться отключение Intellisence на уровне кода. Для понятности метод назван SwitchOnIntellisence.

* Resolve merge conflicts

* Add new compiler errors for unsupported target framework and output file type

* Add documentation to directives checks

* Fix directives check loop
2024-05-04 20:21:50 +03:00
AlexanderZemlyak 0ae7595f0d
Implement programming languages integration functionality (#3001)
* Make standardModules Dictionary instead of LanguageId usage

* Create new common string constants for pascal language

* Add LanguagesData class template

* Move some compiler directive string constants to Compiler project

* Extract LanguagesData class to separate file

Also extracted RuntimeServiceModule (IO-modules) management to new functions.

* Fix pabcnetc crashing (KeyNotFoundException)

* Make similar change in pabcnetc_clear

* Return PABCExtensions in DomConverter.cs

* Return compiler string constants to Tree Converter

* Rename MoveSystemUnitForward method

* Rename system unit variable

* Add new parser load error (localized versions)

* Fix pascal language name constant

* Add system units property to parsers

* Add LanguageKits directory with a test file

* Implement language integrator

Был реализован загрузчик комплектов дополнительных языков (всех кроме Pascal). Был пересмотрен подход к реализации ParsersController и этот класс сделан синглтоном. Добавлена загрузка стандартных модулей языков в CompilerOptions.

* Squashed commit of the following:

commit 8f9dc7e5a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Mar 11 20:33:13 2024 +0300

    fix #3050

commit 90363ced45
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Mar 3 21:37:25 2024 +0300

    Недобитки при сортировке строк

commit c9d7ba7758
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Mar 2 13:32:14 2024 +0300

    Order и OrderDescending для строк с Ordinal

commit 6fbc0200bf
Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com>
Date:   Tue Feb 27 23:21:26 2024 +0300

    Fix interface loop dependency check (#3047)

    Tests for problematic case were added

commit e4d63bfef9
Author: bormant <bormant@mail.ru>
Date:   Tue Feb 27 23:18:25 2024 +0300

    Fix typo: C (ru) -> C (en) (#3042)

commit 0d37232d21
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 27 19:15:08 2024 +0300

    School - исправление пустого диапазона простых и IP-адресов

commit 9fd4c7f338
Merge: 3cca2a89 6027083b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Feb 21 20:57:10 2024 +0100

    Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet

commit 3cca2a8949
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Feb 21 20:56:49 2024 +0100

    fix in formatter
2024-03-13 22:16:40 +03:00
Friedrich von Never 71df51f219 (#2905) More design fixes for AssemblyResolveScope, fix leaks 2023-07-31 22:34:16 +02:00
Ivan Bondarev 8660c5634c #2907 2023-07-30 14:54:49 +02:00
Friedrich von Never aff608565e (#2905) Short-term solution: load Microsoft assemblies via Assembly::LoadFrom 2023-07-24 23:15:46 +02:00
Friedrich von Never e9e50b3632 Merge remote-tracking branch 'upstream/master' into feature/reference-resolve
# Conflicts:
#	TreeConverter/NetWrappers/NetHelper.cs
2023-07-16 16:24:37 +02:00
Ivan Bondarev de9a369e22 LoadFrom for Microsoft.* assemblies 2023-01-08 10:54:54 +01:00
Ivan Bondarev 88323a0675 fix in LoadAssembly 2023-01-03 17:59:03 +01:00
Ivan Bondarev 7fe6c8219f fix pascalabcnet/pascalabcnetide#251 2022-11-01 14:17:46 +01:00
Friedrich von Never 2810132be7 Compiler: preload the reference assemblies, add an assembly resolver
This allows the compiler to strictly follow the user-provided reference
assembly list. It is very useful for cases when the reference list is
huge and not everything in it is in clear state; for example, when a
reference assembly list is provided by NuGet transitive closure.
2022-09-25 14:49:58 +02:00
Friedrich von Never 3d112fa28b (#2718) NetHelper: fix type lookup when it has several entries 2022-09-21 21:32:51 +02:00
Ivan Bondarev 198faa5bf5 #2478 2021-10-24 14:17:47 +02:00
Ivan Bondarev 5050008879 fix #2457 2021-03-21 13:46:54 +01:00
Mikhalkovich Stanislav fa2dd98e06 PT4 новые задания A...
SF - новые типы
2020-10-28 19:08:05 +03:00
Бондарев Иван 735e051a87 bug fix #2143 2020-06-29 22:01:14 +02:00
Бондарев Иван 259b3c34b5 bug fix #2086 2020-06-28 15:01:06 +02:00
Бондарев Иван dac1a87ff7 bug fix #2170 2020-01-12 14:25:53 +01:00
Бондарев Иван 0bd5de383b bug fix #831 2019-10-08 20:23:16 +02:00
Бондарев Иван 606a9583b6 fix pascalabcnet/pascalabcnetide#136 2019-09-08 11:14:00 +02:00
Mikhalkovich Stanislav e603b1fd6d Mikhalkovich в Copyright
Заготовка для школьного плагина образцов кода
2019-07-28 23:53:15 +03:00
Mikhalkovich Stanislav f7a01bc366 bug fix #1946 2019-05-20 23:48:59 +03:00
Mikhalkovich Stanislav 333f76cd68 fix #1941 2019-05-18 00:40:21 +03:00
Mikhalkovich Stanislav bea912377e В стандартной библиотеке все имена Indexes заменены на Indices 2019-02-06 19:50:05 +03:00
Бондарев Иван 74b29425e7 fix #1407 2019-01-06 11:07:07 +01:00
Бондарев Иван 4600c3b734 fix #1159
fix #1143
2018-09-06 20:49:18 +02:00
Бондарев Иван 2208af5f9d bug fix #1011 2018-08-08 16:48:19 +02:00
miks1965 ca085a35d2 try bug fix 815 2018-05-09 12:12:34 +03:00
miks1965 449563bc1b bug fix #664 2018-05-05 22:42:22 +03:00
andrewlord607 a8b5d90383 Удалён класс SymbolInfoList, теперь достаточно List<SymbolInfo>
Добавлена и частично интегрирована новая таблица символов
2018-04-14 18:29:11 +03:00
Бондарев Иван 5924f11216 bug fix #594 2017-12-05 20:39:14 +01:00
Бондарев Иван 2e46be3190 bug fix in pcu 2017-11-23 21:00:04 +01:00
andrewlord607 aa79c94f6f Небольшой рефакторинг таблицы символов. 2017-10-23 11:21:15 +03:00
Бондарев Иван b6a5ccb40d bug fix #527 2017-10-17 21:20:09 +02:00
Бондарев Иван 3f520df65e Поддержка пространств имен в проектах
Возможность расширять пространства имен .NET
2017-10-03 20:18:37 +02:00
Бондарев Иван 01efad3d4f bug fix 2017-08-08 22:00:19 +02:00
Бондарев Иван e8a38276b6 bug fix #452 2017-08-07 18:52:35 +02:00
miks1965 10f4ee3436 Minor changes 2017-06-01 23:42:35 +03:00
Бондарев Иван e5e4c0f4b8 bug fix in refactoring of SymbolTable 2017-06-01 19:34:03 +02:00
andrewlord607 c697c95f81 extensionoperators2 test fix 2017-05-22 20:53:52 +03:00
andrewlord607 4fddf5c66a SymbolTable refactoring #2 2017-05-20 21:20:02 +03:00
andrewlord607 8a6506e73e SymTable refactoring 2017-05-09 12:52:40 +03:00
Бондарев Иван 24b49d8da8 PABCExtensions.pas 2017-02-09 21:33:33 +01:00
Бондарев Иван 44ec47b359 bug fix #306 2016-12-03 18:40:39 +01:00
Бондарев Иван 5e75a1c66f bug fix #95, #155 2016-05-16 20:45:03 +02:00
Бондарев Иван a4d4a7a64a bug fix #156 2016-05-15 19:38:19 +02:00
Бондарев Иван 6c9aed039a bug fix #122, #134, #137 2016-04-14 20:16:31 +02:00
Бондарев Иван 29682aa824 bug fix issue #110 2016-03-12 18:46:14 +01:00
Бондарев Иван 1f31c20da2 bug fix issues #84, #85, #89 2016-02-21 17:12:52 +01:00
Бондарев Иван 7b9e7e6676 bug fix issue #69 2016-02-03 19:57:43 +01:00