Commit graph

1115 commits

Author SHA1 Message Date
Mikhalkovich Stanislav 8a9788e6f9 Перенес проверку set array на уровень парсера
Немного поправил Intellisense по наведению для NewSet

По точке там что то другое работает
2024-12-17 15:06:57 +03:00
Mikhalkovich Stanislav db9679d89f Закончил превращение синтаксиса [] по умолчанию в массивы 2024-12-10 10:59:20 +03:00
Ivan Bondarev 45fdde24b4 #3229 2024-12-08 18:08:00 +01:00
Mikhalkovich Stanislav f8819665ba NS2 2024-11-16 10:56:11 +03:00
Mikhalkovich Stanislav 03be5bd931 Переставил operator:= в NewSet 2024-11-13 22:13:41 +03:00
Mikhalkovich Stanislav 82776f3c77 NewSet - много мелких исправлений.
Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll
2024-11-09 12:18:19 +03:00
Mikhalkovich Stanislav fbd63efa89 NewSets
Некоторые тесты надо исправить
2024-11-03 16:59:48 +03:00
Ivan Bondarev 3eb1d2bd85 #3197 2024-09-22 17:42:09 +02:00
Ivan Bondarev 20edd487e3 #3204 2024-09-22 12:39:03 +02:00
Mikhalkovich Stanislav 8d51f999a5 Автоклассы - разрешение наследования от классов без полей
Модуль Coords
2024-09-19 20:28:28 +03:00
Ivan Bondarev e3ee0fed4c #3097 2024-08-13 13:49:30 +02:00
Ivan Bondarev d396c4a9fe #3178 2024-08-13 10:40:23 +02:00
Ivan Bondarev 0d846d2335
Merge pull request #3170 from samuraiGH/ForeachResolver-rework
Foreach resolver rework
2024-08-12 15:24:11 +02:00
AlexanderZemlyak 97c29a4e1b
Compiler tiding up, refactoring Keywords class and uniting errors in Errors file (#3179)
* Tidy up first part of compiler code

* Rename Net Compiler Options

* Move CompilationErrors to Errors project

* Return default constructor to compiler warning

* Rename semantic check for include namespaces in unit

* Create two Errors files instead of one in Errors project

* Fix current unit is not main program check

* Add documentation to compilation errors in Errors project

* Return compiler thrown errors to Compiler project

* Refactor keywords class - extract base keywords functionality

* Fix keywords case sensitivity

* Fix case sensitivity again...

* Optimize keywords initialization

* Fix parse expression error because of wrong constructor call
2024-07-13 18:44:49 +03:00
Ivan Bondarev 9d3e2db5ec #3164 2024-07-04 19:19:37 +02:00
samuraiGH 7d66f26d4f cleanup and more tests 2024-07-01 00:16:43 +03:00
samuraiGH 464dc794a8 cleanup and more comments 2024-06-30 23:31:28 +03:00
samuraiGH 32f126370c attempt to fix GetEnumerator resolving for Pascal types 2024-06-30 21:35:06 +03:00
samuraiGH 5fa4d9fce7 cold fix set of T resolving 2024-06-28 22:45:07 +03:00
samuraiGH 460ce636ab hot fix set of T resolving 2024-06-28 22:21:06 +03:00
samuraiGH 83c2f29ac6 fix method filtering again 2024-06-28 21:53:11 +03:00
samuraiGH c840a1a47a fix type recovery 2024-06-28 21:32:41 +03:00
samuraiGH 2436627fdd fixing method filtering 2024-06-28 19:18:32 +03:00
samuraiGH 15a05360a4 attempt to fix GetEnumerator resolving for compiled types 2024-06-28 17:25:39 +03:00
Sun Serega f3cfb18eab
Create the array types outside of any unit/scope 2024-06-23 20:46:40 +02:00
Sun Serega 7931ec4ff9
fix #3155 2024-06-23 20:39:55 +02:00
Ivan Bondarev 502f74467a #3123 2024-06-09 21:30:02 +02:00
Ivan Bondarev 8bddc9e62a #3123 2024-06-09 19:35:35 +02:00
Ivan Bondarev acab4c7c01 #3091 2024-06-09 10:50:26 +02:00
AlexanderZemlyak 9f8f982cc2
Delete xml documentation of standard modules (#3140) 2024-06-04 21:49:19 +02:00
Mikhalkovich Stanislav bda964c3af fix #3133 2024-05-31 22:01:54 +03:00
AlexanderZemlyak 8acf536300
Make changes for spython compatibility (#3131)
* Update parser tools

* Update NodesBuilder

* Update syntax_tree_visitor

* Update CompilationErrors
2024-05-28 14:16:03 +03:00
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
Vladislav Krylov 5c38a46f7c
changed accces modifiers for outside visitors (#3128) 2024-05-21 20:17:57 +03:00
Vladislav Krylov 1daa515b4e
Интерфейс семантических проверок + делегат на проверку, является ли файл модулем (#3112)
* changes to fit multi semantic analyzer architecture

* Added CheckIfParsingUnit delegate to Compiler
2024-05-05 18:12:50 +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
Mikhalkovich Stanislav 99845ad152 fix #3102 2024-04-29 23:02:34 +03:00
Mikhalkovich Stanislav 9f9c2a85bd fix #3086
CompilerOptions.StandardModules.ContainsKey(currentCompilationUnit.languageName) - проверка

convert_semantic_strong - раскомментировал try чтобы лучше перехватывать параметры Exception
2024-04-23 20:51:25 +03:00
Mikhalkovich Stanislav 1e66c4d740 mre.Set(); в GraphABC.pas
(ttt[0].sym_info as var_definition_node).type = from0.type; В Assign.cs
2024-04-22 22:41:12 +03:00
Ivan Bondarev 08c5c765b7 #3080 2024-04-14 14:14:46 +02:00
Ivan Bondarev 13872fafa8 fix in read 2024-04-14 11:34:51 +02:00
Ivan Bondarev c00a0f2c85 fix in read 2024-04-14 11:10:22 +02:00
Mikhalkovich Stanislav 6d96161be1 Директива HiddenParams для скрытых модулей 2024-04-04 14:00:54 +03:00
Ivan Bondarev ba0b0f8c39 fix #2976
fix #2881
2024-04-01 12:31:21 +02:00
Ivan Bondarev 019cd031c6 test for #3062 2024-03-31 14:25:10 +02:00
Ivan Bondarev e948a54bf4 #3062 2024-03-31 11:47:31 +02:00
Ivan Bondarev 1609eddc9d #3064 2024-03-31 10:31:22 +02:00
Mikhalkovich Stanislav f2d4637338 assign с first_assignment_defines_type и тестовым примером 2024-03-29 13:53:46 +03:00
Ivan Bondarev 031f868124 #3061 2024-03-27 20:51:01 +01: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