Commit graph

140 commits

Author SHA1 Message Date
nevermind322 66eaa619a3
Assign tuple optimizer (#3158)
* branch init

* add BindCollectLightSymInfo

* moved lightsyminfo to syntaxVisitors

* LIghtSymInfo fixes

* binder 0.1

* Attributes -> SymbolAttributes

* AssignTupleOptimizer -> AssignTupleDesugar

* moved algorithm classes to AssignTupleDesugarAlgorithm namespace

* fixes and refactoring

* LightSymInfo rework

* add rebuildDebug and build units

* enable VarNamesInMethodsWithSameNameAsClassGenericParamsReplacer

* remove CollectFullLightSymInfo call

* bind now return BindResult

* change BindResult path type

* path testing

* fix Current in BindCollectLightSymInfo

* fix Current in BindCollectLightSymInfo

* potential symomyms handling without assigns count minimization

* assign count minimization

* rename AssignTuplesDesugar

* move NewAssignTupleDesugar

* add optimization switch

* delete AssignTupleDesugar project

* remove comments

* collect symbols from var tuples

* optimize var_tuple_def_statement and assign_var_tuple

* fix

* fix Tuple Visitor

* fix

* add const optimization
2024-06-23 13:05:10 +03:00
nevermind322 d269c7ca20
Assign tuple optimizer (#3147)
* branch init

* add BindCollectLightSymInfo

* moved lightsyminfo to syntaxVisitors

* LIghtSymInfo fixes

* binder 0.1

* Attributes -> SymbolAttributes

* AssignTupleOptimizer -> AssignTupleDesugar

* moved algorithm classes to AssignTupleDesugarAlgorithm namespace

* fixes and refactoring

* LightSymInfo rework

* add rebuildDebug and build units

* enable VarNamesInMethodsWithSameNameAsClassGenericParamsReplacer

* remove CollectFullLightSymInfo call

* bind now return BindResult

* change BindResult path type

* path testing

* fix Current in BindCollectLightSymInfo

* fix Current in BindCollectLightSymInfo

* potential symomyms handling without assigns count minimization

* assign count minimization

* rename AssignTuplesDesugar

* move NewAssignTupleDesugar

* add optimization switch

* delete AssignTupleDesugar project

* remove comments

* collect symbols from var tuples

* optimize var_tuple_def_statement and assign_var_tuple

* fix

* fix Tuple Visitor

* fix
2024-06-12 16:15:43 +03:00
nevermind322 2dc3c4e50c
fix CollectLightSymInfo (#3143)
* branch init

* add BindCollectLightSymInfo

* moved lightsyminfo to syntaxVisitors

* LIghtSymInfo fixes

* binder 0.1

* Attributes -> SymbolAttributes

* AssignTupleOptimizer -> AssignTupleDesugar

* moved algorithm classes to AssignTupleDesugarAlgorithm namespace

* fixes and refactoring

* LightSymInfo rework

* add rebuildDebug and build units

* enable VarNamesInMethodsWithSameNameAsClassGenericParamsReplacer

* remove CollectFullLightSymInfo call

* bind now return BindResult

* change BindResult path type

* path testing

* fix Current in BindCollectLightSymInfo

* fix Current in BindCollectLightSymInfo

* potential symomyms handling without assigns count minimization

* assign count minimization

* rename AssignTuplesDesugar

* move NewAssignTupleDesugar

* add optimization switch

* delete AssignTupleDesugar project

* remove comments

* collect symbols from var tuples

* optimize var_tuple_def_statement and assign_var_tuple

* fix

* fix Tuple Visitor
2024-06-07 20:57:03 +03:00
nevermind322 133d082e4e
Assign tuple optimizer (#3142)
* branch init

* add BindCollectLightSymInfo

* moved lightsyminfo to syntaxVisitors

* LIghtSymInfo fixes

* binder 0.1

* Attributes -> SymbolAttributes

* AssignTupleOptimizer -> AssignTupleDesugar

* moved algorithm classes to AssignTupleDesugarAlgorithm namespace

* fixes and refactoring

* LightSymInfo rework

* add rebuildDebug and build units

* enable VarNamesInMethodsWithSameNameAsClassGenericParamsReplacer

* remove CollectFullLightSymInfo call

* bind now return BindResult

* change BindResult path type

* path testing

* fix Current in BindCollectLightSymInfo

* fix Current in BindCollectLightSymInfo

* potential symomyms handling without assigns count minimization

* assign count minimization

* rename AssignTuplesDesugar

* move NewAssignTupleDesugar

* add optimization switch

* delete AssignTupleDesugar project

* remove comments
2024-06-06 23:10:38 +03:00
Mikhalkovich Stanislav f2d4637338 assign с first_assignment_defines_type и тестовым примером 2024-03-29 13:53:46 +03:00
Mikhalkovich Stanislav 98ecc8a608 Тестовый визитор с same_node_type 2024-03-27 12:07:34 +03:00
Mikhalkovich Stanislav 4bf9c36d49 Исправление реализации (var b := 1) методом синтаксического сахара 2024-01-02 14:43:48 +03:00
Mikhalkovich Stanislav dc95f368d7 Исправлена ошибка с x[1:^1][5] 2023-06-06 08:14:59 +03:00
Mikhalkovich Stanislav af9b6acb91 Ликвидация зависимости проектов PascalABCSaushkinParser и SyntaxVisitors от
проекта TreeConverter, то есть, от семантического уровня

Необходимо применить эти изменения и перекомпилировать в ОС РОСА
2023-05-31 14:04:04 +03:00
Mikhalkovich Stanislav ebc86578d3 fix #2863 2023-05-25 14:03:05 +03:00
Mikhalkovich Stanislav 03dea1990c Ускорен (a,b) := (b,a) - работает как Swap 2023-05-16 15:36:00 +03:00
Mikhalkovich Stanislav b4fbef4608 Исправление ошибки с двумя вложенными for step
К сожалению, привело к тому, что менять переменную цикла внутри цикла можно
2022-09-05 19:49:13 +03:00
Mikhalkovich Stanislav 3b8e54fe1e В [cache] Tuple заменен на ValueTuple если таковой имеется. Это проверяется во время компиляции.
Это позволило ускорить кеширование функций с 2 параметрами и более примерно в 3 раза
2022-05-09 20:29:04 +03:00
Mikhalkovich Stanislav 104f0d43da [cache] для одного параметра не оборачивает его в Tuple - за счет этого ускорена в 10 раз 2022-05-08 19:37:15 +03:00
Mikhalkovich Stanislav ea669a4c4f fix #2664
LifeWPF в примерах с сверхбыстрой графикой
Убрал с toolbar AutoInsertCode
Freeze для GetBrush
2022-05-03 15:27:16 +03:00
Mikhalkovich Stanislav a03d33b586 3.8.3 2022-03-08 21:41:46 +03:00
Mikhalkovich Stanislav 86dd24c5b6 step = 0 - хорошее runtime сообщение об ошибке 2022-02-27 19:58:49 +03:00
Mikhalkovich Stanislav 3240593d2e Реализован foreach index
Исправлена ошибка for step
Дополнена справка по for step и foreach index
J,yjdkty ntrcnjdsq htlfrnjh? gjlcdtxbdf.obq ыеуз b штвуч rjyntrcnyj d hfvrf[ jlyjq cnhjrb
2022-02-26 12:33:53 +03:00
Mikhalkovich Stanislav aece73f33c for var i:=1 to 5 step 2 do 2022-02-21 17:03:34 +03:00
Mikhalkovich Stanislav ecf7ef3663 [Cache] может работать с exit и использует d.TryGetValue 2021-08-28 23:15:33 +03:00
Mikhalkovich Stanislav bc42aca1e5 CacheFunctionVisitor.cs 2021-08-10 22:27:26 +03:00
Mikhalkovich Stanislav 2eaaa1f6cd fix #2482 2021-05-05 23:31:17 +03:00
Mikhalkovich Stanislav f85758a059 Исправлена ошибка при распаковке параметров лямбд с несколькими параметрами
Divizors переименован в Divisors
2021-03-26 00:12:48 +03:00
Mikhalkovich Stanislav 4525f5a9b4 UnpackLambdaParametersVisitor.cs - забытый файл 2021-03-08 00:00:59 +03:00
Mikhalkovich Stanislav c77b124cce Версия с неверно форматирующимся
##
{asg}
uses School;

procedure p := Print(1);

p;

Код с ### пока без процедур и функций
2021-02-27 23:44:07 +03:00
Mikhalkovich Stanislav 05f158875d Многомерные срезы - пока без семантического контроля
И интеллисенс a[1,:] неверно показывает тип
2021-02-24 18:41:51 +03:00
Mikhalkovich Stanislav 7c3273aae8 Многомерные срезы без семантических проверок
Разрешил a as array [,] of T
2021-02-24 00:47:39 +03:00
Mikhalkovich Stanislav 55a09ac403 a[^1,^1] 2021-02-17 21:29:33 +03:00
Ivan Bondarev 460247ccc6 fix #2330 2020-12-27 12:18:28 +01:00
Mikhalkovich Stanislav 608afb9339 fix #2361 2020-12-09 19:09:36 +03:00
Mikhalkovich Stanislav 2c252b2b0c true ?? true source_context 2020-11-25 21:35:04 +03:00
Mikhalkovich Stanislav 682c640d29 fix #2324
NextPermutation видима

RunUnitTests - убрал StackTrace
2020-10-12 20:21:09 +03:00
Mikhalkovich Stanislav 60071dc286 fix #2314 2020-10-01 17:13:25 +03:00
Mikhalkovich Stanislav 57e6860870 Оптимизация (a,b) := (1,2) и var (a,b) := (1,2) 2020-08-17 10:51:28 +03:00
Mikhalkovich Stanislav 04e099c3f7 var (a,b) := (1,2);
раскрывается в 2 присваивания
2020-08-16 12:03:35 +03:00
Mikhalkovich Stanislav fc234f7cc4 Исправление ошибки с захватом лямбдой переменной, объявленной в виде var (m,n) := ... 2020-08-15 22:56:19 +03:00
Mikhalkovich Stanislav 5f85d9aadf Определён глобальный символ PASCALABC 2020-07-11 21:45:38 +03:00
Mikhalkovich Stanislav dade22f3d1 //comment 2020-07-11 19:53:36 +03:00
Mikhalkovich Stanislav 2eddbb8f15 Попытка частично заставить работать одновременно #2277 и #2265 2020-07-11 17:11:27 +03:00
Александр Погорелов e8e70ff33d a is [collection], a is (tuple) теперь нелегальны. Починил вложенный матчинг 2020-07-03 06:45:23 +03:00
Mikhalkovich Stanislav 4a08774174 fix #2269 2020-06-24 09:41:52 +03:00
Mikhalkovich Stanislav 44a5bee28c FIX #2265 2020-06-21 17:12:43 +03:00
Mikhalkovich Stanislav 91bb72fc34 fix #2257 2020-06-18 08:23:11 +03:00
Mikhalkovich Stanislav 41316f86d1 fix #2252 2020-06-12 23:31:38 +03:00
Александр Погорелов 0253a47bed -1 теперь корректное значение для параметра to в SystemSlice 2020-05-05 18:58:06 +03:00
Mikhalkovich Stanislav ec29e42978 Исправление бага со слайсами в 3.6.3 2020-05-05 16:15:44 +03:00
Александр Погорелов 985d35ef5e SystemSlice 2020-05-02 11:44:20 +03:00
Александр Погорелов 7f4a8cec42 ^ для индексера 2020-04-03 11:48:15 +03:00
Александр Погорелов 9cf75580a5 merge master 2020-03-19 12:46:21 +03:00
Александр Погорелов ea2871d13b Фиксы для срезов на присваивание 2020-03-19 12:43:07 +03:00