Commit graph

1434 commits

Author SHA1 Message Date
Mikhalkovich Stanislav a2b078960b cnfc2 2025-02-19 10:52:25 +03:00
Mikhalkovich Stanislav 41dfb6f187 [] - преобразование во все контейнеры
GraphABCHelper - теперь ABCObjects работает под Линукс

School исправлен согласно последним веяниям []
2025-02-07 21:41:01 +03:00
Mikhalkovich Stanislav 8fbd7fdfc3 3.10.3
faststrings
EmptyCollection и преобразование ее в List, Dictionary
t: (real,real) := (1,2)
2025-01-26 23:42:48 +03:00
Mikhalkovich Stanislav bba132bd5d Поправил справку по функции 2025-01-22 09:14:44 +03:00
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 d8262078f6 Исправление мелких ошибок NewSet
Все тесты проходят.

Проблема, которая остаётся - в режиме ускорения такие программы падают:

begin
  var s: set of byte;
  Print(s = [1]);
end.

Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение
2024-11-19 13:56:47 +03: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
Ivan Bondarev 96c68f1666 #3223 2024-11-12 21:38:07 +01: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
Mikhalkovich Stanislav 53b3fd0881 Добавил временное преобразование от array of T в set of T 2024-10-09 14:09:01 +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 47c61d8b14
New directive to disable linking pascal standard modules (#3186)
* Add new 'disable standard units' directive and it's processing

* Refactor InitializeNewUnit function

* Improve disable standard units directive checks

* Add null check in programs.cs to avoid error

* Rename error related to disable standard units directive

* Add referencing standard net libraries

* Add checks for duplicates when injecting references
2024-08-02 10:48:07 +03:00
Mikhalkovich Stanislav 64acde6460 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)
School - IsPrime(n)
2024-07-31 18:21:04 +03:00
Mikhalkovich Stanislav 8c22930a8c Добавлена
class function operator implicit<T>(s: array of T): TypedSet;

И поправлены кое-какие условия при неявных приведениях типов. Но видимо они никогда не работают
2024-07-18 22:23:39 +03:00
Mikhalkovich Stanislav 0fbfebb379 fix #3184 2024-07-17 11:16:59 +03: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
Ivan Bondarev 33e8b383be #3172 2024-07-02 20:49:12 +02:00
AlexanderZemlyak d5e9994ff2
Revert pascal language moving to language plugins (#3175)
* Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core

* Rename PascalLanguage project to PascalABCLanguageInfo

* Fix pascal dll loading
2024-07-02 16:10:50 +03: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
Mikhalkovich Stanislav c8e5e58cff 3.9.0.3483 2024-05-21 20:47:45 +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