From 0c4c029bef29ac7229bcb0590fec48f12e77bfaa Mon Sep 17 00:00:00 2001 From: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sun, 12 Oct 2025 20:26:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20Intellisense=20SPython=20+?= =?UTF-8?q?=20=D0=BF=D0=B0=D0=B4=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=BF=D0=B8=D0=BB=D1=8F=D1=82=D0=BE=D1=80=D0=B0=20=D0=B8?= =?UTF-8?q?=D0=B7-=D0=B7=D0=B0=20=D0=BD=D0=B5=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8=20=D0=B2=20spython=5Fsyntax=5Ftree=5Fv?= =?UTF-8?q?isitor=20(#3333)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Override get_system_module in SpythonSyntaxTreeVisitor * Fix Unit and Function Having Same Name Bug * Add TimeMeasurements Programs * Swap Visitors for Supporting New Imports * Fix Function with Named Parameters Substitution * Add Error for Using Global * Fix yyloc Bug and Add SyntaxVisiters Errors * Move List Desugar from Visiter to Parser (temp) * Move List Generator Desugaring Back to Visitors * Add Args after Kvarg Error Message * Fix Parser and Visitors' Errors Messages * Moved Examples Programs * Update Name Substitution Logic * Squashed commit of the following: commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * feat(bin/LanguageKits/SPython): add more things to installer * Change get_system_module method visibility (and some more) * Update SPython language names * Add CaseSensitive boolean saving in pcu * Implement case sensitive symbol table * Fix Create function not found error * Delete try/catch block in CollectNamesFromUsedUnits to make code cleaner * Create languageCaseSensitive field in pcu * Create CompilationArtifacts struct for passing data to ConvertAfterUsedModulesCompilation * Fix GraphWPF importing problem by dirty workaround !!! * Squashed commit of the following: commit 57ff5ef37d04ce8fcac8705c5a693bddf2ecf10e Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Feb 27 12:56:53 2025 +0300 Fix Global Variables Type Definition Основная программа выносится в функцию, определяемой самой первой и first_assignment_defines_type выводит тип глобальных переменных корректно commit 6f93ae8d6afc1c685d602b85ba6d455d862b35af Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 26 17:33:10 2025 +0300 Replace same_type_node, Fix Procedure Assignment commit 52a096394cfdd4d8e4b27ddd36570b45b053c380 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Feb 20 13:59:16 2025 +0300 Fix Local Scope in If Node commit a0be5bed7f110314c0e512d28a76e3bd87328f01 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 16:40:50 2025 +0300 Fix Bug with same_type_node commit 04fd2b2a6667bf06af02614a2fd30d0b50172a0c Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 16:09:27 2025 +0300 Fix Assignment for New Variables commit ea591e243a5a458d6d94e665cec50d9ef60e1a08 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 15:58:45 2025 +0300 Fix Assignment for Imported Variables in Functions commit e5d71be7693c527e6f4cd88671503dafa0ac9777 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 15:13:21 2025 +0300 Fix SPython's Syntax Node Erasion commit c78649ac7e7883860ce459cb31f9d9e46194f203 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 14:35:53 2025 +0300 Fix Variables from Module Assignment commit 4890f7f163a2557bc58d6e9c48cb432c6436a3aa Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 13:36:53 2025 +0300 Return RetainUsedGlobalVariablesVisitor commit e5460edf2fae002ccc64d261bbb8fadb27deec12 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 13:05:38 2025 +0300 Add Errors for Wrong Global Usage commit e32387e1356cc1e330518c57ab895f89b9de1784 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 12:33:55 2025 +0300 Update Comments about Syntax Visitors commit 1f6c7ac2d8c891d582cbe957ed2ad6886de27de1 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 12:27:59 2025 +0300 Fix Global Variables read access for global variables in fuctions by default commit e840610a25718ba12df144948bdda175cbc8d7c5 Merge: e70cb9914 6c81b45c0 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Fri Feb 14 19:51:38 2025 +0300 Merge branch 'SPython' into SPython-Context-Change commit e70cb99145120df29d1ae172d1b00afa8ea5b18f Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Fri Feb 14 19:49:18 2025 +0300 Return Back Global Keyword commit 7cf7a24b8f927cad72645e028f0e0ebc47cae328 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 12 13:15:35 2025 +0300 Fix Merge commit 89cc4551a0bcdb55eb64d244e35035134e5f6e75 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 12 13:02:06 2025 +0300 Squashed commit of the following: commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Squashed commit of the following: commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Fix Merge Commit * Fix Assignment to Imported Variable * Add Compound Comparison (alpha) * Fix Compound Comparison False Positive конструкция '(a == b) == c' теперь не считается CompoundComparison * Reconstruct NameInterpreterVisiter * Parser and Visitors Refactoring 1 * Fix Modules * Parser and Visitors Refactoring 2 * Update RetainUsedGlobalVariablesVisitor * Update RetainUsedGlobalVariablesVisitor 2 * Add Variable Declaration without InitValue a: float a = 1.23 * Add Global Variables in Units In units all variables defined in outermost scope are global * Add Template Types (list[int]) * Add Errors for Using PascalABCnet Types * Add Power Binary Operation * Fix SourceContext in Parser and ImportToUsesVisitor * Add pass Statement * Fix Nested List Generators * Fix NameCorrectVisitors in Complex Cases fix in nested dot_nodes and lambda's inside list generator * Fix IdentArranger for Complex Cases now it handles correctly cases such as follows: print(a, b, c, d, e, f) * Add Ternary Conditional Operator * Fix Lexer and New Line Error * Add End File Token to Fix Errors Positioning * Fix Errors Positioning * Move AddForwardDeclarationsVisitor Lower * Update Comments in StandardSyntaxTreeConverter * Update Examples * Fix CompoundComparisonDesugarVisitor * Update Comments * Create compound_conditions_example.pys * Separate ';' and End_Of_Line Token * Fix Error Line Positioning * Fix Lexer Error Message with COLON * Fix Error Positioning * Fix Colon Error Positionning * Fix Error Next Token Hints * Fix Errors with 'in' and 'import' * Add UnsupportedConstructsVisitor * Add Error for Using class and lambda * Refactor IndentArranger * Add programBeginWithIndentToken * Squashed commit of the following: commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Add units case sensitive search (Not implemented in Intellisense) * Fix Functions Forward Declarations * Update Wrong Module Name Error Positionning * Fix Errors with Global Statements * Fix Function Before Declaration Usage Error * Add return_statement * Add Return Wrong Usage Error * Errors Hot Fix * Add Bigint Type * Squashed commit of the following: commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Fix Types Names in Errors * Update Examples * Try To Add Python's list[T] * Add BackSlash Support * Add ANIM examples * Fix compilation context instance assigning * Squashed commit of the following: commit 771ea7b445ec9086a0ac172e24299fa6c8bea0f3 Author: Ivan Bondarev Date: Sun Apr 6 14:32:17 2025 +0200 #3230 commit 28a1a03e8dbccdff404c133145b5bffc63920cad Author: Ivan Bondarev Date: Sun Apr 6 11:35:09 2025 +0200 #3251 commit af7abc770b958fe85cf37d4f29f79eb97f3f25ba Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Apr 6 08:33:34 2025 +0300 synchronization of namespaces and folders for TeacherControlPlugin (#3262) commit aae723b982e09e5476f89805ee6cfe2b88029dfc Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 12:00:04 2025 +0300 Create default syntax tree converter class (#3216) Для удобства разработчиков простых языков, которым не требуются дополнительные обходы синтаксического дерева. commit f9cc90e50fe4d765ec03b4c685c9ce9b62d66caf Author: Sun Serega Date: Thu Apr 3 11:59:46 2025 +0300 fix errors (#3260) commit f85bfad60ffee7a9f01f9a95e630388db4cd732b Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 11:58:19 2025 +0300 Intellisense memory leaks fix (#3257) * Fix memory leaks found for PABCSystem.pas Memory leaks of Interface and Implementation Unit Scopes fixed * Change open_files and recomp_files variables type to be Dictionary (not HashTable) * open_files Check simplification * Move TypeTable.Clear call to CodeCompletion Compile method commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Fix DefaultSyntaxTreeConverter * Update some comments in spython_syntax_tree_visitor * Configure Intellisense - first step * DomSyntaxTreeVisitor fixes * Add implementation for parser methods used by Intellisense * Add declarations_as_statement visit in DomSyntaxTreeVisitor implementation * Refactor CodeCompletion.cs * Fix Intellisense case sensitive units search * Squashed commit of the following: commit bb7962ff859946a71ded0df465d024c14559cb04 Merge: 71261ded1 aae723b98 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 12:23:21 2025 +0300 Merge branch 'master' into intellisense_refactoring commit 71261ded190a40dcf2301f37b4ac70356cfb35af Author: AlexanderZemlyak Date: Thu Apr 3 12:16:52 2025 +0300 Update comments in PascalABCLanguageInformation commit aae723b982e09e5476f89805ee6cfe2b88029dfc Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 12:00:04 2025 +0300 Create default syntax tree converter class (#3216) Для удобства разработчиков простых языков, которым не требуются дополнительные обходы синтаксического дерева. commit f9cc90e50fe4d765ec03b4c685c9ce9b62d66caf Author: Sun Serega Date: Thu Apr 3 11:59:46 2025 +0300 fix errors (#3260) commit f85bfad60ffee7a9f01f9a95e630388db4cd732b Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 11:58:19 2025 +0300 Intellisense memory leaks fix (#3257) * Fix memory leaks found for PABCSystem.pas Memory leaks of Interface and Implementation Unit Scopes fixed * Change open_files and recomp_files variables type to be Dictionary (not HashTable) * open_files Check simplification * Move TypeTable.Clear call to CodeCompletion Compile method commit d52ce0d4c86ec1fb6962db33a8dc774b69fddd69 Author: AlexanderZemlyak Date: Thu Apr 3 11:15:02 2025 +0300 Squashed commit of the following: commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit a11bb9e9c6271e359fde6050e95d98950e946fbd Author: AlexanderZemlyak Date: Sun Nov 10 19:43:45 2024 +0300 Fix encoding commit 2c0fba643e45914b8f5350356e1c24b3c3cf3685 Author: AlexanderZemlyak Date: Sun Nov 10 19:21:54 2024 +0300 Fix build error commit f813a4ff99936dabdcfda40ce5beea2ba41aed53 Author: AlexanderZemlyak Date: Sun Nov 10 19:08:44 2024 +0300 Update intellisense documentation commit 8414c7ae1d6ed296a86e56975d84949a6e471a25 Author: AlexanderZemlyak Date: Sun Nov 10 19:08:03 2024 +0300 Another iteration of refactoring in CodeCompletionProvider + comments commit 340ef9a0e9bc40f7bda0cde8dccb86c94dc6c8cb Author: AlexanderZemlyak Date: Sun Nov 10 14:51:56 2024 +0300 Fix GetCompletionDataByFirst behaviour when getting symInfos after uses keyword commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit 8e9e7f94d094e528aeb9bd0db322005b08e31ee3 Merge: ea3c878eb fbd63efa8 Author: AlexanderZemlyak Date: Fri Nov 8 14:47:33 2024 +0300 Merge branch 'master' into intellisense_refactoring commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit ea3c878eb27a268d50272838a36508511f1096ee Author: AlexanderZemlyak Date: Sun Oct 27 22:40:40 2024 +0300 Refactor GetCompletionDataByFirst method commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0ae57063a798ec7dc4979a1cea32371034794907 Author: AlexanderZemlyak Date: Tue Oct 22 12:54:05 2024 +0300 Replace dollar service character in CodeCompletion by separate boolean (ctrlSpaceAfterDot)) commit 89a02c2867b41cb12020a31867667c89f9fbb848 Author: AlexanderZemlyak Date: Tue Oct 22 10:48:21 2024 +0300 Extract shift space actions in separate class commit cb24d274969f67255c7cb253fbc36d25d6aaa2be Author: AlexanderZemlyak Date: Sun Oct 20 22:54:32 2024 +0300 Refactor CodeCompletionProvider (first iteration) commit 10b16014b8e19fac339752466b1733359675a052 Author: AlexanderZemlyak Date: Sun Oct 20 18:14:06 2024 +0300 Add check that we parsing PascalABC.NET in GetPopupHintText Временное решение, нужно будет вынести вторую попытку в интерфейс парсера. commit 4057884d749788726bc095581d1519ff8fec7037 Merge: d95eab790 0c773a7ec Author: AlexanderZemlyak Date: Sun Oct 20 17:33:07 2024 +0300 Merge branch 'master' into intellisense_refactoring commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit d95eab790c41cb2f8ac38be997ca81af30ee22be Author: AlexanderZemlyak Date: Thu Oct 10 14:14:43 2024 +0300 Delete other cases of ampersend inserting commit b2aaa157c1ae1965ae2a20eb3e5454f4df37b1a8 Author: AlexanderZemlyak Date: Wed Oct 9 22:48:37 2024 +0300 Basic refactoring of GetPopupHintText + delete ampersend inserting commit 4554bd5581bdf61601e454650a34422c8bf93c0c Author: AlexanderZemlyak Date: Wed Oct 9 18:56:23 2024 +0300 Move ValidDirectives field to ILanguageInformation commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit d8b05d3d80500fc10cb964a5ec62c7244e4993f8 Author: AlexanderZemlyak Date: Wed Oct 9 09:53:35 2024 +0300 Fix inaccuracy in BaseKeywords.cs commit c45f66baf5a159d07ddc7ded63bad56387799fc1 Author: AlexanderZemlyak Date: Wed Oct 9 09:47:43 2024 +0300 Manage references in PascalABCLanguageInfo project commit 342cb23f2eb33948cc7d058e04a10fd4b5c1e2a4 Author: AlexanderZemlyak Date: Wed Oct 9 00:06:25 2024 +0300 Fix string comparisons and null reference exception commit 386f59d5fd5b29f010f59194ef1324d23a5651ca Author: AlexanderZemlyak Date: Tue Oct 8 23:18:53 2024 +0300 Fix build error commit 851936f02544879644b3284cf472c8c9c2ea8fa9 Author: AlexanderZemlyak Date: Tue Oct 8 23:12:16 2024 +0300 Refactor keywords managing to avoid repeating them twice commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Add BaseLanguageInformation and SPythonLanguageInformation * Delete unnecessary TestSuite files * Remove syntax_tree_visitor inner objects duplicates creation in spython_syntax_tree_visitor * Move CompilationUnit.UnitFileName initialization to InitializeNewUnit function * Override internal_reset method in spython_syntax_tree_visitor to fix pas test error * Delete dll files from git * Add standard SPython modules to compilation samples * Add List Methods Names Mapping * Add Grammar Rules for Intellisense * Configure Intellisense - step 2 * Fix languages loading call position * Change comments check in expression finding for SPython * Add SPython standard types to SPythonSystem (implicitly) * Add syntax tree converters calls for SPython in Intellisense * Squash merge master branch * Adapt SPython project files to new build system * Update FunctionsWithNamedParametersDesugarVisitor.cs * Fix output paths in SPython projects * Update _ReBuild.bat * Fix Main Function source_context * Extract converters for Intellisense only usage * Implement import statements in Intellisense Алиасы пока не поддерживаются * Remove Result varible for SPython in Intellisense * Remove standard modules and net namespaces from user scope * Adjust standard units to achieve not adding PABCSystem and Extenstions names to their scope * Add Set, Operator in/not in * Add Dict * Add len Function and dict/set types * Add list and set Functions * Comment out TypeCorrectVisitor for Intellisense * Fix New Types Names in Error Messages * Add Set Methods * Add special names renaming and excluding function in ILanguageInformation Используется для убирания подсказки PABCSystem, корректирования типа biginteger в SPython. * Add aliases support for import and from import in Intellisense * Fix list_generator Desugaring in Intellisence * Add dict Methods * Fix List Generator * Fix Assignment Declaration * Move math And time Libs to bin\Lib * Rename list_generator to generator_object * Fix Parser to Use generator_object * Add set generator * Add any and all Functions * Add Function Calls for generator objects * Add dict generator * Add empty containers initializations * Fix empty_list/set/dict error message * Fix type(obj) Function in Standard Library * Add Error if Initialize with No Type Specification and Empty Collection * Fix Initialization with Empty Collection for Global Variables * Add round Function * Add map Function * Revert "Add map Function" This reverts commit 4fb787a0122a6f404a4061fb6647561f0117739a. * Fix map Function * Update Visitor Name * Add Bitwise Operators * Add Bitwise Assignment Operations * Fix Set Binary Operations * Fix Global Assignments * Add f-string for Strings without Format * Update SPythonParser.dat * Add Expression-Support in f-string * Fix f-string Inner-Parser Call * Add int and float Formats for f-string ('x', 'X', 'b', 'd', '.[num]f') * Fix f-string regex * Fix result Local Variable * Add cont_int with Underscore * Add Empty itertools.pas Unit * Add args Parameters * Add kvargs Function Declaration (pre-alpha) * Update StandardSyntaxTreeConverter.cs * Fix kvargs-functions Forward Declarations * Add kvargs-functions Call (pre-alpha) * Add kvargs-parameters Usage * Add kvargs-function Call with no kvargs-arguments * Move Standard print Function to Unit Written in SPython * Update .dll's * Hot Fix * Update spython_syntax_tree_visitor.cs * Add Multi-Variables foreach * Fix create Name * Big Kwarg-Update * Change Create name in StringConstants and fix check in syntax_tree_visitor * Update buildandruntests.yml * Squashed commit of the following: commit f7834348258fd70cb34949908f157a37c4e013db Author: AlexanderZemlyak Date: Thu Jun 12 15:55:53 2025 +0300 Delete language kits directory creation while installing PascalABC.NET commit 78f40b7377fa6c62fbdd9a19754d8c14ae68cf7f Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Jun 12 15:35:30 2025 +0300 Create time1.pas commit ba6cc457366a96efa650eeb2ffb90c5735de13f3 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Jun 12 14:54:36 2025 +0300 Move TypeCorrectVisitor commit f9ae902f0df63aa2916683869ac0cff4dd71bd91 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Jun 12 13:39:42 2025 +0300 Fix Mutual Functions Calls commit da3b502df1b889c0b02a00815aa8a9df1bcbe31e Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Jun 12 13:10:49 2025 +0300 Add Itertools Examples and fix Kwargs commit a6d2f593a0e54b50d8b4b27fb56026b9ede740d0 Author: AlexanderZemlyak Date: Wed Jun 11 23:23:28 2025 +0300 Add special modules aliases support in Intellisense and switch off unit hints for import statements commit 0d5122eef93cb2dbd9728b1877b0bfb0544ef9b8 Author: AlexanderZemlyak Date: Wed Jun 11 19:23:36 2025 +0300 Create FindScopeByLocation modification for SPython Для нахождения вложенных в MAIN функций commit af7235ce8bee4b45ffd6c3b479f8e828932f69b4 Author: AlexanderZemlyak Date: Wed Jun 11 17:59:22 2025 +0300 Add ExitParamVisitor in visitors pipeline commit 3f5a4f4950a3d3f2035ec2b18081a01c734c1a96 Author: AlexanderZemlyak Date: Wed Jun 11 17:35:30 2025 +0300 Small fixes commit 3f32348b2f4dd66edd372d3989d7651ac56a5d93 Author: AlexanderZemlyak Date: Wed Jun 11 17:11:07 2025 +0300 Fix merge error commit 684d6a36912ef5c5ad82d4de0807683eac87debf Merge: 8e506f409 eeb3116ae Author: AlexanderZemlyak Date: Wed Jun 11 17:06:42 2025 +0300 Merge branch 'master' into Spython_refactoring commit 8e506f409e4b34ad81620bf352813ab507e6134e Author: AlexanderZemlyak Date: Wed Jun 11 16:44:37 2025 +0300 Implement visitors pipeline for PascalABC.NET commit 0e8e4d5c786cbad5257804ce495fe410546ddf4c Author: AlexanderZemlyak Date: Wed Jun 11 14:10:22 2025 +0300 Refactor SPython StandardSyntaxTreeConverter to use pipeline approach commit eeb3116aeadce041bce023a14bdf80ca3ac5c657 Author: Mikhalkovich Stanislav Date: Tue Jun 10 21:30:20 2025 +0300 3.10.3.3634 commit ea338d6bfec92996cd944f2f5d9da10677621cee Author: Mikhalkovich Stanislav Date: Tue Jun 10 20:30:42 2025 +0300 2025 in GlobalAssemblyInfo.cs commit 4dc6bd72ef77483a2ecf9b5218ab6516b6ee9ea0 Author: Mikhalkovich Stanislav Date: Tue Jun 10 20:19:18 2025 +0300 chm восстановил commit fd139b4700293eb26b9ae92e66c7491868a32b3c Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jun 10 20:09:10 2025 +0300 fix SemanticTreeConverter.cs encoding (#3273) commit d11674efc2fb7d9eae303841caf313d535e0692b Author: Mikhalkovich Stanislav Date: Tue Jun 10 19:56:16 2025 +0300 Вернул старый css для справки commit 9aee28f4f047b13a71b4ad6a9ff9adfc913cf7af Author: Mikhalkovich Stanislav Date: Tue Jun 10 19:54:57 2025 +0300 2025 commit 07370e365f2e18ee27e328f7ce9be8d1beb40f56 Author: Sun Serega Date: Tue Jun 10 19:18:02 2025 +0300 Upgrade windows runner for CI/CD (#3271) * Try upgrade windows runner for CI/CD * Update names and BOM commit 50fd3cb1eed913a84a7f9c5f00e55c7fa46aa314 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed May 28 23:01:09 2025 +0300 * adding supports enumeration check for Pascal types in foreach resolver (#3272) * fix naming commit 5fec52615a291f0a7294dac4e1ebb796edcd729b Author: Mikhalkovich Stanislav Date: Sat May 24 21:36:36 2025 +0300 Распаковка KeyValuePair| И в foreach commit fbb5dec9a97db334a5d888543f4788ff741afedb Author: Mikhalkovich Stanislav Date: Sat May 17 19:34:33 2025 +0300 Внешний Between commit a914ab6ef58c68eb120e6877534208fb34b053a2 Author: Mikhalkovich Stanislav Date: Fri May 16 16:57:00 2025 +0300 InRange изменение поведения и внешний commit 04059ab235b8f38b267202dee7ced126b0a34adb Author: Mikhalkovich Stanislav Date: Wed May 14 19:57:30 2025 +0300 Исправлены библиотеки PT4Exam commit 40bfc046a832de7699da05ecf6ad2214beebcdea Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed May 14 19:40:04 2025 +0300 Fix shift space action in Intellisense (#3269) commit e3a64850efbd932aa03f005979dd9f48fead56cf Author: dmkwketx Date: Mon May 12 21:14:21 2025 +0300 Update GraphWPF.pas (#3270) если title больше одной строки, показывалась только последняя. теперь все строки будут показаны. commit e9cf278fddede2a78c879d69231801387930780f Author: Mikhalkovich Stanislav Date: Mon May 12 10:24:04 2025 +0300 IsOrdered в разных воплощениях commit 255533f407cb4cfa0644fbbeff64a1b36c7b99ce Author: Mikhalkovich Stanislav Date: Fri May 9 16:39:12 2025 +0300 IsOrdered метод расширения commit 4c56298bfb0de9c7863a07c1bc287ca0530c086b Author: Mikhalkovich Stanislav Date: Thu May 8 22:53:34 2025 +0300 exit(param) commit c22dee65fa2873e0ac3e793e0a691289afc1126f Author: Mikhalkovich Stanislav Date: Wed May 7 10:57:41 2025 +0300 sp2 commit 3f37c2cc4f976b732d80f43e2ab9b698fae97f89 Author: Mikhalkovich Stanislav Date: Wed May 7 10:56:51 2025 +0300 sp commit cdfde69281a3ab14755b0c9d31c05fd987d2b912 Author: Mikhalkovich Stanislav Date: Fri May 2 21:44:57 2025 +0300 2 chars commit 2e27beef48a34702ba4ce6457af985de6fd78baf Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 10 13:14:04 2025 +0300 Create generic instances cache (#3259) * First attempt to create generic instances cache * Change TypeScope equality check and add instance cache clearing * Move instance cache clearing call to CodeCompletion Compile funciton Шаблонные типы в instance_cache не должны пересекаться для различных модулей. Для улучшения производительности вызов очистки кэша расположен перед вызовом компиляции всех модулей. * Squashed commit of the following: commit 771ea7b445ec9086a0ac172e24299fa6c8bea0f3 Author: Ivan Bondarev Date: Sun Apr 6 14:32:17 2025 +0200 #3230 commit 28a1a03e8dbccdff404c133145b5bffc63920cad Author: Ivan Bondarev Date: Sun Apr 6 11:35:09 2025 +0200 #3251 commit af7abc770b958fe85cf37d4f29f79eb97f3f25ba Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Apr 6 08:33:34 2025 +0300 synchronization of namespaces and folders for TeacherControlPlugin (#3262) commit aae723b982e09e5476f89805ee6cfe2b88029dfc Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 12:00:04 2025 +0300 Create default syntax tree converter class (#3216) Для удобства разработчиков простых языков, которым не требуются дополнительные обходы синтаксического дерева. commit f9cc90e50fe4d765ec03b4c685c9ce9b62d66caf Author: Sun Serega Date: Thu Apr 3 11:59:46 2025 +0300 fix errors (#3260) commit f85bfad60ffee7a9f01f9a95e630388db4cd732b Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 11:58:19 2025 +0300 Intellisense memory leaks fix (#3257) * Fix memory leaks found for PABCSystem.pas Memory leaks of Interface and Implementation Unit Scopes fixed * Change open_files and recomp_files variables type to be Dictionary (not HashTable) * open_files Check simplification * Move TypeTable.Clear call to CodeCompletion Compile method * Fix incorrect dictionary iteration * Add one more dictionary keys copying commit 69149f8c44d0fa271c426b37f5e89d631d59137e Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 10 13:13:17 2025 +0300 Refactor intellisense (#3213) * Refactor keywords managing to avoid repeating them twice * Fix build error * Fix string comparisons and null reference exception * Manage references in PascalABCLanguageInfo project * Fix inaccuracy in BaseKeywords.cs * Move ValidDirectives field to ILanguageInformation * Basic refactoring of GetPopupHintText + delete ampersend inserting * Delete other cases of ampersend inserting * Add check that we parsing PascalABC.NET in GetPopupHintText Временное решение, нужно будет вынести вторую попытку в интерфейс парсера. * Refactor CodeCompletionProvider (first iteration) * Extract shift space actions in separate class * Replace dollar service character in CodeCompletion by separate boolean (ctrlSpaceAfterDot)) * Refactor GetCompletionDataByFirst method * Fix GetCompletionDataByFirst behaviour when getting symInfos after uses keyword * Another iteration of refactoring in CodeCompletionProvider + comments * Update intellisense documentation * Fix build error * Fix encoding * Squashed commit of the following: commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll * Update comments in PascalABCLanguageInformation commit cc7d4472c6c649adbc69d7b3d7621922f9ee6040 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 10 12:19:31 2025 +0300 Write developer guide for integrating new language (#3264) commit 5d842153a5ff2ac9e72de671f7e893d4f9d2167d Author: Sun Serega Date: Thu Apr 10 12:17:52 2025 +0300 Add NSIS binaries to .gitignore exclude (#3265) commit ee31ed94b35680399a32b7135d40b5d36de99a7f Author: Mikhalkovich Stanislav Date: Thu Apr 10 12:06:40 2025 +0300 TeacherControlPlugin.cs - шифрованные модули commit ba23a01e2993935ca4f180a454854c97f3601fa7 Author: Mikhalkovich Stanislav Date: Wed Apr 9 10:59:16 2025 +0300 Закомментировал неверный обработчик commit 3f70700d2b901eeafc825dab70d1e73c34e1d7be Author: Mikhalkovich Stanislav Date: Mon Apr 7 22:07:13 2025 +0300 nsis новый - папка bin TeacherControlPlugin.cs - добавление обработчика для последующей шифровки Tasks.pas commit 0353abf57c82c9978eb897ad4e1b9605fa3417ab Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Apr 7 08:35:22 2025 +0300 fix caching Localization assembly (#3263) commit 771ea7b445ec9086a0ac172e24299fa6c8bea0f3 Author: Ivan Bondarev Date: Sun Apr 6 14:32:17 2025 +0200 #3230 commit 28a1a03e8dbccdff404c133145b5bffc63920cad Author: Ivan Bondarev Date: Sun Apr 6 11:35:09 2025 +0200 #3251 commit af7abc770b958fe85cf37d4f29f79eb97f3f25ba Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Apr 6 08:33:34 2025 +0300 synchronization of namespaces and folders for TeacherControlPlugin (#3262) commit aae723b982e09e5476f89805ee6cfe2b88029dfc Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 12:00:04 2025 +0300 Create default syntax tree converter class (#3216) Для удобства разработчиков простых языков, которым не требуются дополнительные обходы синтаксического дерева. commit f9cc90e50fe4d765ec03b4c685c9ce9b62d66caf Author: Sun Serega Date: Thu Apr 3 11:59:46 2025 +0300 fix errors (#3260) commit f85bfad60ffee7a9f01f9a95e630388db4cd732b Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Apr 3 11:58:19 2025 +0300 Intellisense memory leaks fix (#3257) * Fix memory leaks found for PABCSystem.pas Memory leaks of Interface and Implementation Unit Scopes fixed * Change open_files and recomp_files variables type to be Dictionary (not HashTable) * open_files Check simplification * Move TypeTable.Clear call to CodeCompletion Compile method commit 7751fe7e750e3ca6d1ebf6fe85510c64eab0ea94 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sun Mar 16 13:28:03 2025 +0300 generating language res file at build time (#3252) commit d1fce63d69886eb69b2940c267d75374aa042220 Author: Mikhalkovich Stanislav Date: Tue Mar 4 08:38:09 2025 +0300 Сборка после pr SDK commit d491e88aa78e0193c524a77d8d317104dcc727ad Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Mar 3 20:34:51 2025 +0300 migration to new build system (#3241) * converting project files into sdk style * new build commands * adding new dll into nsis * removing unused .cs files commit 1fd348ec3c99e459cff8862a25823f544b0f44a6 Author: Mikhalkovich Stanislav Date: Sun Feb 23 20:49:26 2025 +0300 NSIS New 3.10 Ярлык в меню Пуск у всех пользователей commit 80b7182dc10c4567f619871bd73eb240cb065f84 Author: Mikhalkovich Stanislav Date: Wed Feb 19 11:50:00 2025 +0300 _ in names commit a2b078960b0d2e561f408cb0987a3225f07c9a94 Author: Mikhalkovich Stanislav Date: Wed Feb 19 10:52:25 2025 +0300 cnfc2 commit 58f26d469da124367427f6c41ebb1365b04e8f55 Author: Mikhalkovich Stanislav Date: Tue Feb 18 22:28:13 2025 +0300 перекомпиляция 3.10.3.3611 commit b78a72977f28d7ac205db62c32fc82cc18576fea Author: nevermind322 <81963698+nevermind322@users.noreply.github.com> Date: Tue Feb 18 22:02:19 2025 +0300 fix build on mono (#3249) * fix build on mono * remove local func * fix again commit c3557e388c6ee5bebe67c447c798ccce62b14536 Author: Nikolay Kuznetsov Date: Sat Feb 15 20:32:46 2025 +0300 Update GraphABC.pas (#3244) 1. Быстрая реализация функции FloodFill Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill 2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill commit 9dbac389e16734279779fb67e76b44f44b951cf0 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Wed Feb 12 13:57:14 2025 +0300 Add missing projects to pabcnetc.sln (#3247) commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Fix merge error * Delete extra files * Move Examples to pascalabcnet\PABCNetHelp\Examples\SPython * Update .dll * Move examples to pascalabcnet\CodeExamples\SPython * Revert pipeline visitors architecture for Pascal * Add AssignIntegerDivisionOperation * Revert pipeline visitors architecture for SPython * Add len(str) * Fix inaccuracies * Fix case sensitive string comparison in some lambda classes * Small fix in BaseLanguageInformation * Revert changing Create string to constant in Pascal visitors * Resolve some pull request issues * Add Tuple-Type to Right Part of Assignment * Add Tuple-Assignments a, b = 1, 2 * Delete unused function in DomSyntaxTreeVisitor * Fix Tuple Assignment * Add tuple TypeName * Add turbo_tuple_expr to return_stmt * Add Tuple-related Errors * Update pabcnetc_clear/CommandConsoleCompiler.cs encoding Co-authored-by: Sun Serega * Delete IndentArranger.exe * Fix Generator in for Loop * Fix Char-Assignment Type Inference * Fix Collections Method Error Handling * Fix result variable case sensitive comparing * Fix Result Name Constants in Visitors * Fix merge errors * Resolve some pull request conversations * Add SPython projects in pabcnetc.sln and PascalABCNETLinux.sln * Delete Gplex.exe and Gppg.exe in SPython project * Fix tuple-type Name in Errors * Move time1.pas and Fix _ReBuild.bat * Update _ReBuild.bat * Fix method calls without parentheses in SPython * Fix Localizations Files * Remove SPythonParser.sln * Refactor TipPainterTools to support inner parentheses in function parameters * Update Linux TipPainterTools * Fix dict Type Specialization * Add GetDescriptionForCompiledMethod in SPython * Squashed commit of the following: commit bf3ba7d2886891ed8553011a6fa06d2b0a18f8f1 Author: Mikhalkovich Stanislav Date: Mon Aug 4 12:51:30 2025 +0300 interface у Turtle.pas Команда изменения цвета и ширины commit 59ed71f45959f5b0b6b4db2148498af91b797156 Author: Mikhalkovich Stanislav Date: Mon Aug 4 10:29:08 2025 +0300 Команды ПоменятьЦвет и ПоменятьШиринуПера теперь учитываются в Черепахе commit 160dd58195434008cc3a236deacf922dd46e78d1 Author: Mikhalkovich Stanislav Date: Sun Jul 20 17:00:28 2025 +0300 fix #3324 commit 6218cc87232035153e12ac2f86fb02abfd9e9ea1 Merge: cabe8f85e 89e02b504 Author: Mikhalkovich Stanislav Date: Sat Jul 19 20:06:38 2025 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit cabe8f85ee090b30b543752289b802869126dd0d Author: Mikhalkovich Stanislav Date: Sat Jul 19 20:06:25 2025 +0300 Min(1) Max(1) commit 89e02b504e5834d11c0da8fdc0e4a2635b627755 Author: Nikolay Kuznetsov Date: Thu Jul 17 10:08:54 2025 +0300 Update CodeCompletionActions.cs (#3323) Показ Code Completion Window по Ctrl-Space, если курсор находится сразу после точки (как сделано в Win версии). Текущее поведение - после точки ccw не показывать, только если курсор переместить на несколько символов вправо от точки. commit c080feba89caec1cddae1879ea6ec5a256ef30df Author: Mikhalkovich Stanislav Date: Tue Jul 15 16:06:58 2025 +0300 RayTracer/RayTracer3.pas commit cc266b3863187cde90a687ecf0141d60ab99eaa8 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Mon Jul 14 19:08:55 2025 +0300 Поправки в LanguageInformation (#3322) * Fix inaccuracy * Delete useless variable * Implement refreshing description before showing it in Intellisense windows * Fix inaccuracies * Add GetDescriptionForArray and GetDescriptionForDelegate in SPythonLanguageInfo * Exclude Read Write Async and Await from keywords list in Intellisense commit 56d1eb5648c0f370dfb1a08e18daf7ffde6b44f3 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sun Jul 13 18:44:29 2025 +0300 Обновление описания сущностей в Intellisense (#3321) * Implement refreshing description before showing it in Intellisense windows * Change BuildDescription in ProcScope * Fix description rebuild bug commit 4cec1e7c4334c0c15f558b6bfd6c827ce2aa83a4 Author: Mikhalkovich Stanislav Date: Sun Jul 13 13:13:29 2025 +0300 fix #3299 Revert incorrect pr intellisense commit 20a14361292cbf375e57789dba4c1f494f3a64e9 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sun Jul 13 10:19:40 2025 +0300 Исправление неправильных изменений в LanguageInformation (#3319) * Fix inaccuracy * Delete useless variable * Implement refreshing description before showing it in Intellisense windows * Fix inaccuracies * Add GetDescriptionForArray and GetDescriptionForDelegate in SPythonLanguageInfo commit 9e9a0469b3db66a6ea94d61ebfe2188e16670093 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Jul 10 18:35:07 2025 +0300 Добавление обновления описания сущностей из Intellisense перед выводом их в окошке (#3320) * Implement refreshing description before showing it in Intellisense windows * Change BuildDescription in ProcScope commit e14b517e9dc3fa990dd5d26d6a1e1e647116e108 Author: Nikolay Kuznetsov Date: Sat Jul 5 11:09:00 2025 +0300 Update ProcessRunner.cs -- fix for space chars in running app file name (#3317) fix pascalabcnet/pascalabcnet#ISSUE-3315 commit 6fa1caa034071116bd6bf984b6ec41a0e1fa85d2 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sat Jul 5 11:05:34 2025 +0300 Учет случая params в TipPainterTools при подсветке (#3318) * Refactor LanguageInformation classes * Improve extension check in TipPainterTools * Refactor parsing parameters for signature help * Fix TipPainterTools Linux version * Add Params check in TipPainterTools commit a1584f4f9025d0e44ea428baf442c31f9ac94823 Author: Nikolay Kuznetsov Date: Sat Jul 5 11:05:10 2025 +0300 Update RobotField.pas (#3310) Адаптировано для Linux версии PABC * показываются надписи на форме в Ubuntu * шрифт надписей приведён к совместимому Sans Serif * Помощь - замена #10#13 на NewLine определяемый платформой commit 19f78930edca65a8bf704d7cc7bed5983a05a6a8 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Thu Jul 3 20:42:47 2025 +0300 removing hard code (#3313) commit ef795bbb6498898c077c5c5517fc94cbf84dcfec Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Thu Jul 3 20:39:09 2025 +0300 renaming method and adding comments (#3312) commit 9d57c427aceaa7c8fabe425005fa981e69a2de52 Author: Mikhalkovich Stanislav Date: Mon Jun 30 19:33:04 2025 +0300 MainForm.Load += commit 9927a0e305b9c3e1d998a3913426a026139d8225 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Jun 30 19:19:24 2025 +0300 fix type name comparsion (#3309) commit 7614931f06322f983e96184594af7785e6d3860b Author: dmkwketx Date: Mon Jun 30 19:18:05 2025 +0300 Update WhatsNew 3_10_4 files: exit_param2.pas & exit_param3.pas (#3305) * Update exit_param3.pas Добавлена проверка, что числа меньше числа 2 не простые. особенно единица * Update exit_param2.pas Добавлена проверка что числа меньше числа 2 не простые. commit dccd7942b70f90029cdd3fcfac1b49219cbee4a8 Author: Nikolay Kuznetsov Date: Mon Jun 30 19:17:09 2025 +0300 Added ABCObjects samples to Linux build (#3306) commit 0b3471daa053a8851b79502a4d1f145d12ccd2ae Author: Nikolay Kuznetsov Date: Mon Jun 30 19:16:51 2025 +0300 Delete InstallerSamples/Graphics/GraphABCLinux directory (#3307) Удалить как неиспользуемую commit d4173b0bec63f040fcfe9f636415d556546e7fa9 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sat Jun 28 16:12:28 2025 +0300 removing hard code (#3304) commit 0972d09837a009203568e9563a03466c276aaf95 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sat Jun 28 16:10:29 2025 +0300 Return break, continue и exit in completion list (#3298) commit 5abe6333ba055a32300e2b1f979dff26c1118d0e Author: Mikhalkovich Stanislav Date: Thu Jun 26 13:25:24 2025 +0300 опечатка в комменте commit aa42e80c7f36e9b3b59baa85c7f961e27c0ea906 Author: Mikhalkovich Stanislav Date: Wed Jun 25 22:27:48 2025 +0300 2025 by commit ae16484db7edf2e6a809f1e29b75b5184a17689f Author: Mikhalkovich Stanislav Date: Wed Jun 25 20:06:03 2025 +0300 Пересобрал commit 0646c80e4a05aa14c3bec52a119d39f4b0fb2639 Merge: 107f2c49b a389183ef Author: Mikhalkovich Stanislav Date: Wed Jun 25 20:05:20 2025 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 107f2c49bbf6d12b29496660f2153ff14647294a Author: Mikhalkovich Stanislav Date: Wed Jun 25 19:11:42 2025 +0300 Сделал ошибку при передаче в качестве делегата параметром обобщенной функции commit d2440264e85de6f401b84eed643bbaba6c08db85 Author: Mikhalkovich Stanislav Date: Wed Jun 25 19:09:36 2025 +0300 Перенес из ошибок назад в правильные. Вернул странное недокументированное поведение присваивания обобщенной функции делегату commit da16d41c58ec5384a2f227dd9e42d9d0c2e46f08 Author: Mikhalkovich Stanislav Date: Wed Jun 25 19:07:18 2025 +0300 Удалил два файла с ошибками - обобщенная функция присваивается делегату commit a389183efe6f52d21fff7d7c6ad6d17e16b0004c Author: Sun Serega Date: Mon Jun 23 23:49:48 2025 +0300 Improve GitIgnoreTester output (#3295) commit 63274c3c5e1c5acca319a4b1884c25b06e29a839 Author: Mikhalkovich Stanislav Date: Mon Jun 23 22:28:17 2025 +0300 Пересобрал 3.11.0.3641 commit 34187755deef628edfdab186e32348f5ee57875a Author: Mikhalkovich Stanislav Date: Mon Jun 23 22:02:24 2025 +0300 fix #3290 commit 6eccd661aefd133694c0dd3f4ecb5ce00a9f73cc Author: Mikhalkovich Stanislav Date: Mon Jun 23 16:36:58 2025 +0300 3.11 version with SPython (not in installer!) commit 080fca15bb9e6ec365b1f514296cd34e435e65e2 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Jun 22 20:56:22 2025 +0300 SPython 1.0 (#3274) * Squashed commit of the following: commit 115ed2e1b7b361b35f0b213688ad0838e0bffa69 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Nov 7 10:21:08 2024 +0300 Add from import Handling commit bdd3eb785e6c719201104497808e89dc20c4eacc Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Nov 3 12:59:29 2024 +0300 Add 'Import As' commit e5747aa56e359633be366887d3cf67d1ec054701 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Nov 3 11:08:50 2024 +0300 Add Ident_list to import commit 9d16fdb341b329adae45dec2bf6db04d8572675f Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Nov 3 10:01:13 2024 +0300 Move Import Handling to Visitor commit d8a0e8f5ee840e3ff15caafd7a456f91e1f2a962 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Nov 2 18:36:10 2024 +0300 Rename of Productions Related to Import commit 71282a457ab0c039a2f42c05249336d92ac76e7a Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Nov 2 18:33:41 2024 +0300 Move import to Statements * Add new AST visitors call template * Add syntax tree parameter * Add SpecialSyntaxTreeConverter * Add CollectNamesVisitor * Read Symbols from Semantic Tree * Add Visitor Renewaling * Fix Usage of Standard Libraries * Update AssignToVarConverterVisitor.cs * Fix Foreach Node Visitor * Refactor InterpreterVisitor (alpha version) * Add Imports Nodes for Declarations * Rename Method for Sending Object * Fix Remove in interface_node * Add ApplyConversionsAfterUsedModulesCompilation method to ILanguage interface * Rename ApplyConcreteConversions to ApplyConversions * Squashed commit of the following: commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Move unitNames dictionary to CompilationUnit class * Implement Spython StringResorces for SyntaxTree Converters * Move post conversion method to ISyntaxTreeConverter interface * Override get_system_module in SpythonSyntaxTreeVisitor * Fix Unit and Function Having Same Name Bug * Add TimeMeasurements Programs * Swap Visitors for Supporting New Imports * Fix Function with Named Parameters Substitution * Add Error for Using Global * Fix yyloc Bug and Add SyntaxVisiters Errors * Move List Desugar from Visiter to Parser (temp) * Move List Generator Desugaring Back to Visitors * Add Args after Kvarg Error Message * Fix Parser and Visitors' Errors Messages * Moved Examples Programs * Update Name Substitution Logic * Squashed commit of the following: commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * feat(bin/LanguageKits/SPython): add more things to installer * Change get_system_module method visibility (and some more) * Update SPython language names * Add CaseSensitive boolean saving in pcu * Implement case sensitive symbol table * Fix Create function not found error * Delete try/catch block in CollectNamesFromUsedUnits to make code cleaner * Create languageCaseSensitive field in pcu * Create CompilationArtifacts struct for passing data to ConvertAfterUsedModulesCompilation * Fix GraphWPF importing problem by dirty workaround !!! * Squashed commit of the following: commit 57ff5ef37d04ce8fcac8705c5a693bddf2ecf10e Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Feb 27 12:56:53 2025 +0300 Fix Global Variables Type Definition Основная программа выносится в функцию, определяемой самой первой и first_assignment_defines_type выводит тип глобальных переменных корректно commit 6f93ae8d6afc1c685d602b85ba6d455d862b35af Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 26 17:33:10 2025 +0300 Replace same_type_node, Fix Procedure Assignment commit 52a096394cfdd4d8e4b27ddd36570b45b053c380 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Feb 20 13:59:16 2025 +0300 Fix Local Scope in If Node commit a0be5bed7f110314c0e512d28a76e3bd87328f01 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 16:40:50 2025 +0300 Fix Bug with same_type_node commit 04fd2b2a6667bf06af02614a2fd30d0b50172a0c Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 16:09:27 2025 +0300 Fix Assignment for New Variables commit ea591e243a5a458d6d94e665cec50d9ef60e1a08 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 15:58:45 2025 +0300 Fix Assignment for Imported Variables in Functions commit e5d71be7693c527e6f4cd88671503dafa0ac9777 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 15:13:21 2025 +0300 Fix SPython's Syntax Node Erasion commit c78649ac7e7883860ce459cb31f9d9e46194f203 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 14:35:53 2025 +0300 Fix Variables from Module Assignment commit 4890f7f163a2557bc58d6e9c48cb432c6436a3aa Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 13:36:53 2025 +0300 Return RetainUsedGlobalVariablesVisitor commit e5460edf2fae002ccc64d261bbb8fadb27deec12 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 13:05:38 2025 +0300 Add Errors for Wrong Global Usage commit e32387e1356cc1e330518c57ab895f89b9de1784 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 12:33:55 2025 +0300 Update Comments about Syntax Visitors commit 1f6c7ac2d8c891d582cbe957ed2ad6886de27de1 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 12:27:59 2025 +0300 Fix Global Variables read access for global variables in fuctions by default commit e840610a25718ba12df144948bdda175cbc8d7c5 Merge: e70cb9914 6c81b45c0 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Fri Feb 14 19:51:38 2025 +0300 Merge branch 'SPython' into SPython-Context-Change commit e70cb99145120df29d1ae172d1b00afa8ea5b18f Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Fri Feb 14 19:49:18 2025 +0300 Return Back Global Keyword commit 7cf7a24b8f927cad72645e028f0e0ebc47cae328 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 12 13:15:35 2025 +0300 Fix Merge commit 89cc4551a0bcdb55eb64d244e35035134e5f6e75 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 12 13:02:06 2025 +0300 Squashed commit of the following: commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas … * Add rest of GetDesctiption methods to SPythonLanguageInformation * Add extended_new_expr allowing use without brackets for Intellisense * Add new intellisense_dotted_ident non-terminal symbol * Fix OperatorCanNotBeAppliedToThisTypes error throwing for SPython * Squashed commit of the following: commit 6d15540895ee1257baf2e1dd777f756ea3b0fa4f Author: Mikhalkovich Stanislav Date: Sun Aug 31 17:21:18 2025 +0300 SPython в 3.11 commit 1dc78980b2984f328c1070bc9c1c7f2b88fa678e Author: Mikhalkovich Stanislav Date: Wed Aug 27 11:23:19 2025 +0300 Flag commit 0483c2dca0f9a91514ab8adf7678cdde5eed42ce Author: Mikhalkovich Stanislav Date: Mon Aug 25 23:04:15 2025 +0300 Sign для беззнаковых commit dc4cbb25475050f6e2f55c6c6353a8ac4c924de2 Author: Mikhalkovich Stanislav Date: Mon Aug 25 00:16:12 2025 +0300 Флаг в Graph3D.pas commit 6a6c3553c2d35f8aa07765775b256780d21ec433 Author: Mikhalkovich Stanislav Date: Mon Aug 4 13:59:32 2025 +0300 LightPT - задачи перенес commit bf3ba7d2886891ed8553011a6fa06d2b0a18f8f1 Author: Mikhalkovich Stanislav Date: Mon Aug 4 12:51:30 2025 +0300 interface у Turtle.pas Команда изменения цвета и ширины commit 59ed71f45959f5b0b6b4db2148498af91b797156 Author: Mikhalkovich Stanislav Date: Mon Aug 4 10:29:08 2025 +0300 Команды ПоменятьЦвет и ПоменятьШиринуПера теперь учитываются в Черепахе commit 160dd58195434008cc3a236deacf922dd46e78d1 Author: Mikhalkovich Stanislav Date: Sun Jul 20 17:00:28 2025 +0300 fix #3324 commit 6218cc87232035153e12ac2f86fb02abfd9e9ea1 Merge: cabe8f85e 89e02b504 Author: Mikhalkovich Stanislav Date: Sat Jul 19 20:06:38 2025 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit cabe8f85ee090b30b543752289b802869126dd0d Author: Mikhalkovich Stanislav Date: Sat Jul 19 20:06:25 2025 +0300 Min(1) Max(1) commit 89e02b504e5834d11c0da8fdc0e4a2635b627755 Author: Nikolay Kuznetsov Date: Thu Jul 17 10:08:54 2025 +0300 Update CodeCompletionActions.cs (#3323) Показ Code Completion Window по Ctrl-Space, если курсор находится сразу после точки (как сделано в Win версии). Текущее поведение - после точки ccw не показывать, только если курсор переместить на несколько символов вправо от точки. commit c080feba89caec1cddae1879ea6ec5a256ef30df Author: Mikhalkovich Stanislav Date: Tue Jul 15 16:06:58 2025 +0300 RayTracer/RayTracer3.pas commit cc266b3863187cde90a687ecf0141d60ab99eaa8 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Mon Jul 14 19:08:55 2025 +0300 Поправки в LanguageInformation (#3322) * Fix inaccuracy * Delete useless variable * Implement refreshing description before showing it in Intellisense windows * Fix inaccuracies * Add GetDescriptionForArray and GetDescriptionForDelegate in SPythonLanguageInfo * Exclude Read Write Async and Await from keywords list in Intellisense commit 56d1eb5648c0f370dfb1a08e18daf7ffde6b44f3 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sun Jul 13 18:44:29 2025 +0300 Обновление описания сущностей в Intellisense (#3321) * Implement refreshing description before showing it in Intellisense windows * Change BuildDescription in ProcScope * Fix description rebuild bug commit 4cec1e7c4334c0c15f558b6bfd6c827ce2aa83a4 Author: Mikhalkovich Stanislav Date: Sun Jul 13 13:13:29 2025 +0300 fix #3299 Revert incorrect pr intellisense commit 20a14361292cbf375e57789dba4c1f494f3a64e9 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sun Jul 13 10:19:40 2025 +0300 Исправление неправильных изменений в LanguageInformation (#3319) * Fix inaccuracy * Delete useless variable * Implement refreshing description before showing it in Intellisense windows * Fix inaccuracies * Add GetDescriptionForArray and GetDescriptionForDelegate in SPythonLanguageInfo commit 9e9a0469b3db66a6ea94d61ebfe2188e16670093 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Thu Jul 10 18:35:07 2025 +0300 Добавление обновления описания сущностей из Intellisense перед выводом их в окошке (#3320) * Implement refreshing description before showing it in Intellisense windows * Change BuildDescription in ProcScope commit e14b517e9dc3fa990dd5d26d6a1e1e647116e108 Author: Nikolay Kuznetsov Date: Sat Jul 5 11:09:00 2025 +0300 Update ProcessRunner.cs -- fix for space chars in running app file name (#3317) fix pascalabcnet/pascalabcnet#ISSUE-3315 commit 6fa1caa034071116bd6bf984b6ec41a0e1fa85d2 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sat Jul 5 11:05:34 2025 +0300 Учет случая params в TipPainterTools при подсветке (#3318) * Refactor LanguageInformation classes * Improve extension check in TipPainterTools * Refactor parsing parameters for signature help * Fix TipPainterTools Linux version * Add Params check in TipPainterTools commit a1584f4f9025d0e44ea428baf442c31f9ac94823 Author: Nikolay Kuznetsov Date: Sat Jul 5 11:05:10 2025 +0300 Update RobotField.pas (#3310) Адаптировано для Linux версии PABC * показываются надписи на форме в Ubuntu * шрифт надписей приведён к совместимому Sans Serif * Помощь - замена #10#13 на NewLine определяемый платформой commit 19f78930edca65a8bf704d7cc7bed5983a05a6a8 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Thu Jul 3 20:42:47 2025 +0300 removing hard code (#3313) commit ef795bbb6498898c077c5c5517fc94cbf84dcfec Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Thu Jul 3 20:39:09 2025 +0300 renaming method and adding comments (#3312) commit 9d57c427aceaa7c8fabe425005fa981e69a2de52 Author: Mikhalkovich Stanislav Date: Mon Jun 30 19:33:04 2025 +0300 MainForm.Load += commit 9927a0e305b9c3e1d998a3913426a026139d8225 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Mon Jun 30 19:19:24 2025 +0300 fix type name comparsion (#3309) commit 7614931f06322f983e96184594af7785e6d3860b Author: dmkwketx Date: Mon Jun 30 19:18:05 2025 +0300 Update WhatsNew 3_10_4 files: exit_param2.pas & exit_param3.pas (#3305) * Update exit_param3.pas Добавлена проверка, что числа меньше числа 2 не простые. особенно единица * Update exit_param2.pas Добавлена проверка что числа меньше числа 2 не простые. commit dccd7942b70f90029cdd3fcfac1b49219cbee4a8 Author: Nikolay Kuznetsov Date: Mon Jun 30 19:17:09 2025 +0300 Added ABCObjects samples to Linux build (#3306) commit 0b3471daa053a8851b79502a4d1f145d12ccd2ae Author: Nikolay Kuznetsov Date: Mon Jun 30 19:16:51 2025 +0300 Delete InstallerSamples/Graphics/GraphABCLinux directory (#3307) Удалить как неиспользуемую commit d4173b0bec63f040fcfe9f636415d556546e7fa9 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Sat Jun 28 16:12:28 2025 +0300 removing hard code (#3304) commit 0972d09837a009203568e9563a03466c276aaf95 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Sat Jun 28 16:10:29 2025 +0300 Return break, continue и exit in completion list (#3298) commit 5abe6333ba055a32300e2b1f979dff26c1118d0e Author: Mikhalkovich Stanislav Date: Thu Jun 26 13:25:24 2025 +0300 опечатка в комменте commit aa42e80c7f36e9b3b59baa85c7f961e27c0ea906 Author: Mikhalkovich Stanislav Date: Wed Jun 25 22:27:48 2025 +0300 2025 by commit ae16484db7edf2e6a809f1e29b75b5184a17689f Author: Mikhalkovich Stanislav Date: Wed Jun 25 20:06:03 2025 +0300 Пересобрал commit 0646c80e4a05aa14c3bec52a119d39f4b0fb2639 Merge: 107f2c49b a389183ef Author: Mikhalkovich Stanislav Date: Wed Jun 25 20:05:20 2025 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 107f2c49bbf6d12b29496660f2153ff14647294a Author: Mikhalkovich Stanislav Date: Wed Jun 25 19:11:42 2025 +0300 Сделал ошибку при передаче в качестве делегата параметром обобщенной функции commit d2440264e85de6f401b84eed643bbaba6c08db85 Author: Mikhalkovich Stanislav Date: Wed Jun 25 19:09:36 2025 +0300 Перенес из ошибок назад в правильные. Вернул странное недокументированное поведение присваивания обобщенной функции делегату commit da16d41c58ec5384a2f227dd9e42d9d0c2e46f08 Author: Mikhalkovich Stanislav Date: Wed Jun 25 19:07:18 2025 +0300 Удалил два файла с ошибками - обобщенная функция присваивается делегату commit a389183efe6f52d21fff7d7c6ad6d17e16b0004c Author: Sun Serega Date: Mon Jun 23 23:49:48 2025 +0300 Improve GitIgnoreTester output (#3295) commit 63274c3c5e1c5acca319a4b1884c25b06e29a839 Author: Mikhalkovich Stanislav Date: Mon Jun 23 22:28:17 2025 +0300 Пересобрал 3.11.0.3641 commit 34187755deef628edfdab186e32348f5ee57875a Author: Mikhalkovich Stanislav Date: Mon Jun 23 22:02:24 2025 +0300 fix #3290 commit 6eccd661aefd133694c0dd3f4ecb5ce00a9f73cc Author: Mikhalkovich Stanislav Date: Mon Jun 23 16:36:58 2025 +0300 3.11 version with SPython (not in installer!) commit 080fca15bb9e6ec365b1f514296cd34e435e65e2 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Jun 22 20:56:22 2025 +0300 SPython 1.0 (#3274) * Squashed commit of the following: commit 115ed2e1b7b361b35f0b213688ad0838e0bffa69 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Nov 7 10:21:08 2024 +0300 Add from import Handling commit bdd3eb785e6c719201104497808e89dc20c4eacc Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Nov 3 12:59:29 2024 +0300 Add 'Import As' commit e5747aa56e359633be366887d3cf67d1ec054701 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Nov 3 11:08:50 2024 +0300 Add Ident_list to import commit 9d16fdb341b329adae45dec2bf6db04d8572675f Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sun Nov 3 10:01:13 2024 +0300 Move Import Handling to Visitor commit d8a0e8f5ee840e3ff15caafd7a456f91e1f2a962 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Nov 2 18:36:10 2024 +0300 Rename of Productions Related to Import commit 71282a457ab0c039a2f42c05249336d92ac76e7a Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Nov 2 18:33:41 2024 +0300 Move import to Statements * Add new AST visitors call template * Add syntax tree parameter * Add SpecialSyntaxTreeConverter * Add CollectNamesVisitor * Read Symbols from Semantic Tree * Add Visitor Renewaling * Fix Usage of Standard Libraries * Update AssignToVarConverterVisitor.cs * Fix Foreach Node Visitor * Refactor InterpreterVisitor (alpha version) * Add Imports Nodes for Declarations * Rename Method for Sending Object * Fix Remove in interface_node * Add ApplyConversionsAfterUsedModulesCompilation method to ILanguage interface * Rename ApplyConcreteConversions to ApplyConversions * Squashed commit of the following: commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * Move unitNames dictionary to CompilationUnit class * Implement Spython StringResorces for SyntaxTree Converters * Move post conversion method to ISyntaxTreeConverter interface * Override get_system_module in SpythonSyntaxTreeVisitor * Fix Unit and Function Having Same Name Bug * Add TimeMeasurements Programs * Swap Visitors for Supporting New Imports * Fix Function with Named Parameters Substitution * Add Error for Using Global * Fix yyloc Bug and Add SyntaxVisiters Errors * Move List Desugar from Visiter to Parser (temp) * Move List Generator Desugaring Back to Visitors * Add Args after Kvarg Error Message * Fix Parser and Visitors' Errors Messages * Moved Examples Programs * Update Name Substitution Logic * Squashed commit of the following: commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav Date: Thu Nov 21 22:24:07 2024 +0300 NSToBytes переделал с исключением commit 2bacdc8c28c46b70ac85f9379eddf09dd3a98c1a Author: Mikhalkovich Stanislav Date: Wed Nov 20 13:20:33 2024 +0300 Комментарии к NewSet commit e917ac8eca4eb401c541e247320df06a82d6be54 Author: Mikhalkovich Stanislav Date: Wed Nov 20 12:42:15 2024 +0300 TypeName для set commit 206289c6a7b6f23fefa7b8135025de8382d036e8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 20:23:03 2024 +0300 Везде заменил _hs на hs в NewSet Убрал вызовы методов расширений NewSet в PABCSystem.pas Убрал var в operator + commit d8262078f642bf038978da11f8e31eb435273fb8 Author: Mikhalkovich Stanislav Date: Tue Nov 19 13:56:47 2024 +0300 Исправление мелких ошибок NewSet Все тесты проходят. Проблема, которая остаётся - в режиме ускорения такие программы падают: begin var s: set of byte; Print(s = [1]); end. Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение commit f8819665bad36e60b18b423f573de10f5e5e6a85 Author: Mikhalkovich Stanislav Date: Sat Nov 16 10:56:11 2024 +0300 NS2 commit 591d9ebe6013653a6ce9e381b925adf8c7252d5d Author: Ivan Bondarev Date: Wed Nov 13 21:34:10 2024 +0100 fix commit c6505634f4b0b0f3a94b1df8c2a99b17ae14e2f2 Author: Ivan Bondarev Date: Wed Nov 13 21:12:33 2024 +0100 fix commit a6564df23cb1fb4a1958d9d608a80772888fb4a3 Author: Ivan Bondarev Date: Wed Nov 13 20:52:29 2024 +0100 fix in new sets commit 03be5bd931b57072807e2664ab512eb2bac0add4 Author: Mikhalkovich Stanislav Date: Wed Nov 13 22:13:41 2024 +0300 Переставил operator:= в NewSet commit 96c68f1666836f51f203528423d099998555b6c3 Author: Ivan Bondarev Date: Tue Nov 12 21:38:07 2024 +0100 #3223 commit 82776f3c77a81f3cd67cf1d89474961f64b71aec Author: Mikhalkovich Stanislav Date: Sat Nov 9 12:18:19 2024 +0300 NewSet - много мелких исправлений. Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll commit fbd63efa89ab90f28f0bb8f145f39b109908bb62 Author: Mikhalkovich Stanislav Date: Sun Nov 3 16:59:48 2024 +0300 NewSets Некоторые тесты надо исправить commit 746c4ae2c26ae9aa1eeca2a09568a94953b25a33 Author: Ivan Bondarev Date: Thu Oct 31 21:00:42 2024 +0100 #3221 commit 350d07326d149b02ea27e1d9877ac02d8c3d592c Author: Ivan Bondarev Date: Thu Oct 31 18:35:51 2024 +0100 #3221 commit aae9ab408bb1b59d591cc6f866a3757be895ecd9 Author: Ivan Bondarev Date: Thu Oct 31 18:25:06 2024 +0100 #3221 commit 1e4a811e04f81089e5801e363b5744dd6466ecb9 Author: Ivan Bondarev Date: Wed Oct 30 20:42:59 2024 +0100 test for #3219 commit d1a1247ecd3d915c0bc89d032998b8706531396a Author: Ivan Bondarev Date: Wed Oct 30 20:24:16 2024 +0100 #3219 commit 13b3071d80bcabb50a23fefbda43b87aca633b2e Author: Mikhalkovich Stanislav Date: Mon Oct 28 22:42:17 2024 +0300 закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить commit 6d5c18f4574c99bb66b294a17cfede9c7ff885cf Author: Mikhalkovich Stanislav Date: Thu Oct 24 10:17:48 2024 +0300 SF XLSX.pas commit 0c773a7ecba2436ca516e3dfd8dda6c057341600 Author: Mikhalkovich Stanislav Date: Wed Oct 16 12:04:33 2024 +0300 tree.xml с парой новых узлов для Питона commit 53b3fd0881c7097420323b35955687919cd3f5c6 Author: Mikhalkovich Stanislav Date: Wed Oct 9 14:09:01 2024 +0300 Добавил временное преобразование от array of T в set of T commit 271d5792cedbee8f8c623009474ca470153dc64f Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Tue Oct 8 10:00:14 2024 +0300 Documentation (#3211) * Add Compiler documentation * Add Intellisense documentation * Move documentation folder to root directory commit 79f9ab73a05c09d5553e662853d4ec2b8d9d8662 Author: Mikhalkovich Stanislav Date: Sat Oct 5 15:33:20 2024 +0300 PT4_32 commit 0a20c8d32c8b38d500fd0f7a60580680e5899af0 Author: Sun Serega Date: Thu Sep 26 09:02:31 2024 +0200 Add `.DistinctBy` (#3122) commit 11981dbf4753bd6cc2ed6f118b72931a77677b29 Author: Mikhalkovich Stanislav Date: Wed Sep 25 11:53:02 2024 +0300 IndexMinBy, IndexMaxBy MinBy, MaxBy - более эффективная реализация GraphWPF - SaveToClipboard commit 3eb1d2bd85653571390ea407992a49333543d6c3 Author: Ivan Bondarev Date: Sun Sep 22 17:42:09 2024 +0200 #3197 commit 20edd487e3eba46fcca55366e907b865286753b5 Author: Ivan Bondarev Date: Sun Sep 22 12:39:03 2024 +0200 #3204 commit 7261231c9c80a39ae48a3197c296012e879cc0b6 Merge: 7debbe702 9ab932977 Author: Ivan Bondarev Date: Sun Sep 22 09:49:58 2024 +0200 Merge pull request #3207 from AlexanderZemlyak/fix_linux_version Fix linux version commit 9ab93297710a4b3013a6bd3dd937be69e4e9e64c Author: AlexanderZemlyak Date: Sun Sep 22 10:23:18 2024 +0300 Add new projects in PascalACBNETLinux.sln commit 7debbe702abd79ab495869c42abe30117c6d05f0 Author: Mikhalkovich Stanislav Date: Sat Sep 21 14:29:38 2024 +0300 Критическое обновление LightPT commit 40335b873e788fc6de845502e44bba0168b3f9a9 Author: Mikhalkovich Stanislav Date: Fri Sep 20 22:58:46 2024 +0300 LightPT - OutputListIsClearedFromSpaces := False; Coords - DrawLine commit 078281db17d1492510f2046a5a1aa58dfc84ea1d Author: Mikhalkovich Stanislav Date: Thu Sep 19 22:42:44 2024 +0300 coords suite commit 8d51f999a5fdcd21a27ff9408ef2ac58b1d3f917 Author: Mikhalkovich Stanislav Date: Thu Sep 19 20:28:28 2024 +0300 Автоклассы - разрешение наследования от классов без полей Модуль Coords commit 8f7e92d41870c5a44c4c65d9dcbde0b26284ff32 Author: Mikhalkovich Stanislav Date: Mon Sep 16 08:25:43 2024 +0300 Turtle переделал на паттерн Команда commit a6f6d8a90b06fcf65a4f9c320c3593a6fbd2b5f3 Author: Mikhalkovich Stanislav Date: Sat Sep 7 23:11:54 2024 +0300 Правки рейтинга в TeacherPlugin commit 2365eb363385a0228749109d83f97ea083e27931 Author: Mikhalkovich Stanislav Date: Sat Sep 7 15:54:15 2024 +0300 LinkLabel в TeacherControlPlugin commit 1835b811efd21b576d59da8186df07a5fdc8fa67 Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:51:44 2024 +0300 MathNet Signed commit b23d6df9e9281e64ac4f72a9aff20c637cbde6bd Author: Mikhalkovich Stanislav Date: Tue Sep 3 23:16:15 2024 +0300 MathNet.Numerics.dll commit 790fba67b850f980d6fc0b686b552de37e07ab2b Author: Mikhalkovich Stanislav Date: Tue Aug 27 17:56:09 2024 +0300 3.10.0 commit 1ec4204fd29249a3585adb98765b7b8178cdb21d Author: Sun Serega Date: Mon Aug 26 09:20:27 2024 +0300 `.Batch` cleanup (#3108) commit b5e674c31105107395972d05be7e8f60780397f8 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:12:14 2024 +0300 3_10_0 commit 7face043cfb0462af493350c7846cf0a5f0efe85 Author: Mikhalkovich Stanislav Date: Mon Aug 26 09:11:08 2024 +0300 ToSet commit e456ad528e737ad889f04b8df600a841d382fdbc Author: Mikhalkovich Stanislav Date: Sat Aug 24 23:13:57 2024 +0300 3.9.0.3530 commit 3247469e6df0494099686c654a66245ac44e30db Author: Mikhalkovich Stanislav Date: Sat Aug 24 22:55:27 2024 +0300 Добавлен DrawPoints в Turtle Исправлена ошибка с отображением подписей в Y-координате commit 7548142623e25b6aa0cd78af3d25433a1f0663f3 Author: Mikhalkovich Stanislav Date: Sat Aug 24 14:27:53 2024 +0300 1. Глобально. SetDecimalSeparator(',') SetNumberFormat(DecimalSeparator := ',' и куча других параметров) s.ToReal(nfi) s.ToReals(nfi) StrToReal(nfi) StrToFloat(nfi) FloatToStr(nfi) var nfi := NumberFormat(DecimalSeparator := ',') s.ToReal(DecimalSeparator := ',') s.ToReals(DecimalSeparator := ',') StrToReal(DecimalSeparator := ',') commit d94885b950857d6453530ebef148b49c1e5143ac Author: Mikhalkovich Stanislav Date: Sat Aug 24 12:13:09 2024 +0300 randomElement для строк .ToReals - разделителями могут быть пробел табуляция и переход на новую строку NumberFormat - функция, возвращающая nfi commit ae2e26acf8e19074002d1c1dea241669739da4b4 Author: Mikhalkovich Stanislav Date: Fri Aug 23 19:33:55 2024 +0300 PT4 - новые dll файлы старых заданий серий A commit 0f8aa6fa3c29104b6f4896fe133b78adeca72914 Author: Mikhalkovich Stanislav Date: Sun Aug 18 17:28:05 2024 +0300 SetOf как основной синоним HSet commit db4b53be20dc9def3ac345a1208f8dd6f0cb2376 Merge: 86852e0a5 b9fd59a84 Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:42 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 86852e0a59faa7af7b93d848c8a047d4d99f687d Author: Mikhalkovich Stanislav Date: Sun Aug 18 16:05:14 2024 +0300 School - ToBase(number: int64 commit b9fd59a8403e490eb0c3d8e04fe2437c2ed61fc7 Author: Ivan Bondarev Date: Tue Aug 13 15:08:44 2024 +0200 #2830 commit 4f0b0f8ba01da1ca4f7826604088492e4282bf46 Author: Ivan Bondarev Date: Tue Aug 13 14:43:49 2024 +0200 #3194 commit e3ee0fed4cc09407624174c49fc70511fe6cfb7e Author: Ivan Bondarev Date: Tue Aug 13 13:49:30 2024 +0200 #3097 commit d396c4a9feb8a42d405932a375abbcef11785a81 Author: Ivan Bondarev Date: Tue Aug 13 10:40:23 2024 +0200 #3178 commit 0d846d2335b7fa643a5e2288d35ac1d9b188eff2 Merge: e91e35398 a65a86921 Author: Ivan Bondarev Date: Mon Aug 12 15:24:11 2024 +0200 Merge pull request #3170 from samuraiGH/ForeachResolver-rework Foreach resolver rework commit a65a8692114522aabdc4db98dbd5e78edc1279ef Author: samuraiGH Date: Mon Aug 12 15:50:42 2024 +0300 increasing pcu file version commit e91e3539848359b5cb2f04e2f406e1cfab3da905 Author: Mikhalkovich Stanislav Date: Sun Aug 11 15:21:29 2024 +0300 Обновленный модуль Turtle.pas commit c18238df39231c99166ae56fc4400d8e0c05b711 Author: Mikhalkovich Stanislav Date: Tue Aug 6 20:18:57 2024 +0300 3.9.0.3523 commit 1da2b524a6d043140a126e0c26d6fa011768dee3 Author: Mikhalkovich Stanislav Date: Tue Aug 6 19:34:10 2024 +0300 School PrimeDivisors commit 47c61d8b14899d692085b197ec50f495544db7cb Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:48:07 2024 +0300 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 commit fc3ab96cae2e971bf0b80a528474ec7c80562749 Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri Aug 2 10:46:40 2024 +0300 Delete DocumentedUnits option and Exclude HelpBuilder project (#3192) * Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug Достаточно их аналогов из CompilerOptions. * Add recreating CompilerOptions when reloading Compiler * Change Rebuild checkbox logic * Delete documented units fiels from CompilerInternalDebug * Revert "Delete CodeGeneration and PCUGenerate options from CompilerInternalDebug" This reverts commit 25e92b22722b7e251ab0156148fdf28ee3175c27. * Exclude HelpBuilder commit 64acde6460e9b0ec445cc3d45417d279b822227a Author: Mikhalkovich Stanislav Date: Wed Jul 31 18:21:04 2024 +0300 Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса) School - IsPrime(n) commit 3db570910118aea6501b575f416d9207000d4832 Author: Mikhalkovich Stanislav Date: Wed Jul 31 10:56:18 2024 +0300 ZipCartesianFuncs.pas commit c4fd47128b5bec22efd50c0e9c020a88cfee3557 Author: Mikhalkovich Stanislav Date: Tue Jul 30 22:56:03 2024 +0300 Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией Zip, Cartesian - методы расширения дополнены чтобы было как во внешних Перегенерирована справка commit 7d66f26d4faa299893aab2cd9b4a866b6ebb3ef9 Author: samuraiGH Date: Mon Jul 1 00:16:43 2024 +0300 cleanup and more tests commit 464dc794a88287daeb78f50d14b13b6ea97f96cb Author: samuraiGH Date: Sun Jun 30 23:31:28 2024 +0300 cleanup and more comments commit 32f126370c0630cf3c2cabc137ee4aa891c711da Author: samuraiGH Date: Sun Jun 30 21:35:06 2024 +0300 attempt to fix GetEnumerator resolving for Pascal types commit fb3eeeb28b9c41a489228b3db535c3488225afe7 Author: samuraiGH Date: Sat Jun 29 16:26:35 2024 +0300 fix tests commit 84b0dfe5370eee9b74fdbb6286128fce61713b76 Author: samuraiGH Date: Sat Jun 29 15:49:13 2024 +0300 fix getting MethodInfo commit 5fa4d9fce7cbbda2962fc6784dd499e1ad650f6a Author: samuraiGH Date: Fri Jun 28 22:45:07 2024 +0300 cold fix set of T resolving commit 460ce636ab907733f5f595b142a55cc38bd981e4 Author: samuraiGH Date: Fri Jun 28 22:21:06 2024 +0300 hot fix set of T resolving commit 83c2f29ac62e7a1f5e478fc2185253804c034bb4 Author: samuraiGH Date: Fri Jun 28 21:53:11 2024 +0300 fix method filtering again commit c840a1a47abe67ec57836df1f1cf4b1ef6d999d4 Author: samuraiGH Date: Fri Jun 28 21:32:41 2024 +0300 fix type recovery commit 2436627fdd21648a71e62cf3128e154c199c5cc6 Author: samuraiGH Date: Fri Jun 28 19:18:32 2024 +0300 fixing method filtering commit 15a05360a42615bf719a7c53a775b6f9d278e3dd Author: samuraiGH Date: Fri Jun 28 17:25:39 2024 +0300 attempt to fix GetEnumerator resolving for compiled types commit 4fd020d084846865178b21d759ce55933fd2be96 Author: samuraiGH Date: Fri Jun 28 17:21:00 2024 +0300 adding tests * feat(bin/LanguageKits/SPython): add more things to installer * Change get_system_module method visibility (and some more) * Update SPython language names * Add CaseSensitive boolean saving in pcu * Implement case sensitive symbol table * Fix Create function not found error * Delete try/catch block in CollectNamesFromUsedUnits to make code cleaner * Create languageCaseSensitive field in pcu * Create CompilationArtifacts struct for passing data to ConvertAfterUsedModulesCompilation * Fix GraphWPF importing problem by dirty workaround !!! * Squashed commit of the following: commit 57ff5ef37d04ce8fcac8705c5a693bddf2ecf10e Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Feb 27 12:56:53 2025 +0300 Fix Global Variables Type Definition Основная программа выносится в функцию, определяемой самой первой и first_assignment_defines_type выводит тип глобальных переменных корректно commit 6f93ae8d6afc1c685d602b85ba6d455d862b35af Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 26 17:33:10 2025 +0300 Replace same_type_node, Fix Procedure Assignment commit 52a096394cfdd4d8e4b27ddd36570b45b053c380 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Thu Feb 20 13:59:16 2025 +0300 Fix Local Scope in If Node commit a0be5bed7f110314c0e512d28a76e3bd87328f01 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 16:40:50 2025 +0300 Fix Bug with same_type_node commit 04fd2b2a6667bf06af02614a2fd30d0b50172a0c Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 16:09:27 2025 +0300 Fix Assignment for New Variables commit ea591e243a5a458d6d94e665cec50d9ef60e1a08 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 15:58:45 2025 +0300 Fix Assignment for Imported Variables in Functions commit e5d71be7693c527e6f4cd88671503dafa0ac9777 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 15:13:21 2025 +0300 Fix SPython's Syntax Node Erasion commit c78649ac7e7883860ce459cb31f9d9e46194f203 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 14:35:53 2025 +0300 Fix Variables from Module Assignment commit 4890f7f163a2557bc58d6e9c48cb432c6436a3aa Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 13:36:53 2025 +0300 Return RetainUsedGlobalVariablesVisitor commit e5460edf2fae002ccc64d261bbb8fadb27deec12 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 13:05:38 2025 +0300 Add Errors for Wrong Global Usage commit e32387e1356cc1e330518c57ab895f89b9de1784 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 12:33:55 2025 +0300 Update Comments about Syntax Visitors commit 1f6c7ac2d8c891d582cbe957ed2ad6886de27de1 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Sat Feb 15 12:27:59 2025 +0300 Fix Global Variables read access for global variables in fuctions by default commit e840610a25718ba12df144948bdda175cbc8d7c5 Merge: e70cb9914 6c81b45c0 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Fri Feb 14 19:51:38 2025 +0300 Merge branch 'SPython' into SPython-Context-Change commit e70cb99145120df29d1ae172d1b00afa8ea5b18f Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Fri Feb 14 19:49:18 2025 +0300 Return Back Global Keyword commit 7cf7a24b8f927cad72645e028f0e0ebc47cae328 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 12 13:15:35 2025 +0300 Fix Merge commit 89cc4551a0bcdb55eb64d244e35035134e5f6e75 Author: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Date: Wed Feb 12 13:02:06 2025 +0300 Squashed commit of the following: commit 41dfb6f187afb2f80ecfb8fa14036ba5b0b00287 Author: Mikhalkovich Stanislav Date: Fri Feb 7 21:41:01 2025 +0300 [] - преобразование во все контейнеры GraphABCHelper - теперь ABCObjects работает под Линукс School исправлен согласно последним веяниям [] commit 79bbbd10ffcbcc9f7529c449698b488dad84af76 Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Wed Jan 29 20:18:37 2025 +0300 removing files for support fx4.0 (#3240) commit 88d5c409ebfe7b7a41fc0563f7e03a44f4687f3e Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com> Date: Tue Jan 28 20:41:55 2025 +0300 Рефакторинг PascalABCNET.xshd (#3237) * refactoring PascalABCNET.xshd * removing extra characters commit 8fbd7fdfc323713b7e9fe98703d079d1315df4de Author: Mikhalkovich Stanislav Date: Sun Jan 26 23:42:48 2025 +0300 3.10.3 faststrings EmptyCollection и преобразование ее в List, Dictionary t: (real,real) := (1,2) commit bba132bd5dbe24a770e068d6f0b6686cb83c72b9 Author: Mikhalkovich Stanislav Date: Wed Jan 22 09:14:44 2025 +0300 Поправил справку по функции commit 1bd21857cc05e7e6150bd2d646215c4186f7a28a Author: Mikhalkovich Stanislav Date: Wed Jan 8 18:46:51 2025 +0300 Teacher Control Plugin - возможность задать server.dat commit 0848a1b796559015f0f3338ebb4abfed57ba20cb Author: Mikhalkovich Stanislav Date: Sat Jan 4 22:54:38 2025 +0300 Исправление автоформатирования [] commit d45b782a7bf675be806851bf2f60338f2b9fb9b9 Author: Mikhalkovich Stanislav Date: Sat Jan 4 18:45:07 2025 +0300 Rename PABCSistem in test suite commit c2347e604b02232735b3e77ceeaaa034a50195d4 Author: Mikhalkovich Stanislav Date: Sat Jan 4 14:44:51 2025 +0300 Примеры - устранил неточности LightPT - имя сервера вынес в публичную секцию commit b68b8da9702bc14e55f1f7ece135116d492c6a83 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:52:18 2024 +0300 Примеры Coords1.pas Coords2.pas.pas commit 8a9788e6f9915df7e9bf925be55e0895753ce022 Author: Mikhalkovich Stanislav Date: Tue Dec 17 15:06:57 2024 +0300 Перенес проверку set array на уровень парсера Немного поправил Intellisense по наведению для NewSet По точке там что то другое работает commit 874ddebad324e4ac5cd99251a7f254a075b30a6a Author: Mikhalkovich Stanislav Date: Sat Dec 14 21:00:38 2024 +0300 Поправил грамматику [] Теперь нельзя в режиме ## использовать атрибуты Зато можно [1,2,3].Print commit 080fb487e10b3ae356a9fad23d460827409b5d30 Merge: a53dcd9ed a484b0e82 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:24 2024 +0300 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit a53dcd9ed22b80e08c926d4fc525da73d7618a42 Author: Mikhalkovich Stanislav Date: Sat Dec 14 15:25:16 2024 +0300 SF Prm Cmb для строк commit a484b0e82db2033614a0287a50f447630f8e20de Author: Sun Serega Date: Thu Dec 12 13:49:17 2024 +0200 fix (#3231) commit 6ef11f249c4368df35d2c4052b788b1bdbfc39e1 Author: Mikhalkovich Stanislav Date: Tue Dec 10 11:05:45 2024 +0300 3.10.2 commit db9679d89ff7548ed432a8bc28677887284aa6c9 Author: Mikhalkovich Stanislav Date: Tue Dec 10 10:59:20 2024 +0300 Закончил превращение синтаксиса [] по умолчанию в массивы commit 45fdde24b47ea9bb2556898ada8f777e4b39df41 Author: Ivan Bondarev Date: Sun Dec 8 18:08:00 2024 +0100 #3229 commit 494b47624dc7eb204417ffc6174a74a120aeecef Merge: 5875b9929 7906d73da Author: Ivan Bondarev Date: Sun Dec 8 10:42:07 2024 +0100 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet commit 5875b99296d165f4e51d26e6bf291aba7f81c590 Author: Ivan Bondarev Date: Sun Dec 8 10:41:53 2024 +0100 platformtarget native - .NET 9.0 commit 7906d73da359b89181c71ab847fe04251ccd9f49 Author: Mikhalkovich Stanislav Date: Tue Dec 3 14:25:37 2024 +0300 Небольшие изменения в реализации операций с множествами commit 087591c7b662ac5d08137c4effc5f72f670cd779 Author: Mikhalkovich Stanislav Date: Wed Nov 27 11:37:07 2024 +0300 3.10.1 Coords - доработки Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки commit d268d4f83b05cd57689f4162c1656d61f706e02f Author: Mikhalkovich Stanislav … * Fix %%MAIN%% function source context * Fix case sensitivity for CompiledScope search methods * Fix imported aliases hints * Implement list standard container as wrapper * Implement set standard container as wrapper * Implement dict standard container as wrapper * Improve set operations speed * Move list, set and dict functions to SPythonHidden Нужно будет перенести куда-то в другое место потом для красоты * Fix type function in SPythonSystem * Increase the priority of functions over the type conversion operation in ExpressionVisitor * Fix generic type search in SymScope internal find * Toggle AddStandardNetNamespacesToUserScope for SPython Пришлось включить подсказку пр-в имен для корректной работы семантического Intellisense. * Fix itertools --------- Co-authored-by: MovchanGitHub <92666028+MovchanGitHub@users.noreply.github.com> Co-authored-by: Владислав Крылов Co-authored-by: Sun Serega --- CodeCompletion/DomConverter.cs | 16 +- CodeCompletion/DomSyntaxTreeVisitor.cs | 13 +- CodeCompletion/ExpressionVisitor.cs | 50 +- CodeCompletion/SymTable.cs | 55 +- .../SPythonLanguageInformation.cs | 109 +- .../SPythonLexer.cs | 6 +- .../SPythonParser.y | 55 +- .../SPythonParserYacc.cs | 1361 +++++++++-------- .../spython_syntax_tree_visitor.cs | 106 +- .../NameCorrectVisitor.cs | 25 +- .../TreeNodesRearrangementVisitor.cs | 1 + .../TypeCorrectVisitor.cs | 14 +- .../ParserTools/BaseLanguageInformation.cs | 106 ++ .../ParserTools/ILanguageInformation.cs | 8 + .../PascalABCLanguageInformation.cs | 128 +- TreeConverter/NetWrappers/NetHelper.cs | 19 +- .../CodeCompletion/CodeCompletionProvider.cs | 28 +- .../CodeCompletion/CodeCompletionProvider.cs | 36 +- bin/Lib/SPythonHidden.pas | 30 +- bin/Lib/SPythonSystem.pas | 512 +++++-- bin/Lib/SPythonSystemPys.pys | 4 +- bin/Lib/itertools.pys | 2 +- 22 files changed, 1601 insertions(+), 1083 deletions(-) diff --git a/CodeCompletion/DomConverter.cs b/CodeCompletion/DomConverter.cs index 37a1ec6e3..65d00821f 100644 --- a/CodeCompletion/DomConverter.cs +++ b/CodeCompletion/DomConverter.cs @@ -1016,7 +1016,12 @@ namespace CodeCompletion } if (ss != null && ss.si != null) { - ss = ss.WithRefreshedDescription(); + // в случае операции преобразования типа эта ветка срабатывает + if (ss is ElementScope && string.IsNullOrEmpty(ss.si.description) && (ss as ElementScope).sc is TypeScope) + ss.si.description = (ss as ElementScope).sc.Description; + else + // обновление описания + ss = ss.WithRefreshedDescription(); try { @@ -1050,19 +1055,16 @@ namespace CodeCompletion else ss.AddDocumentation(UnitDocCache.GetDocumentation(ps)); } - else if (ss is InterfaceUnitScope) ss.AddDocumentation(UnitDocCache.GetDocumentation(ss as InterfaceUnitScope)); - else if (ss is ElementScope && string.IsNullOrEmpty(ss.si.description) && (ss as ElementScope).sc is TypeScope) - ss.si.description = (ss as ElementScope).sc.Description; } } catch (Exception e) - { + { #if DEBUG - File.AppendAllText("log.txt", e.Message + Environment.NewLine + e.StackTrace + Environment.NewLine); + File.AppendAllText("log.txt", e.Message + Environment.NewLine + e.StackTrace + Environment.NewLine); #endif - } + } RestoreCurrentUsedAssemblies(); string description = ss.si.description; if (description != null) diff --git a/CodeCompletion/DomSyntaxTreeVisitor.cs b/CodeCompletion/DomSyntaxTreeVisitor.cs index 2e095230a..9c17cc42a 100644 --- a/CodeCompletion/DomSyntaxTreeVisitor.cs +++ b/CodeCompletion/DomSyntaxTreeVisitor.cs @@ -3077,11 +3077,14 @@ namespace CodeCompletion } string aliasName = asStatementsList.as_statements.Find(st => st.real_name.name == importedModuleName).alias.name; - fictiveUnit.AddName(aliasName, importedModuleScope); + + SymScope moduleScope = importedModuleScope.CopyWithNewSymInfo(); + + fictiveUnit.AddName(aliasName, moduleScope); // Поправляем реальное имя, которое портится в InterfaceUnitScope.AddName() EVA - importedModuleScope.si.name = importedModuleName; - importedModuleScope.si.addit_name = aliasName; + moduleScope.si.name = importedModuleName; + moduleScope.si.aliasName = aliasName; } else if (importStatement is from_import_statement fromImport) { @@ -3102,13 +3105,13 @@ namespace CodeCompletion foreach (var asStatement in asStatementsList.as_statements) { - SymScope nameScope = importedModuleScope.FindNameOnlyInType(asStatement.real_name.name); + SymScope nameScope = importedModuleScope.FindNameOnlyInType(asStatement.real_name.name)?.CopyWithNewSymInfo(); if (nameScope != null) { fictiveUnit.AddName(asStatement.alias.name, nameScope); // Поправляем реальное имя, которое портится в InterfaceUnitScope.AddName() EVA nameScope.si.name = asStatement.real_name.name; - nameScope.si.addit_name = asStatement.alias.name; + nameScope.si.aliasName = asStatement.alias.name; } } } diff --git a/CodeCompletion/ExpressionVisitor.cs b/CodeCompletion/ExpressionVisitor.cs index 01bdc6e1e..37de377ed 100644 --- a/CodeCompletion/ExpressionVisitor.cs +++ b/CodeCompletion/ExpressionVisitor.cs @@ -200,6 +200,11 @@ namespace CodeCompletion } } } + else if (returned_scopes[i] is TypeScope) + { + // операция преобразования типа не поддерживается здесь EVA + continue; + } else if (i == 0) return proces; } @@ -1161,7 +1166,8 @@ namespace CodeCompletion method_call_cache[_method_call] = returned_scope; return; } - if (names.Length > 0 && names[0] is TypeScope) + // Срабатывает на операции преобразования типа + if (names.All(name => name is TypeScope)) { returned_scope = new ElementScope(names[0]); method_call_cache[_method_call] = returned_scope; @@ -1208,17 +1214,38 @@ namespace CodeCompletion if (ps == null && names.Length > 0) { returned_scope = null; - foreach (SymScope ss in names) - if (ss is ProcScope) + + // Если есть ProcScope, то приоритет отдаем ему. + // Неверно в случае, когда есть подходящая операция преобразования типа у TypeScope, + // но операция преобразования типа по хорошему должна обрабатываться в select_method EVA + if (names[0] is TypeScope && names.Length > 1) + { + var p = names.FirstOrDefault(s => s is ProcScope); + + if (p != null) + returned_scope = p; + else { - returned_scope = ss; - break; - } - else if (ss is TypeScope) - { - returned_scope = new ElementScope(ss); + returned_scope = new ElementScope(names[0]); return; } + } + else + { + foreach (SymScope ss in names) + { + if (ss is ProcScope) + { + returned_scope = ss; + break; + } + else if (ss is TypeScope) + { + returned_scope = new ElementScope(ss); + return; + } + } + } } if (returned_scope != null) { @@ -1237,7 +1264,8 @@ namespace CodeCompletion else returned_scope = new ElementScope(ps); } - else if (returned_scope is ProcRealization) + // ниже мертый код, поскольку эти типы наследники ProcScope EVA + /*else if (returned_scope is ProcRealization) { if ((returned_scope as ProcRealization).def_proc != null && (returned_scope as ProcRealization).def_proc.return_type != null) returned_scope = new ElementScope((returned_scope as ProcRealization).def_proc.return_type); @@ -1248,7 +1276,7 @@ namespace CodeCompletion if ((returned_scope as CompiledMethodScope).return_type != null) returned_scope = new ElementScope((returned_scope as CompiledMethodScope).return_type); else returned_scope = null; - } + }*/ /*else if (ret_tn is ElementScope && (ret_tn as ElementScope).sc is ProcScope) { ret_tn = new ElementScope(((ret_tn as ElementScope).sc as ProcScope).return_type); diff --git a/CodeCompletion/SymTable.cs b/CodeCompletion/SymTable.cs index 1fa96f8b6..01edb6484 100644 --- a/CodeCompletion/SymTable.cs +++ b/CodeCompletion/SymTable.cs @@ -185,6 +185,16 @@ namespace CodeCompletion members = new List(); } + /// + /// Использует глубокое копирование SymInfo для создания нового экземпляра, остальное копируется поверхностно + /// + public SymScope CopyWithNewSymInfo() + { + var s = (SymScope)MemberwiseClone(); + s.si = new SymInfo(si); + return s; + } + public virtual void Clear() { if (members != null) @@ -363,7 +373,7 @@ namespace CodeCompletion { /*if (ts is ArrayScope && !(ts as ArrayScope).is_dynamic_arr) return new List();*/ - List meths = GetExtensionMethods(ts, name); + /*List meths = GetExtensionMethods(ts, name); List lst = new List(); for (int i = 0; i < meths.Count; i++) @@ -372,12 +382,14 @@ namespace CodeCompletion { lst.Add(meths[i]); } - } - return lst; + }*/ + return GetExtensionMethods(ts, name); } public List GetExtensionMethods(TypeScope ts, string name=null) { + StringComparison comparison = CodeCompletionController.CurrentParser.LanguageInformation.CaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; + if (ts is TypeSynonim) return GetExtensionMethods((ts as TypeSynonim).actType, name); if (ts.original_type != null) @@ -398,7 +410,7 @@ namespace CodeCompletion { foreach (var meth in meths) { - if (!lst.Contains(meth) && (name == null || string.Compare(meth.si.name, name, true) == 0)) + if (!lst.Contains(meth) && (name == null || meth.si.name.Equals(name, comparison))) lst.Add(meth); } } @@ -418,7 +430,7 @@ namespace CodeCompletion var meth_list = extension_methods[t]; foreach (var meth in meth_list) { - if (!lst.Contains(meth) && (name == null || string.Compare(meth.si.name, name, true) == 0)) + if (!lst.Contains(meth) && (name == null || meth.si.name.Equals(name, comparison))) lst.Add(meth); } } @@ -444,7 +456,7 @@ namespace CodeCompletion { foreach (var meth in meths) { - if (!lst.Contains(meth) && (name == null || string.Compare(meth.si.name, name, true) == 0)) + if (!lst.Contains(meth) && (name == null || meth.si.name.Equals(name, comparison))) lst.Add(meth); } } @@ -461,7 +473,7 @@ namespace CodeCompletion var meth_list = extension_methods[t]; foreach (var meth in meth_list) { - if (!lst.Contains(meth) && (name == null || string.Compare(meth.si.name, name, true) == 0)) + if (!lst.Contains(meth) && (name == null || meth.si.name.Equals(name, comparison))) lst.Add(meth); } //break; @@ -481,7 +493,7 @@ namespace CodeCompletion var unit_meth_lst = this.used_units[i].GetExtensionMethods(ts, name); foreach (var meth in unit_meth_lst) { - if (!lst.Contains(meth) && (name == null || string.Compare(meth.si.name, name, true) == 0)) + if (!lst.Contains(meth) && (name == null || meth.si.name.Equals(name, comparison))) lst.Add(meth); } } @@ -972,23 +984,30 @@ namespace CodeCompletion else { List lst = o as List; + + // у generic типов надо убрать префикс + string shortName = System.Text.RegularExpressions.Regex.Replace(name, @"`\d+$", ""); + foreach (SymScope s in lst) { - // Добавил второе условие с addit_name, чтобы работали подсказки для anotherName при использовании from ... import name as anotherName EVA - if (s.si.name == name || s.si.addit_name == name) + // Добавил второе условие с aliasName, чтобы работали подсказки для anotherName при использовании from ... import name as anotherName EVA + if (s.si.name == shortName || s.si.aliasName == shortName) { ss = s; // изменил на возврат первого совпадения для стандартных типов в SPython пока они не в фиктивном модуле, а в SPythonSystem EVA break; } - } } if (ss == null) return null; TypeScope ts = ss as TypeScope; if (CodeCompletionController.CurrentParser.LanguageInformation.CaseSensitive) - if (ss.si.name != name && ss.si.addit_name != name) + { + string shortName = System.Text.RegularExpressions.Regex.Replace(name, @"`\d+$", ""); + + if (ss.si.name != shortName && ss.si.aliasName != shortName) return null; + } if (ss.loc != null && loc != null && check_for_def && cur_line != -1 && cur_col != -1) { if (string.Compare(ss.loc.doc.file_name, loc.doc.file_name, true) == 0 && this != ss) @@ -7038,8 +7057,10 @@ namespace CodeCompletion public override List FindOverloadNames(string name) { + StringComparison comparison = CodeCompletionController.CurrentParser.LanguageInformation.CaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; + List names = new List(); - List sil = PascalABCCompiler.NetHelper.NetHelper.FindNameIncludeProtected(ctn, name); + List sil = PascalABCCompiler.NetHelper.NetHelper.FindNameIncludeProtected(ctn, name, CodeCompletionController.CurrentParser.LanguageInformation.CaseSensitive); //IEnumerable ext_meths = PascalABCCompiler.NetHelper.NetHelper.GetExtensionMethods(ctn); List pascal_ext_meths = this.GetExtensionMethods(name, this); if (sil != null && sil.Count > 1 && sil.FirstOrDefault().sym_info.semantic_node_type == semantic_node_type.basic_property_node) @@ -7049,7 +7070,7 @@ namespace CodeCompletion } if (sil == null && names.Count == 0) { - if (string.Compare(name, StringConstants.default_constructor_name, true) == 0 && this.ctn != typeof(object)) + if (name.Equals(StringConstants.default_constructor_name, comparison) && this.ctn != typeof(object)) sil = PascalABCCompiler.NetHelper.NetHelper.GetConstructor(ctn); if (sil == null) { @@ -7205,12 +7226,14 @@ namespace CodeCompletion public override SymScope FindName(string name) { - List sil = PascalABCCompiler.NetHelper.NetHelper.FindNameIncludeProtected(ctn, name); + StringComparison comparison = CodeCompletionController.CurrentParser.LanguageInformation.CaseSensitive ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; + + List sil = PascalABCCompiler.NetHelper.NetHelper.FindNameIncludeProtected(ctn, name, CodeCompletionController.CurrentParser.LanguageInformation.CaseSensitive); if (!CodeCompletionController.CurrentParser.LanguageInformation.IncludeDotNetEntities) return null; if (sil == null) { - if (string.Compare(name, StringConstants.default_constructor_name, true) == 0) + if (name.Equals(StringConstants.default_constructor_name, comparison)) sil = PascalABCCompiler.NetHelper.NetHelper.GetConstructor(ctn); if (sil == null) { diff --git a/LanguagePlugins/SPython/SPythonLanguageInfo/SPythonLanguageInformation.cs b/LanguagePlugins/SPython/SPythonLanguageInfo/SPythonLanguageInformation.cs index 8fb70ef0c..906237748 100644 --- a/LanguagePlugins/SPython/SPythonLanguageInfo/SPythonLanguageInformation.cs +++ b/LanguagePlugins/SPython/SPythonLanguageInfo/SPythonLanguageInformation.cs @@ -41,7 +41,7 @@ namespace Languages.SPython.Frontend.Data public override bool AddStandardUnitNamesToUserScope => false; - public override bool AddStandardNetNamespacesToUserScope => false; + public override bool AddStandardNetNamespacesToUserScope => true; public override bool UsesFunctionsOverlappingSourceContext => true; @@ -59,7 +59,7 @@ namespace Languages.SPython.Frontend.Data private readonly HashSet exclutions = new HashSet { - "__NewSetCreatorInternal" + // "__NewSetCreatorInternal" }; private readonly Dictionary specialModulesAliases = new Dictionary @@ -1030,24 +1030,22 @@ namespace Languages.SPython.Frontend.Data case ScopeKind.Type: return GetDescriptionForType(scope as ITypeScope); case ScopeKind.CompiledType: return GetDescriptionForCompiledType(scope as ICompiledTypeScope); case ScopeKind.Delegate: return GetDescriptionForDelegate(scope as IProcType); - case ScopeKind.Procedure: return GetDescriptionForProcedure(scope as IProcScope); - case ScopeKind.ElementScope: return GetDescriptionForElementScope(scope as IElementScope); case ScopeKind.TypeSynonim: return GetSynonimDescription(scope as ITypeSynonimScope); - case ScopeKind.Namespace: return GetDescriptionForNamespace(scope as INamespaceScope); - case ScopeKind.CompiledMethod: return GetDescriptionForCompiledMethod(scope as ICompiledMethodScope); - case ScopeKind.Enum: return GetDescriptionForEnum(scope as IEnumScope); case ScopeKind.Array: return GetDescriptionForArray(scope as IArrayScope); - - - - /*case ScopeKind.Set: return GetDescriptionForSet(scope as ISetScope); - + case ScopeKind.Diapason: return GetDescriptionForDiapason(scope as IDiapasonScope); + case ScopeKind.File: return GetDescriptionForFile(scope as IFileScope); + case ScopeKind.Pointer: return GetDescriptionForPointer(scope as IPointerScope); + case ScopeKind.Enum: return GetDescriptionForEnum(scope as IEnumScope); + case ScopeKind.Set: return GetDescriptionForSet(scope as ISetScope); + case ScopeKind.ElementScope: return GetDescriptionForElementScope(scope as IElementScope); case ScopeKind.CompiledField: return GetDescriptionForCompiledField(scope as ICompiledFieldScope); case ScopeKind.CompiledProperty: return GetDescriptionForCompiledProperty(scope as ICompiledPropertyScope); - - - case ScopeKind.CompiledConstructor: return GetDescriptionForCompiledConstructor(scope as ICompiledConstructorScope);*/ - + case ScopeKind.CompiledMethod: return GetDescriptionForCompiledMethod(scope as ICompiledMethodScope); + case ScopeKind.Namespace: return GetDescriptionForNamespace(scope as INamespaceScope); + case ScopeKind.Procedure: return GetDescriptionForProcedure(scope as IProcScope); + case ScopeKind.CompiledEvent: return GetDescriptionForCompiledEvent(scope as ICompiledEventScope); + case ScopeKind.CompiledConstructor: return GetDescriptionForCompiledConstructor(scope as ICompiledConstructorScope); + case ScopeKind.ShortString: return GetDescriptionForShortString(scope as IShortStringScope); } return ""; } @@ -1202,9 +1200,14 @@ namespace Languages.SPython.Frontend.Data return ""; switch (scope.Kind) { + case ScopeKind.Delegate: case ScopeKind.Array: + case ScopeKind.Diapason: + case ScopeKind.File: + case ScopeKind.Pointer: case ScopeKind.Enum: case ScopeKind.Set: + case ScopeKind.ShortString: if (scope is ITypeScope && (scope as ITypeScope).Aliased) return scope.Name; break; @@ -1217,25 +1220,26 @@ namespace Languages.SPython.Frontend.Data switch (scope.Kind) { case ScopeKind.Type: return GetSimpleDescriptionForType(scope as ITypeScope); - case ScopeKind.CompiledType: return GetSimpleDescriptionForCompiledType(scope as ICompiledTypeScope, false); + case ScopeKind.CompiledType: return GetSimpleDescriptionForCompiledType(scope as ICompiledTypeScope); case ScopeKind.Delegate: return GetDescriptionForDelegate(scope as IProcType); - case ScopeKind.Procedure: return GetSimpleDescriptionForProcedure(scope as IProcScope); - case ScopeKind.ElementScope: return GetSimpleDescriptionForElementScope(scope as IElementScope); case ScopeKind.TypeSynonim: return GetSimpleSynonimDescription(scope as ITypeSynonimScope); case ScopeKind.Array: return GetDescriptionForArray(scope as IArrayScope); - case ScopeKind.UnitInterface: return GetDescriptionForModule(scope as IInterfaceUnitScope); - case ScopeKind.Namespace: return GetDescriptionForNamespace(scope as INamespaceScope); - case ScopeKind.CompiledMethod: return GetDescriptionForCompiledMethod(scope as ICompiledMethodScope); + case ScopeKind.Diapason: return GetDescriptionForDiapason(scope as IDiapasonScope); + case ScopeKind.File: return GetDescriptionForFile(scope as IFileScope); + case ScopeKind.Pointer: return GetDescriptionForPointer(scope as IPointerScope); case ScopeKind.Enum: return GetDescriptionForEnum(scope as IEnumScope); - - /* case ScopeKind.Set: return GetDescriptionForSet(scope as ISetScope); - + case ScopeKind.ElementScope: return GetSimpleDescriptionForElementScope(scope as IElementScope); case ScopeKind.CompiledField: return GetDescriptionForCompiledField(scope as ICompiledFieldScope); case ScopeKind.CompiledProperty: return GetDescriptionForCompiledProperty(scope as ICompiledPropertyScope); - - - case ScopeKind.CompiledConstructor: return GetDescriptionForCompiledConstructor(scope as ICompiledConstructorScope);*/ + case ScopeKind.CompiledMethod: return GetDescriptionForCompiledMethod(scope as ICompiledMethodScope); + case ScopeKind.Namespace: return GetDescriptionForNamespace(scope as INamespaceScope); + case ScopeKind.Procedure: return GetSimpleDescriptionForProcedure(scope as IProcScope); + case ScopeKind.CompiledEvent: return GetDescriptionForCompiledEvent(scope as ICompiledEventScope); + case ScopeKind.CompiledConstructor: return GetDescriptionForCompiledConstructor(scope as ICompiledConstructorScope); + case ScopeKind.ShortString: return GetDescriptionForShortString(scope as IShortStringScope); + case ScopeKind.UnitInterface: return GetDescriptionForModule(scope as IInterfaceUnitScope); + //case ScopeKind.Procedure : return GetDescriptionForProcedure(scope as IProcScope); } return ""; } @@ -1250,6 +1254,55 @@ namespace Languages.SPython.Frontend.Data return "unit " + scope.Name; } + private string GetDescriptionForFile(IFileScope scope) + { + StringBuilder sb = new StringBuilder(); + sb.Append("file"); + if (scope.ElementType != null) + { + string s = GetSimpleDescription(scope.ElementType); + if (s.Length > 0 && s[0] == '$') s = s.Substring(1, s.Length - 1); + sb.Append("[" + s + "]"); + } + return sb.ToString(); + } + + private string GetDescriptionForSet(ISetScope scope) + { + StringBuilder sb = new StringBuilder(); + + sb.Append("set["); + + if (scope.ElementType != null) + { + string s = GetSimpleDescription(scope.ElementType); + if (s.Length > 0 && s[0] == '$') s = s.Substring(1, s.Length - 1); + sb.Append(s); + } + + sb.Append("]"); + + return sb.ToString(); + } + + private string GetDescriptionForDiapason(IDiapasonScope scope) + { + return scope.Left.ToString() + ".." + scope.Right.ToString(); + } + + private string GetDescriptionForPointer(IPointerScope scope) + { + string s = ""; + if (scope.ElementType != null) + { + s = "^" + GetSimpleDescription(scope.ElementType); + } + else + s = "pointer"; + + return s; + } + private string GetDescriptionForNamespace(INamespaceScope scope) { return "namespace " + scope.Name; diff --git a/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonLexer.cs b/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonLexer.cs index 07ddec874..ec9c47d0e 100644 --- a/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonLexer.cs +++ b/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonLexer.cs @@ -1,9 +1,9 @@ // // This CSharp output file generated by Gardens Point LEX // Version: 1.1.3.301 -// Machine: DESKTOP-56159VE -// DateTime: 17.06.2025 14:06:30 -// UserName: ???? +// Machine: DESKTOP-V3E9T2U +// DateTime: 03.09.2025 11:37:43 +// UserName: alex // GPLEX input file // GPLEX frame file // diff --git a/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParser.y b/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParser.y index bbc9dda99..21d96bf30 100644 --- a/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParser.y +++ b/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParser.y @@ -66,7 +66,7 @@ %left BINNOT %type ident dotted_ident func_name_ident type_decl_identifier -%type expr proc_func_call const_value variable optional_condition act_param new_expr is_expr variable_as_type +%type extended_expr expr intellisense_dotted_ident proc_func_call const_value variable optional_condition act_param extended_new_expr new_expr is_expr variable_as_type %type act_param_list optional_act_param_list proc_func_decl return_stmt break_stmt continue_stmt global_stmt pass_stmt %type var_stmt assign_stmt if_stmt stmt proc_func_call_stmt while_stmt for_stmt optional_else optional_elif exit_stmt %type expr_list @@ -130,7 +130,7 @@ program ; parts - : tkParseModeExpression expr + : tkParseModeExpression extended_expr { $$ = $2; } | tkParseModeExpression DECLTYPE type_decl_identifier { $$ = $3; } @@ -140,6 +140,28 @@ parts { $$ = $2; } ; +extended_expr + : expr + { + $$ = $1; + } + | extended_new_expr + { + $$ = $1; + } + ; + +extended_new_expr + : new_expr + { + $$ = $1; + } + | NEW type_ref + { + $$ = new new_expr($2, null, false, null, @$); + } + ; + type_decl_identifier : ident { @@ -152,11 +174,11 @@ type_decl_identifier ; variable_as_type - : dotted_ident + : intellisense_dotted_ident { $$ = $1; } - | dotted_ident template_type_params + | intellisense_dotted_ident template_type_params { $$ = new ident_with_templateparams($1 as addressed_value, $2 as template_param_list, @$); } @@ -295,6 +317,17 @@ dotted_ident } ; +// этот нетерминал аналог dotted_identifier из ABCPascal.y +intellisense_dotted_ident + : ident + { + $$ = $1; + } + | intellisense_dotted_ident DOT ident + { + $$ = new dot_node($1 as addressed_value, $3 as addressed_value, @$); + } + ; dotted_ident_list : dotted_ident { @@ -805,14 +838,12 @@ variable // list generator | LBRACKET generator_object RBRACKET { - dot_node dn = new dot_node($2 as addressed_value, (new ident("ToList")) as addressed_value, $2.source_context); - $$ = new method_call(dn as addressed_value, null, $2.source_context); + $$ = new method_call(new ident("list", $2.source_context), new expression_list($2, $2.source_context), $2.source_context); } // set generator | LBRACE generator_object RBRACE { - dot_node dn = new dot_node($2 as addressed_value, (new ident("ToSet")) as addressed_value, $2.source_context); - $$ = new method_call(dn as addressed_value, null, $2.source_context); + $$ = new method_call(new ident("set", $2.source_context), new expression_list($2, $2.source_context), $2.source_context); } // dict generator | LBRACE generator_object_for_dict RBRACE @@ -852,7 +883,7 @@ generator_object_for_dict dict_constant : LBRACE expr_mapping_list RBRACE { - $$ = new method_call(new ident("Dict", @$), $2 as expression_list, @$); + $$ = new method_call(new ident("dict", @$), $2 as expression_list, @$); } | LBRACE RBRACE { @@ -863,7 +894,8 @@ dict_constant set_constant : LBRACE expr_list RBRACE { - $$ = new pascal_set_constant($2 as expression_list, @$); + var acn = new array_const_new($2 as expression_list, '|', @$); + $$ = new method_call(new ident("set", @$), new expression_list(acn, @$), @$); } ; @@ -871,8 +903,7 @@ list_constant : LBRACKET expr_list RBRACKET { var acn = new array_const_new($2 as expression_list, '|', @$); - var dn = new dot_node(acn as addressed_value, (new ident("ToList", @$)) as addressed_value, @$); - $$ = new method_call(dn as addressed_value, null, @$); + $$ = new method_call(new ident("list", @$), new expression_list(acn, @$), @$); } | LBRACKET RBRACKET { diff --git a/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParserYacc.cs b/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParserYacc.cs index fb50a6ecd..273a4127d 100644 --- a/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParserYacc.cs +++ b/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonParserYacc.cs @@ -3,9 +3,9 @@ // (see accompanying GPPGcopyright.rtf) // GPPG version 1.3.6 -// Machine: DESKTOP-56159VE -// DateTime: 17.06.2025 14:06:30 -// UserName: ???? +// Machine: DESKTOP-V3E9T2U +// DateTime: 14.09.2025 15:38:38 +// UserName: alex // Input file // options: no-lines gplex @@ -81,18 +81,19 @@ public partial class SPythonGPPGParser: ShiftReduceParser aliasses; #pragma warning restore 649 - private static Rule[] rules = new Rule[182]; - private static State[] states = new State[337]; + private static Rule[] rules = new Rule[188]; + private static State[] states = new State[345]; private static string[] nonTerms = new string[] { - "ident", "dotted_ident", "func_name_ident", "type_decl_identifier", "expr", - "proc_func_call", "const_value", "variable", "optional_condition", "act_param", - "new_expr", "is_expr", "variable_as_type", "act_param_list", "optional_act_param_list", - "proc_func_decl", "return_stmt", "break_stmt", "continue_stmt", "global_stmt", - "pass_stmt", "var_stmt", "assign_stmt", "if_stmt", "stmt", "proc_func_call_stmt", - "while_stmt", "for_stmt", "optional_else", "optional_elif", "exit_stmt", - "expr_list", "stmt_list", "block", "program", "param_name", "form_param_sect", - "form_param_list", "optional_form_param_list", "dotted_ident_list", "ident_as_ident", - "ident_as_ident_list", "ident_list", "proc_func_header", "type_ref", "simple_type_identifier", + "ident", "dotted_ident", "func_name_ident", "type_decl_identifier", "extended_expr", + "expr", "intellisense_dotted_ident", "proc_func_call", "const_value", "variable", + "optional_condition", "act_param", "extended_new_expr", "new_expr", "is_expr", + "variable_as_type", "act_param_list", "optional_act_param_list", "proc_func_decl", + "return_stmt", "break_stmt", "continue_stmt", "global_stmt", "pass_stmt", + "var_stmt", "assign_stmt", "if_stmt", "stmt", "proc_func_call_stmt", "while_stmt", + "for_stmt", "optional_else", "optional_elif", "exit_stmt", "expr_list", + "stmt_list", "block", "program", "param_name", "form_param_sect", "form_param_list", + "optional_form_param_list", "dotted_ident_list", "ident_as_ident", "ident_as_ident_list", + "ident_list", "proc_func_header", "type_ref", "simple_type_identifier", "template_type", "import_clause", "template_type_params", "template_param_list", "parts", "stmt_or_expression", "expr_mapping_list", "optional_semicolon", "end_of_line", "variable_list", "assign_type", "expr_mapping", "list_constant", @@ -100,525 +101,539 @@ public partial class SPythonGPPGParser: ShiftReduceParser tkParseModeExpression, expr + case 4: // parts -> tkParseModeExpression, extended_expr { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].ex; } break; case 5: // parts -> tkParseModeExpression, DECLTYPE, type_decl_identifier @@ -673,243 +688,273 @@ public partial class SPythonGPPGParser: ShiftReduceParser tkParseModeStatement, stmt_or_expression { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 8: // type_decl_identifier -> ident + case 8: // extended_expr -> expr +{ + CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; + } + break; + case 9: // extended_expr -> extended_new_expr +{ + CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; + } + break; + case 10: // extended_new_expr -> new_expr +{ + CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; + } + break; + case 11: // extended_new_expr -> NEW, type_ref +{ + CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-1].td, null, false, null, CurrentLocationSpan); + } + break; + case 12: // type_decl_identifier -> ident { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; - case 9: // type_decl_identifier -> ident, template_type_params + case 13: // type_decl_identifier -> ident, template_type_params { CurrentSemanticValue.id = new template_type_name(ValueStack[ValueStack.Depth-2].id.name, ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; - case 10: // variable_as_type -> dotted_ident + case 14: // variable_as_type -> intellisense_dotted_ident { - CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; + CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 11: // variable_as_type -> dotted_ident, template_type_params + case 15: // variable_as_type -> intellisense_dotted_ident, template_type_params { - CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-2].id as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); + CurrentSemanticValue.ex = new ident_with_templateparams(ValueStack[ValueStack.Depth-2].ex as addressed_value, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; - case 12: // stmt_or_expression -> expr + case 16: // stmt_or_expression -> expr { CurrentSemanticValue.stn = new expression_as_statement(ValueStack[ValueStack.Depth-1].ex,CurrentLocationSpan);} break; - case 13: // stmt_or_expression -> assign_stmt + case 17: // stmt_or_expression -> assign_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 14: // stmt_or_expression -> var_stmt + case 18: // stmt_or_expression -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 15: // stmt_list -> stmt + case 19: // stmt_list -> stmt { CurrentSemanticValue.stn = new statement_list(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 16: // stmt_list -> stmt_list, end_of_line, stmt + case 20: // stmt_list -> stmt_list, end_of_line, stmt { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as statement_list).Add(ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 17: // stmt -> assign_stmt + case 21: // stmt -> assign_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 18: // stmt -> var_stmt + case 22: // stmt -> var_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 19: // stmt -> if_stmt + case 23: // stmt -> if_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 20: // stmt -> proc_func_call_stmt + case 24: // stmt -> proc_func_call_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 21: // stmt -> while_stmt + case 25: // stmt -> while_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 22: // stmt -> for_stmt + case 26: // stmt -> for_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 23: // stmt -> return_stmt + case 27: // stmt -> return_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 24: // stmt -> break_stmt + case 28: // stmt -> break_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 25: // stmt -> continue_stmt + case 29: // stmt -> continue_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 26: // stmt -> global_stmt + case 30: // stmt -> global_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 27: // stmt -> pass_stmt + case 31: // stmt -> pass_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 28: // stmt -> exit_stmt + case 32: // stmt -> exit_stmt { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 29: // stmt -> proc_func_decl + case 33: // stmt -> proc_func_decl { CurrentSemanticValue.stn = new declarations_as_statement(new declarations(ValueStack[ValueStack.Depth-1].stn as procedure_definition, CurrentLocationSpan), CurrentLocationSpan); } break; - case 30: // stmt -> import_clause + case 34: // stmt -> import_clause { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 31: // import_clause -> IMPORT, ident_as_ident_list + case 35: // import_clause -> IMPORT, ident_as_ident_list { CurrentSemanticValue.stn = new import_statement(ValueStack[ValueStack.Depth-1].stn as as_statement_list, CurrentLocationSpan); } break; - case 32: // import_clause -> FROM, ident, IMPORT, ident_as_ident_list + case 36: // import_clause -> FROM, ident, IMPORT, ident_as_ident_list { CurrentSemanticValue.stn = new from_import_statement(ValueStack[ValueStack.Depth-3].id as ident, false, ValueStack[ValueStack.Depth-1].stn as as_statement_list, CurrentLocationSpan); } break; - case 33: // import_clause -> FROM, ident, IMPORT, STAR + case 37: // import_clause -> FROM, ident, IMPORT, STAR { CurrentSemanticValue.stn = new from_import_statement(ValueStack[ValueStack.Depth-3].id as ident, true, null, CurrentLocationSpan); } break; - case 34: // pass_stmt -> PASS + case 38: // pass_stmt -> PASS { CurrentSemanticValue.stn = new empty_statement(); } break; - case 35: // exit_stmt -> EXIT, LPAR, optional_act_param_list, RPAR + case 39: // exit_stmt -> EXIT, LPAR, optional_act_param_list, RPAR { parserTools.AddErrorFromResource("UNSUPPORTED_CONSTRUCTION_{0}", CurrentLocationSpan, "exit"); } break; - case 36: // global_stmt -> GLOBAL, dotted_ident_list + case 40: // global_stmt -> GLOBAL, dotted_ident_list { CurrentSemanticValue.stn = new global_statement(ValueStack[ValueStack.Depth-1].stn as ident_list, CurrentLocationSpan); } break; - case 37: // ident -> ID + case 41: // ident -> ID { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; - case 38: // dotted_ident -> ident + case 42: // dotted_ident -> ident { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; - case 39: // dotted_ident -> dotted_ident, DOT, ident + case 43: // dotted_ident -> dotted_ident, DOT, ident { CurrentSemanticValue.id = new ident(ValueStack[ValueStack.Depth-3].id.name + "." + ValueStack[ValueStack.Depth-1].id.name, CurrentLocationSpan); } break; - case 40: // dotted_ident_list -> dotted_ident + case 44: // intellisense_dotted_ident -> ident +{ + CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; + } + break; + case 45: // intellisense_dotted_ident -> intellisense_dotted_ident, DOT, ident +{ + CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); + } + break; + case 46: // dotted_ident_list -> dotted_ident { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 41: // dotted_ident_list -> dotted_ident_list, COMMA, dotted_ident + case 47: // dotted_ident_list -> dotted_ident_list, COMMA, dotted_ident { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 42: // ident_as_ident -> ident, AS, ident + case 48: // ident_as_ident -> ident, AS, ident { CurrentSemanticValue.stn = new as_statement(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 43: // ident_as_ident -> ident + case 49: // ident_as_ident -> ident { CurrentSemanticValue.stn = new as_statement(ValueStack[ValueStack.Depth-1].id, ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 44: // ident_as_ident_list -> ident_as_ident + case 50: // ident_as_ident_list -> ident_as_ident { CurrentSemanticValue.stn = new as_statement_list(ValueStack[ValueStack.Depth-1].stn as as_statement, CurrentLocationSpan); } break; - case 45: // ident_as_ident_list -> ident_as_ident_list, COMMA, ident_as_ident + case 51: // ident_as_ident_list -> ident_as_ident_list, COMMA, ident_as_ident { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as as_statement_list).Add(ValueStack[ValueStack.Depth-1].stn as as_statement, CurrentLocationSpan); } break; - case 46: // expr_mapping -> expr, COLON, expr + case 52: // expr_mapping -> expr, COLON, expr { expression_list el = new expression_list(new List { ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex }, CurrentLocationSpan); CurrentSemanticValue.ex = new tuple_node(el, CurrentLocationSpan); } break; - case 47: // expr_mapping_list -> expr_mapping + case 53: // expr_mapping_list -> expr_mapping { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 48: // expr_mapping_list -> expr_mapping_list, COMMA, expr_mapping + case 54: // expr_mapping_list -> expr_mapping_list, COMMA, expr_mapping { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 49: // var_stmt -> variable, COLON, type_ref + case 55: // var_stmt -> variable, COLON, type_ref { var vds = new var_def_statement(new ident_list(ValueStack[ValueStack.Depth-3].ex as ident, LocationStack[LocationStack.Depth-3]), ValueStack[ValueStack.Depth-1].td, null, definition_attribute.None, false, CurrentLocationSpan); CurrentSemanticValue.stn = new var_statement(vds, CurrentLocationSpan); } break; - case 50: // var_stmt -> variable, COLON, type_ref, ASSIGN, expr + case 56: // var_stmt -> variable, COLON, type_ref, ASSIGN, expr { var vds = new var_def_statement(new ident_list(ValueStack[ValueStack.Depth-5].ex as ident, LocationStack[LocationStack.Depth-5]), ValueStack[ValueStack.Depth-3].td, ValueStack[ValueStack.Depth-1].ex, definition_attribute.None, false, CurrentLocationSpan); CurrentSemanticValue.stn = new var_statement(vds, CurrentLocationSpan); } break; - case 51: // assign_right_part -> expr + case 57: // assign_right_part -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 52: // assign_right_part -> turbo_tuple_expr + case 58: // assign_right_part -> turbo_tuple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 53: // assign_stmt -> variable, ASSIGN, assign_right_part + case 59: // assign_stmt -> variable, ASSIGN, assign_right_part { if (!(ValueStack[ValueStack.Depth-3].ex is addressed_value)) parserTools.AddErrorFromResource("LEFT_SIDE_CANNOT_BE_ASSIGNED_TO", CurrentLocationSpan); CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 54: // assign_stmt -> variable, assign_type, assign_right_part + case 60: // assign_stmt -> variable, assign_type, assign_right_part { if (!(ValueStack[ValueStack.Depth-3].ex is addressed_value)) parserTools.AddErrorFromResource("LEFT_SIDE_CANNOT_BE_ASSIGNED_TO", CurrentLocationSpan); CurrentSemanticValue.stn = new assign(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 55: // assign_stmt -> LPAR, variable, COMMA, variable_list, RPAR, ASSIGN, + case 61: // assign_stmt -> LPAR, variable, COMMA, variable_list, RPAR, ASSIGN, // assign_right_part { // if False: @@ -920,7 +965,7 @@ public partial class SPythonGPPGParser: ShiftReduceParser variable, COMMA, variable_list, ASSIGN, assign_right_part + case 62: // assign_stmt -> variable, COMMA, variable_list, ASSIGN, assign_right_part { // if False: if (ValueStack[ValueStack.Depth-2].op.type != Operators.Assignment) @@ -930,220 +975,220 @@ public partial class SPythonGPPGParser: ShiftReduceParser PLUSEQUAL + case 63: // assign_type -> PLUSEQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 58: // assign_type -> MINUSEQUAL + case 64: // assign_type -> MINUSEQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 59: // assign_type -> STAREQUAL + case 65: // assign_type -> STAREQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 60: // assign_type -> DIVEQUAL + case 66: // assign_type -> DIVEQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 61: // assign_type -> BINXOREQUAL + case 67: // assign_type -> BINXOREQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 62: // assign_type -> SHLEQUAL + case 68: // assign_type -> SHLEQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 63: // assign_type -> SHREQUAL + case 69: // assign_type -> SHREQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 64: // assign_type -> BINANDEQUAL + case 70: // assign_type -> BINANDEQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 65: // assign_type -> BINOREQUAL + case 71: // assign_type -> BINOREQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 66: // assign_type -> INTDIVISIONEQUAL + case 72: // assign_type -> INTDIVISIONEQUAL { CurrentSemanticValue.op = ValueStack[ValueStack.Depth-1].op; } break; - case 67: // expr -> expr, IF, expr, ELSE, expr + case 73: // expr -> expr, IF, expr, ELSE, expr { CurrentSemanticValue.ex = new question_colon_expression(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-5].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 68: // expr -> expr, PLUS, expr + case 74: // expr -> expr, PLUS, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 69: // expr -> expr, STAR, expr + case 75: // expr -> expr, STAR, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 70: // expr -> expr, DIVIDE, expr + case 76: // expr -> expr, DIVIDE, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 71: // expr -> expr, MINUS, expr + case 77: // expr -> expr, MINUS, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 72: // expr -> expr, LESS, expr + case 78: // expr -> expr, LESS, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 73: // expr -> expr, GREATER, expr + case 79: // expr -> expr, GREATER, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 74: // expr -> expr, LESSEQUAL, expr + case 80: // expr -> expr, LESSEQUAL, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 75: // expr -> expr, GREATEREQUAL, expr + case 81: // expr -> expr, GREATEREQUAL, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 76: // expr -> expr, EQUAL, expr + case 82: // expr -> expr, EQUAL, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 77: // expr -> expr, NOTEQUAL, expr + case 83: // expr -> expr, NOTEQUAL, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 78: // expr -> expr, AND, expr + case 84: // expr -> expr, AND, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 79: // expr -> expr, OR, expr + case 85: // expr -> expr, OR, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 80: // expr -> expr, SLASHSLASH, expr + case 86: // expr -> expr, SLASHSLASH, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 81: // expr -> expr, PERCENTAGE, expr + case 87: // expr -> expr, PERCENTAGE, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 82: // expr -> expr, SHL, expr + case 88: // expr -> expr, SHL, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 83: // expr -> expr, SHR, expr + case 89: // expr -> expr, SHR, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 84: // expr -> expr, BINAND, expr + case 90: // expr -> expr, BINAND, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 85: // expr -> expr, BINOR, expr + case 91: // expr -> expr, BINOR, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 86: // expr -> expr, BINXOR, expr + case 92: // expr -> expr, BINXOR, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 87: // expr -> expr, STARSTAR, expr + case 93: // expr -> expr, STARSTAR, expr { addressed_value method_name = new ident("!pow", CurrentLocationSpan); expression_list el = new expression_list(new List { ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex }, CurrentLocationSpan); CurrentSemanticValue.ex = new method_call(method_name, el, CurrentLocationSpan); } break; - case 88: // expr -> expr, IN, expr + case 94: // expr -> expr, IN, expr { CurrentSemanticValue.ex = new bin_expr(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan); } break; - case 89: // expr -> expr, NOT, IN, expr + case 95: // expr -> expr, NOT, IN, expr { // $$ = new bin_expr($1, $4, Operators.NotIn, @$); CurrentSemanticValue.ex = new un_expr(new bin_expr(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-1].ex, Operators.In, CurrentLocationSpan),Operators.LogicalNOT,CurrentLocationSpan); } break; - case 90: // expr -> MINUS, expr + case 96: // expr -> MINUS, expr { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 91: // expr -> NOT, expr + case 97: // expr -> NOT, expr { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 92: // expr -> BINNOT, expr + case 98: // expr -> BINNOT, expr { CurrentSemanticValue.ex = new un_expr(ValueStack[ValueStack.Depth-1].ex, ValueStack[ValueStack.Depth-2].op.type, CurrentLocationSpan); } break; - case 93: // expr -> variable + case 99: // expr -> variable { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 94: // expr -> const_value + case 100: // expr -> const_value { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 95: // expr -> new_expr + case 101: // expr -> new_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 96: // expr -> is_expr + case 102: // expr -> is_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 97: // expr -> tuple_expr + case 103: // expr -> tuple_expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 98: // expr -> LPAR, expr, RPAR + case 104: // expr -> LPAR, expr, RPAR { CurrentSemanticValue.ex = new bracket_expr(ValueStack[ValueStack.Depth-2].ex, CurrentLocationSpan); } break; - case 99: // tuple_expr -> LPAR, expr, COMMA, expr_list, RPAR + case 105: // tuple_expr -> LPAR, expr, COMMA, expr_list, RPAR { // inherited from PABC if ((ValueStack[ValueStack.Depth-2].stn as expression_list).Count > 6) @@ -1152,7 +1197,7 @@ public partial class SPythonGPPGParser: ShiftReduceParser expr, COMMA, expr_list + case 106: // turbo_tuple_expr -> expr, COMMA, expr_list { // inherited from PABC if ((ValueStack[ValueStack.Depth-1].stn as expression_list).Count > 6) @@ -1161,97 +1206,97 @@ public partial class SPythonGPPGParser: ShiftReduceParser variable, IS, type_ref + case 107: // is_expr -> variable, IS, type_ref { CurrentSemanticValue.ex = parserTools.NewAsIsExpr(ValueStack[ValueStack.Depth-3].ex, op_typecast.is_op, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; - case 102: // new_expr -> NEW, type_ref, LPAR, optional_act_param_list, RPAR + case 108: // new_expr -> NEW, type_ref, LPAR, optional_act_param_list, RPAR { CurrentSemanticValue.ex = new new_expr(ValueStack[ValueStack.Depth-4].td, ValueStack[ValueStack.Depth-2].stn as expression_list, false, null, CurrentLocationSpan); } break; - case 103: // const_value -> INTNUM + case 109: // const_value -> INTNUM { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 104: // const_value -> REALNUM + case 110: // const_value -> REALNUM { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 105: // const_value -> TRUE + case 111: // const_value -> TRUE { CurrentSemanticValue.ex = new ident("true", CurrentLocationSpan); } break; - case 106: // const_value -> FALSE + case 112: // const_value -> FALSE { CurrentSemanticValue.ex = new ident("false", CurrentLocationSpan); } break; - case 107: // const_value -> STRINGNUM + case 113: // const_value -> STRINGNUM { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].stn as literal; } break; - case 108: // const_value -> FSTRINGNUM + case 114: // const_value -> FSTRINGNUM { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 109: // const_value -> BIGINT + case 115: // const_value -> BIGINT { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 110: // expr_list -> expr + case 116: // expr_list -> expr { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 111: // expr_list -> expr_list, COMMA, expr + case 117: // expr_list -> expr_list, COMMA, expr { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 112: // if_stmt -> IF, expr, COLON, block, optional_elif + case 118: // if_stmt -> IF, expr, COLON, block, optional_elif { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].stn as statement, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 113: // optional_elif -> ELIF, expr, COLON, block, optional_elif + case 119: // optional_elif -> ELIF, expr, COLON, block, optional_elif { CurrentSemanticValue.stn = new if_node(ValueStack[ValueStack.Depth-4].ex, ValueStack[ValueStack.Depth-2].stn as statement, ValueStack[ValueStack.Depth-1].stn as statement, CurrentLocationSpan); } break; - case 114: // optional_elif -> optional_else + case 120: // optional_elif -> optional_else { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 115: // optional_else -> ELSE, COLON, block + case 121: // optional_else -> ELSE, COLON, block { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 116: // optional_else -> /* empty */ + case 122: // optional_else -> /* empty */ { CurrentSemanticValue.stn = null; } break; - case 117: // while_stmt -> WHILE, expr, COLON, block + case 123: // while_stmt -> WHILE, expr, COLON, block { CurrentSemanticValue.stn = new while_node(ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, WhileCycleType.While, CurrentLocationSpan); } break; - case 118: // for_stmt -> FOR, ident, IN, expr, COLON, block + case 124: // for_stmt -> FOR, ident, IN, expr, COLON, block { CurrentSemanticValue.stn = new foreach_stmt(ValueStack[ValueStack.Depth-5].id, new no_type_foreach(), ValueStack[ValueStack.Depth-3].ex, ValueStack[ValueStack.Depth-1].stn as statement, null, CurrentLocationSpan); } break; - case 119: // for_stmt -> FOR, ident, COMMA, ident_list, IN, expr, COLON, block + case 125: // for_stmt -> FOR, ident, COMMA, ident_list, IN, expr, COLON, block { (ValueStack[ValueStack.Depth-5].stn as ident_list).AddFirst(ValueStack[ValueStack.Depth-7].id); var id = parserTools.NewId("#fe",LocationStack[LocationStack.Depth-5]); @@ -1263,166 +1308,164 @@ public partial class SPythonGPPGParser: ShiftReduceParser ident + case 126: // ident_list -> ident { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 121: // ident_list -> ident_list, COMMA, ident + case 127: // ident_list -> ident_list, COMMA, ident { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as ident_list).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 122: // func_name_ident -> ident + case 128: // func_name_ident -> ident { CurrentSemanticValue.id = ValueStack[ValueStack.Depth-1].id; } break; - case 123: // return_stmt -> RETURN, assign_right_part + case 129: // return_stmt -> RETURN, assign_right_part { CurrentSemanticValue.stn = new return_statement(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 124: // return_stmt -> RETURN + case 130: // return_stmt -> RETURN { CurrentSemanticValue.stn = new return_statement(null, CurrentLocationSpan); } break; - case 125: // break_stmt -> BREAK + case 131: // break_stmt -> BREAK { CurrentSemanticValue.stn = new procedure_call(new ident("break", CurrentLocationSpan), true, CurrentLocationSpan); } break; - case 126: // continue_stmt -> CONTINUE + case 132: // continue_stmt -> CONTINUE { CurrentSemanticValue.stn = new procedure_call(new ident("continue", CurrentLocationSpan), true, CurrentLocationSpan); } break; - case 127: // proc_func_call_stmt -> proc_func_call + case 133: // proc_func_call_stmt -> proc_func_call { CurrentSemanticValue.stn = new procedure_call(ValueStack[ValueStack.Depth-1].ex as addressed_value, ValueStack[ValueStack.Depth-1].ex is ident, CurrentLocationSpan); } break; - case 128: // variable -> ident + case 134: // variable -> ident { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].id; } break; - case 129: // variable -> proc_func_call + case 135: // variable -> proc_func_call { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 130: // variable -> variable, DOT, ident + case 136: // variable -> variable, DOT, ident { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; - case 131: // variable -> const_value, DOT, ident + case 137: // variable -> const_value, DOT, ident { CurrentSemanticValue.ex = new dot_node(ValueStack[ValueStack.Depth-3].ex as addressed_value, ValueStack[ValueStack.Depth-1].id as addressed_value, CurrentLocationSpan); } break; - case 132: // variable -> list_constant + case 138: // variable -> list_constant { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 133: // variable -> set_constant + case 139: // variable -> set_constant { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 134: // variable -> dict_constant + case 140: // variable -> dict_constant { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 135: // variable -> variable, LBRACKET, expr, RBRACKET + case 141: // variable -> variable, LBRACKET, expr, RBRACKET { var el = new expression_list(ValueStack[ValueStack.Depth-2].ex as expression, CurrentLocationSpan); CurrentSemanticValue.ex = new indexer(ValueStack[ValueStack.Depth-4].ex as addressed_value, el, CurrentLocationSpan); } break; - case 136: // variable -> LBRACKET, generator_object, RBRACKET + case 142: // variable -> LBRACKET, generator_object, RBRACKET { - dot_node dn = new dot_node(ValueStack[ValueStack.Depth-2].ex as addressed_value, (new ident("ToList")) as addressed_value, ValueStack[ValueStack.Depth-2].ex.source_context); - CurrentSemanticValue.ex = new method_call(dn as addressed_value, null, ValueStack[ValueStack.Depth-2].ex.source_context); + CurrentSemanticValue.ex = new method_call(new ident("list", ValueStack[ValueStack.Depth-2].ex.source_context), new expression_list(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-2].ex.source_context), ValueStack[ValueStack.Depth-2].ex.source_context); } break; - case 137: // variable -> LBRACE, generator_object, RBRACE + case 143: // variable -> LBRACE, generator_object, RBRACE { - dot_node dn = new dot_node(ValueStack[ValueStack.Depth-2].ex as addressed_value, (new ident("ToSet")) as addressed_value, ValueStack[ValueStack.Depth-2].ex.source_context); - CurrentSemanticValue.ex = new method_call(dn as addressed_value, null, ValueStack[ValueStack.Depth-2].ex.source_context); + CurrentSemanticValue.ex = new method_call(new ident("set", ValueStack[ValueStack.Depth-2].ex.source_context), new expression_list(ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-2].ex.source_context), ValueStack[ValueStack.Depth-2].ex.source_context); } break; - case 138: // variable -> LBRACE, generator_object_for_dict, RBRACE + case 144: // variable -> LBRACE, generator_object_for_dict, RBRACE { dot_node dn = new dot_node(ValueStack[ValueStack.Depth-2].ex as addressed_value, (new ident("ToDictionary")) as addressed_value, ValueStack[ValueStack.Depth-2].ex.source_context); CurrentSemanticValue.ex = new method_call(dn as addressed_value, null, ValueStack[ValueStack.Depth-2].ex.source_context); } break; - case 139: // variable_list -> variable + case 145: // variable_list -> variable { CurrentSemanticValue.ob = new addressed_value_list(ValueStack[ValueStack.Depth-1].ex as addressed_value,LocationStack[LocationStack.Depth-1]); } break; - case 140: // variable_list -> variable_list, COMMA, variable + case 146: // variable_list -> variable_list, COMMA, variable { (ValueStack[ValueStack.Depth-3].ob as addressed_value_list).Add(ValueStack[ValueStack.Depth-1].ex as addressed_value); (ValueStack[ValueStack.Depth-3].ob as syntax_tree_node).source_context = LexLocation.MergeAll(LocationStack[LocationStack.Depth-3],LocationStack[LocationStack.Depth-2],LocationStack[LocationStack.Depth-1]); CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-3].ob; } break; - case 141: // generator_object -> expr, FOR, ident, IN, expr, optional_condition + case 147: // generator_object -> expr, FOR, ident, IN, expr, optional_condition { CurrentSemanticValue.ex = new generator_object(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 142: // generator_object_for_dict -> expr_mapping, FOR, ident, IN, expr, + case 148: // generator_object_for_dict -> expr_mapping, FOR, ident, IN, expr, // optional_condition { CurrentSemanticValue.ex = new generator_object(ValueStack[ValueStack.Depth-6].ex, ValueStack[ValueStack.Depth-4].id, ValueStack[ValueStack.Depth-2].ex, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 143: // dict_constant -> LBRACE, expr_mapping_list, RBRACE + case 149: // dict_constant -> LBRACE, expr_mapping_list, RBRACE { - CurrentSemanticValue.ex = new method_call(new ident("Dict", CurrentLocationSpan), ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); + CurrentSemanticValue.ex = new method_call(new ident("dict", CurrentLocationSpan), ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; - case 144: // dict_constant -> LBRACE, RBRACE + case 150: // dict_constant -> LBRACE, RBRACE { CurrentSemanticValue.ex = new method_call(new ident("!empty_dict", CurrentLocationSpan), null, CurrentLocationSpan); } break; - case 145: // set_constant -> LBRACE, expr_list, RBRACE -{ - CurrentSemanticValue.ex = new pascal_set_constant(ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); - } - break; - case 146: // list_constant -> LBRACKET, expr_list, RBRACKET + case 151: // set_constant -> LBRACE, expr_list, RBRACE { var acn = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '|', CurrentLocationSpan); - var dn = new dot_node(acn as addressed_value, (new ident("ToList", CurrentLocationSpan)) as addressed_value, CurrentLocationSpan); - CurrentSemanticValue.ex = new method_call(dn as addressed_value, null, CurrentLocationSpan); + CurrentSemanticValue.ex = new method_call(new ident("set", CurrentLocationSpan), new expression_list(acn, CurrentLocationSpan), CurrentLocationSpan); } break; - case 147: // list_constant -> LBRACKET, RBRACKET + case 152: // list_constant -> LBRACKET, expr_list, RBRACKET +{ + var acn = new array_const_new(ValueStack[ValueStack.Depth-2].stn as expression_list, '|', CurrentLocationSpan); + CurrentSemanticValue.ex = new method_call(new ident("list", CurrentLocationSpan), new expression_list(acn, CurrentLocationSpan), CurrentLocationSpan); + } + break; + case 153: // list_constant -> LBRACKET, RBRACKET { CurrentSemanticValue.ex = new method_call(new ident("!empty_list", CurrentLocationSpan), null, CurrentLocationSpan); } break; - case 148: // optional_condition -> /* empty */ + case 154: // optional_condition -> /* empty */ { CurrentSemanticValue.ex = null; } break; - case 149: // optional_condition -> IF, expr + case 155: // optional_condition -> IF, expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 150: // block -> INDENT, stmt_list, end_of_line, UNINDENT + case 156: // block -> INDENT, stmt_list, end_of_line, UNINDENT { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-3].stn as statement_list; (CurrentSemanticValue.stn as statement_list).left_logical_bracket = ValueStack[ValueStack.Depth-4].ti; @@ -1430,161 +1473,161 @@ public partial class SPythonGPPGParser: ShiftReduceParser proc_func_header, block + case 157: // proc_func_decl -> proc_func_header, block { CurrentSemanticValue.stn = new procedure_definition(ValueStack[ValueStack.Depth-2].td as procedure_header, new block(null, ValueStack[ValueStack.Depth-1].stn as statement_list, LocationStack[LocationStack.Depth-1]), CurrentLocationSpan); } break; - case 152: // proc_func_header -> DEF, func_name_ident, LPAR, optional_form_param_list, RPAR, + case 158: // proc_func_header -> DEF, func_name_ident, LPAR, optional_form_param_list, RPAR, // COLON { CurrentSemanticValue.td = new procedure_header(ValueStack[ValueStack.Depth-3].stn as formal_parameters, new procedure_attributes_list(new List()), new method_name(null,null, ValueStack[ValueStack.Depth-5].id, null, LocationStack[LocationStack.Depth-5]), null, CurrentLocationSpan); } break; - case 153: // proc_func_header -> DEF, func_name_ident, LPAR, optional_form_param_list, RPAR, + case 159: // proc_func_header -> DEF, func_name_ident, LPAR, optional_form_param_list, RPAR, // ARROW, type_ref, COLON { CurrentSemanticValue.td = new function_header(ValueStack[ValueStack.Depth-5].stn as formal_parameters, new procedure_attributes_list(new List()), new method_name(null,null, ValueStack[ValueStack.Depth-7].id, null, LocationStack[LocationStack.Depth-7]), null, ValueStack[ValueStack.Depth-2].td as type_definition, CurrentLocationSpan); } break; - case 154: // proc_func_call -> variable, LPAR, optional_act_param_list, RPAR + case 160: // proc_func_call -> variable, LPAR, optional_act_param_list, RPAR { CurrentSemanticValue.ex = new method_call(ValueStack[ValueStack.Depth-4].ex as addressed_value, ValueStack[ValueStack.Depth-2].stn as expression_list, CurrentLocationSpan); } break; - case 155: // simple_type_identifier -> ident + case 161: // simple_type_identifier -> ident { CurrentSemanticValue.td = new named_type_reference(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 156: // simple_type_identifier -> simple_type_identifier, DOT, ident + case 162: // simple_type_identifier -> simple_type_identifier, DOT, ident { CurrentSemanticValue.td = (ValueStack[ValueStack.Depth-3].td as named_type_reference).Add(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 157: // type_ref -> simple_type_identifier + case 163: // type_ref -> simple_type_identifier { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td as named_type_reference; } break; - case 158: // type_ref -> template_type + case 164: // type_ref -> template_type { CurrentSemanticValue.td = ValueStack[ValueStack.Depth-1].td; } break; - case 159: // template_type -> simple_type_identifier, template_type_params + case 165: // template_type -> simple_type_identifier, template_type_params { CurrentSemanticValue.td = new template_type_reference(ValueStack[ValueStack.Depth-2].td as named_type_reference, ValueStack[ValueStack.Depth-1].stn as template_param_list, CurrentLocationSpan); } break; - case 160: // template_type_params -> LBRACKET, template_param_list, RBRACKET + case 166: // template_type_params -> LBRACKET, template_param_list, RBRACKET { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-2].stn; CurrentSemanticValue.stn.source_context = CurrentLocationSpan; } break; - case 161: // template_param_list -> type_ref + case 167: // template_param_list -> type_ref { CurrentSemanticValue.stn = new template_param_list(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; - case 162: // template_param_list -> template_param_list, COMMA, type_ref + case 168: // template_param_list -> template_param_list, COMMA, type_ref { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as template_param_list).Add(ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); } break; - case 163: // param_name -> ident + case 169: // param_name -> ident { CurrentSemanticValue.stn = new ident_list(ValueStack[ValueStack.Depth-1].id, CurrentLocationSpan); } break; - case 164: // form_param_sect -> param_name, COLON, type_ref + case 170: // form_param_sect -> param_name, COLON, type_ref { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.none, null, CurrentLocationSpan); } break; - case 165: // form_param_sect -> STAR, param_name, COLON, type_ref + case 171: // form_param_sect -> STAR, param_name, COLON, type_ref { var at = new array_type(null, ValueStack[ValueStack.Depth-1].td, CurrentLocationSpan); CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, at, parametr_kind.params_parametr, null, CurrentLocationSpan); } break; - case 166: // form_param_sect -> STARSTAR, param_name, COLON, type_ref + case 172: // form_param_sect -> STARSTAR, param_name, COLON, type_ref { CurrentSemanticValue.stn = new typed_parameters(ValueStack[ValueStack.Depth-3].stn as ident_list, ValueStack[ValueStack.Depth-1].td, parametr_kind.kwargs_parameter, null, CurrentLocationSpan); } break; - case 167: // form_param_list -> form_param_sect + case 173: // form_param_list -> form_param_sect { CurrentSemanticValue.stn = new formal_parameters(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; - case 168: // form_param_list -> form_param_list, COMMA, form_param_sect + case 174: // form_param_list -> form_param_list, COMMA, form_param_sect { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as formal_parameters).Add(ValueStack[ValueStack.Depth-1].stn as typed_parameters, CurrentLocationSpan); } break; - case 169: // optional_form_param_list -> form_param_list + case 175: // optional_form_param_list -> form_param_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 170: // optional_form_param_list -> /* empty */ + case 176: // optional_form_param_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; - case 171: // act_param -> expr + case 177: // act_param -> expr { CurrentSemanticValue.ex = ValueStack[ValueStack.Depth-1].ex; } break; - case 172: // act_param -> ident, ASSIGN, expr + case 178: // act_param -> ident, ASSIGN, expr { CurrentSemanticValue.ex = new name_assign_expr(ValueStack[ValueStack.Depth-3].id, ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 173: // act_param_list -> act_param + case 179: // act_param_list -> act_param { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 174: // act_param_list -> act_param_list, COMMA, act_param + case 180: // act_param_list -> act_param_list, COMMA, act_param { CurrentSemanticValue.stn = (ValueStack[ValueStack.Depth-3].stn as expression_list).Add(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 175: // optional_act_param_list -> act_param_list + case 181: // optional_act_param_list -> act_param_list { CurrentSemanticValue.stn = ValueStack[ValueStack.Depth-1].stn; } break; - case 176: // optional_act_param_list -> generator_object + case 182: // optional_act_param_list -> generator_object { CurrentSemanticValue.stn = new expression_list(ValueStack[ValueStack.Depth-1].ex, CurrentLocationSpan); } break; - case 177: // optional_act_param_list -> /* empty */ + case 183: // optional_act_param_list -> /* empty */ { CurrentSemanticValue.stn = null; } break; - case 178: // end_of_line -> END_OF_LINE + case 184: // end_of_line -> END_OF_LINE { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; - case 179: // end_of_line -> SEMICOLON + case 185: // end_of_line -> SEMICOLON { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; - case 180: // optional_semicolon -> SEMICOLON + case 186: // optional_semicolon -> SEMICOLON { CurrentSemanticValue.ob = ValueStack[ValueStack.Depth-1].ti; } break; - case 181: // optional_semicolon -> /* empty */ + case 187: // optional_semicolon -> /* empty */ { CurrentSemanticValue.ob = null; } diff --git a/LanguagePlugins/SPython/SemanticAnalyzers/SPythonSyntaxTreeVisitor/spython_syntax_tree_visitor.cs b/LanguagePlugins/SPython/SemanticAnalyzers/SPythonSyntaxTreeVisitor/spython_syntax_tree_visitor.cs index 9c98f8b44..c8e6428c7 100644 --- a/LanguagePlugins/SPython/SemanticAnalyzers/SPythonSyntaxTreeVisitor/spython_syntax_tree_visitor.cs +++ b/LanguagePlugins/SPython/SemanticAnalyzers/SPythonSyntaxTreeVisitor/spython_syntax_tree_visitor.cs @@ -118,6 +118,8 @@ namespace SPythonSyntaxTreeVisitor base.AddError(new OperatorCanNotBeAppliedToThisTypes("%", _op_err.left, _op_err.right, _op_err.loc), shouldReturn); else if (_op_err.operator_name == "div") base.AddError(new OperatorCanNotBeAppliedToThisTypes("//", _op_err.left, _op_err.right, _op_err.loc), shouldReturn); + else + break; return; case FunctionExpectedProcedureMeet _proc_meet: base.AddError(new SPythonSemanticError(_proc_meet.loc, "SPYTHONSEMANTIC_FUNCTION_{0}_NO_RETURN", _proc_meet.function.name)); @@ -133,83 +135,6 @@ namespace SPythonSyntaxTreeVisitor } - private Dictionary> containersNamesMapping = new Dictionary> - { - {"List", - new Dictionary { - { "append", "Add" }, - { "clear", "Clear" }, - { "insert", "Insert" }, - { "remove", "Remove" }, - { "pop", "pop" }, - { "index", "IndexOf" }, - { "count", "!count" }, - { "sort", "Sort" }, - { "reverse", "Reverse" }, - { "copy", "ToList" }, - { "Select", "Select" }, - { "Where", "Where" }, - } }, - - {"NewSet", - new Dictionary { - { "add", "add" }, - { "remove", "remove" }, - { "copy", "copy" }, - { "Select", "Select" }, - { "Where", "Where" }, - } }, - - {"Dictionary", - new Dictionary { - { "keys", "get_keys" }, - { "values", "get_values" }, - { "copy", "copy" }, - { "Select", "Select" }, - { "Where", "Where" }, - } } - }; - - - HashSet visited_method_calls = new HashSet(); - - public override void visit(method_call _method_call) - { - if (visited_method_calls.Contains(_method_call)) - { - base.visit(_method_call); - return; - } - visited_method_calls.Add(_method_call); - if (_method_call.dereferencing_value is dot_node dn && dn.right is ident id) - { - try - { - expression_node left = convert_strong(dn.left); - //dn.left = new semantic_addr_value(left); - if (left?.type != null) - foreach (string tName in containersNamesMapping.Keys) - { - if (left.type.name.StartsWith(tName)) - { - if (!containersNamesMapping[tName].ContainsKey(id.name)) - { - AddError(left.location, "SPYTHONSEMANTIC_TYPE_{0}_HAS_NO_{1}_METHOD", ConvertTypeNameToSPythonTypeName(left.type), id.name); - } - else - { - id.name = containersNamesMapping[tName][id.name]; - } - } - } - } - catch (ExpectedAnotherKindOfObject e) - { - } - } - base.visit(_method_call); - } - public override void visit(assign _assign) { @@ -221,17 +146,26 @@ namespace SPythonSyntaxTreeVisitor expression_node to = convert_strong(_assign.to); SourceContext sc = _assign.source_context; - if (to.type.name.StartsWith("NewSet")) + if (to.type.is_generic_type_instance && to.type.name.StartsWith("set")) { if (be.operation_type == Operators.LogicalAND) { - var replace = new assign(new semantic_addr_value(to), be.right, Operators.AssignmentMultiplication, sc); + var replace = new method_call(new dot_node(new semantic_addr_value(to, to.location), new ident("!andEqual")), + new expression_list(be.right), sc); base.visit(replace); return; } if (be.operation_type == Operators.LogicalOR) { - var replace = new assign(new semantic_addr_value(to), be.right, Operators.AssignmentAddition, sc); + var replace = new method_call(new dot_node(new semantic_addr_value(to, to.location), new ident("!orEqual")), + new expression_list(be.right), sc); + base.visit(replace); + return; + } + if (be.operation_type == Operators.BitwiseXOR) + { + var replace = new method_call(new dot_node(new semantic_addr_value(to, to.location), new ident("!xorEqual")), + new expression_list(be.right), sc); base.visit(replace); return; } @@ -251,18 +185,6 @@ namespace SPythonSyntaxTreeVisitor switch (_bin_expr.operation_type) { - case Operators.LogicalOR: - if (left.type.name.StartsWith("NewSet") && left.type.name == right.type.name) - { - new_bin_expr.operation_type = Operators.Plus; - } - break; - case Operators.LogicalAND: - if (left.type.name.StartsWith("NewSet") && left.type.name == right.type.name) - { - new_bin_expr.operation_type = Operators.Multiplication; - } - break; /*case Operators.Plus: if (left.type == right.type && left.type.name == "boolean") { diff --git a/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/NameCorrectVisitor.cs b/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/NameCorrectVisitor.cs index 80e2301ab..d0f240eca 100644 --- a/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/NameCorrectVisitor.cs +++ b/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/NameCorrectVisitor.cs @@ -79,7 +79,7 @@ namespace Languages.SPython.Frontend.Converters ident id = _named_type_reference.names[0]; string name = id.name; - if (name == "int" || name == "str" || name == "bool" || name == "float" || name == "set" || name == "list" || name == "dict") + if (name == "int" || name == "str" || name == "bool" || name == "float") { return; } @@ -102,6 +102,29 @@ namespace Languages.SPython.Frontend.Converters } } + public override void visit(template_type_reference _template_type_reference) + { + named_type_reference _named_type_reference = _template_type_reference.name; + string name = _named_type_reference.names[0].name; + + string fullName = name + $"`{_template_type_reference.params_list.Count}"; + + NameKind nameKind = symbolTable[fullName]; + + switch (nameKind) + { + + case NameKind.ImportedNameAlias: + _named_type_reference.names.Insert(0, new ident(symbolTable.AliasToModuleName(fullName), _named_type_reference.names[0].source_context)); + _named_type_reference.names[1].name = symbolTable.AliasToRealName(fullName); + break; + + case NameKind.Unknown: + throw new SPythonSyntaxVisitorError("UNKNOWN_NAME_{0}", + _named_type_reference.names[0].source_context, name); + } + } + public override void visit(ident _ident) { SourceContext sc = _ident.source_context; diff --git a/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TreeNodesRearrangementVisitor.cs b/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TreeNodesRearrangementVisitor.cs index df84f358e..6244ec537 100644 --- a/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TreeNodesRearrangementVisitor.cs +++ b/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TreeNodesRearrangementVisitor.cs @@ -53,6 +53,7 @@ namespace Languages.SPython.Frontend.Converters private void BuildMainFunction(statement_list _statement_list) { statement_list mainBody = _statement_list.TypedClone(); + mainBody.source_context = mainBody.Parent.source_context; // source context для MAIN охватывает весь файл procedure_header _procedure_header = new procedure_header(mainFunctionName); block _block = new block(null, mainBody, mainBody.source_context); //block _block = new block(null, new statement_list(), _statement_list.source_context); diff --git a/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TypeCorrectVisitor.cs b/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TypeCorrectVisitor.cs index 2ffa24cf0..02f7c6a7d 100644 --- a/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TypeCorrectVisitor.cs +++ b/LanguagePlugins/SPython/SyntaxTreeConverters/SPythonStandardTreeConverter/TypeCorrectVisitor.cs @@ -25,6 +25,7 @@ namespace Languages.SPython.Frontend.Converters } ttr.name.names[index].name += cnt; } + base.visit(ttr); } @@ -69,19 +70,6 @@ namespace Languages.SPython.Frontend.Converters id.source_context, id.name, "bigint"); } } - - switch (id.name) - { - case "list": - id.name = "!list"; - break; - case "dict": - id.name = "!dict"; - break; - case "set": - id.name = "!set"; - break; - } } } } diff --git a/ParserTools/ParserTools/BaseLanguageInformation.cs b/ParserTools/ParserTools/BaseLanguageInformation.cs index 468493826..a584e61fb 100644 --- a/ParserTools/ParserTools/BaseLanguageInformation.cs +++ b/ParserTools/ParserTools/BaseLanguageInformation.cs @@ -430,6 +430,16 @@ namespace PascalABCCompiler.Parsers return sb.ToString(); } + protected string GetDescriptionForCompiledEvent(ICompiledEventScope scope) + { + return (scope.IsStatic ? "static " : "") + "event " + GetShortTypeName(scope.CompiledEvent.DeclaringType, true) + "." + scope.CompiledEvent.Name + ": " + GetSimpleDescription(scope.Type) + ";"; + } + + protected string GetDescriptionForShortString(IShortStringScope scope) + { + return "string" + "[" + scope.Length + "]"; + } + public abstract string GetKeyword(SymbolKind kind); public KeywordKind GetKeywordKind(string name) @@ -758,6 +768,102 @@ namespace PascalABCCompiler.Parsers return sb.ToString(); } + protected string GetDescriptionForCompiledField(ICompiledFieldScope scope) + { + StringBuilder sb = new StringBuilder(); + if (!scope.CompiledField.IsLiteral) + if (scope.CompiledField.IsStatic && !scope.IsGlobal) sb.Append("static "); + else sb.Append("var "); + string inst_type = null; + if (scope.GenericArgs != null) + { + inst_type = get_type_instance(scope.CompiledField.FieldType, scope.GenericArgs); + } + if (!scope.CompiledField.IsLiteral) + sb.Append(GetShortTypeName(scope.CompiledField.DeclaringType) + "." + scope.CompiledField.Name + ": " + (inst_type != null ? inst_type : GetSimpleDescription(scope.Type))); + else + sb.Append("const " + GetShortTypeName(scope.CompiledField.DeclaringType) + "." + scope.CompiledField.Name + ": " + GetSimpleDescription(scope.Type)); + //if (scope.CompiledField.IsStatic) sb.Append("; static"); + if (scope.IsReadOnly) sb.Append("; readonly"); + sb.Append(';'); + return sb.ToString(); + } + + protected string GetDescriptionForCompiledProperty(ICompiledPropertyScope scope) + { + StringBuilder sb = new StringBuilder(); + MethodInfo acc = scope.CompiledProperty.GetGetMethod(); + string inst_type = null; + if (acc != null) + if (acc.IsStatic) sb.Append("static "); + if (scope.Type is ICompiledTypeScope && scope.GenericArgs != null) + { + Type t = (scope.Type as ICompiledTypeScope).CompiledType; + inst_type = get_type_instance(t, scope.GenericArgs); + } + sb.Append("property " + GetShortTypeName(scope.CompiledProperty.DeclaringType) + "." + scope.CompiledProperty.Name + get_indexer_for_prop(scope)); + if (inst_type == null) + { + if (scope.Type is ICompiledTypeScope) + sb.Append(": " + GetFullTypeName((scope.Type as ICompiledTypeScope).CompiledType, false)); + else + sb.Append(": " + GetSimpleDescription(scope.Type)); + } + else + sb.Append(": " + inst_type); + if (acc != null) + //if (acc.IsStatic) sb.Append("; static"); + if (acc.IsVirtual) sb.Append("; "); + else if (acc.IsAbstract) sb.Append("; abstract"); + if (scope.IsReadOnly) sb.Append("; readonly"); + sb.Append(';'); + return sb.ToString(); + } + + protected string GetDescriptionForCompiledConstructor(ICompiledConstructorScope scope) + { + StringBuilder sb = new StringBuilder(); + sb.Append("constructor "); + sb.Append(GetShortTypeName(scope.CompiledConstructor.DeclaringType)); + //sb.Append("."); + //sb.Append("Create"); + sb.Append('('); + ParameterInfo[] pis = scope.CompiledConstructor.GetParameters(); + for (int i = 0; i < pis.Length; i++) + { + if (pis[i].ParameterType.IsByRef) + sb.Append("var "); + else if (IsParams(pis[i])) + sb.Append("params "); + sb.Append(pis[i].Name); + sb.Append(": "); + if (!pis[i].ParameterType.IsByRef) + sb.Append(GetFullTypeName(pis[i].ParameterType)); + else sb.Append(GetFullTypeName(pis[i].ParameterType.GetElementType())); + if (i < pis.Length - 1) + sb.Append(ParameterDelimiter + " "); + } + sb.Append(')'); + sb.Append(';'); + return sb.ToString(); + } + + private string get_indexer_for_prop(ICompiledPropertyScope scope) + { + ITypeScope[] indexers = scope.Indexers; + if (indexers.Length == 0) return ""; + StringBuilder sb = new StringBuilder(); + sb.Append('['); + for (int i = 0; i < indexers.Length; i++) + { + sb.Append(GetSimpleDescriptionWithoutNamespace(indexers[i])); + if (i < indexers.Length - 1) + sb.Append(','); + } + sb.Append(']'); + return sb.ToString(); + } + protected string prepare_member_name(string s) { if (IsKeyword(s)) diff --git a/ParserTools/ParserTools/ILanguageInformation.cs b/ParserTools/ParserTools/ILanguageInformation.cs index b6d93c081..aab1422f5 100644 --- a/ParserTools/ParserTools/ILanguageInformation.cs +++ b/ParserTools/ParserTools/ILanguageInformation.cs @@ -185,6 +185,12 @@ namespace PascalABCCompiler.Parsers get; } + /// + /// Добавить пространства имен .NET, подключаемые по умолчанию. Полной поддержки false нет (см. комментарий) + /// + // Если поставить false, то CorrectTreeWithSemantic из DomSyntaxTreeVisitor будет поправлять типы неправильно + // из-за того, что полное имя типа integer, например, System.Int32, + // а имя System не будет добавлено в Scope и значит выведется Int32 без преобразования в кастомное название типа для языка bool AddStandardNetNamespacesToUserScope { get; @@ -379,6 +385,7 @@ namespace PascalABCCompiler.Parsers { public string name; public string addit_name; + public string aliasName; public string description; public SymbolKind kind; public bool IsUnitNamespace; @@ -398,6 +405,7 @@ namespace PascalABCCompiler.Parsers { this.name = si.name; this.addit_name = si.addit_name; + this.aliasName = si.aliasName; this.description = si.description; this.kind = si.kind; this.IsUnitNamespace = si.IsUnitNamespace; diff --git a/PascalABCLanguageInfo/PascalABCLanguageInformation.cs b/PascalABCLanguageInfo/PascalABCLanguageInformation.cs index ef18a761b..97c05256d 100644 --- a/PascalABCLanguageInfo/PascalABCLanguageInformation.cs +++ b/PascalABCLanguageInfo/PascalABCLanguageInformation.cs @@ -188,7 +188,6 @@ namespace Languages.Pascal.Frontend.Data case ScopeKind.CompiledEvent: return GetDescriptionForCompiledEvent(scope as ICompiledEventScope); case ScopeKind.CompiledConstructor: return GetDescriptionForCompiledConstructor(scope as ICompiledConstructorScope); case ScopeKind.ShortString: return GetDescriptionForShortString(scope as IShortStringScope); - //case ScopeKind.Procedure : return GetDescriptionForProcedure(scope as IProcScope); } return ""; } @@ -986,12 +985,12 @@ namespace Languages.Pascal.Frontend.Data return s; } - protected string GetDescriptionForDiapason(IDiapasonScope scope) + private string GetDescriptionForDiapason(IDiapasonScope scope) { return scope.Left.ToString() + ".." + scope.Right.ToString(); } - protected string GetDescriptionForFile(IFileScope scope) + private string GetDescriptionForFile(IFileScope scope) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("file"); @@ -1004,29 +1003,20 @@ namespace Languages.Pascal.Frontend.Data return sb.ToString(); } - private Stack typs = new Stack(); - - protected string GetDescriptionForPointer(IPointerScope scope) + private string GetDescriptionForPointer(IPointerScope scope) { string s = ""; if (scope.ElementType != null) { - if (!typs.Contains(scope)) - { - typs.Push(scope); - s = "^" + GetSimpleDescription(scope.ElementType); - } - else - s = ""; + s = "^" + GetSimpleDescription(scope.ElementType); } else s = "pointer"; - if (typs.Count > 0) - typs.Pop(); + return s; } - protected string GetDescriptionForSet(ISetScope scope) + private string GetDescriptionForSet(ISetScope scope) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("set of "); @@ -1063,43 +1053,6 @@ namespace Languages.Pascal.Frontend.Data return sb.ToString(); } - protected string GetDescriptionForCompiledField(ICompiledFieldScope scope) - { - System.Text.StringBuilder sb = new System.Text.StringBuilder(); - if (!scope.CompiledField.IsLiteral) - if (scope.CompiledField.IsStatic && !scope.IsGlobal) sb.Append("static "); - else sb.Append("var "); - string inst_type = null; - if (scope.GenericArgs != null) - { - inst_type = get_type_instance(scope.CompiledField.FieldType, scope.GenericArgs); - } - if (!scope.CompiledField.IsLiteral) - sb.Append(GetShortTypeName(scope.CompiledField.DeclaringType) + "." + scope.CompiledField.Name + ": " + (inst_type != null ? inst_type : GetSimpleDescription(scope.Type))); - else - sb.Append("const " + GetShortTypeName(scope.CompiledField.DeclaringType) + "." + scope.CompiledField.Name + ": " + GetSimpleDescription(scope.Type)); - //if (scope.CompiledField.IsStatic) sb.Append("; static"); - if (scope.IsReadOnly) sb.Append("; readonly"); - sb.Append(';'); - return sb.ToString(); - } - - private string get_indexer_for_prop(ICompiledPropertyScope scope) - { - ITypeScope[] indexers = scope.Indexers; - if (indexers.Length == 0) return ""; - StringBuilder sb = new StringBuilder(); - sb.Append('['); - for (int i = 0; i < indexers.Length; i++) - { - sb.Append(GetSimpleDescriptionWithoutNamespace(indexers[i])); - if (i < indexers.Length - 1) - sb.Append(','); - } - sb.Append(']'); - return sb.ToString(); - } - public string GetDescriptionForCompiledProperty(PropertyInfo pi) { StringBuilder sb = new StringBuilder(); @@ -1132,37 +1085,6 @@ namespace Languages.Pascal.Frontend.Data return sb.ToString(); } - protected string GetDescriptionForCompiledProperty(ICompiledPropertyScope scope) - { - System.Text.StringBuilder sb = new System.Text.StringBuilder(); - MethodInfo acc = scope.CompiledProperty.GetGetMethod(); - string inst_type = null; - if (acc != null) - if (acc.IsStatic) sb.Append("static "); - if (scope.Type is ICompiledTypeScope && scope.GenericArgs != null) - { - Type t = (scope.Type as ICompiledTypeScope).CompiledType; - inst_type = get_type_instance(t, scope.GenericArgs); - } - sb.Append("property " + GetShortTypeName(scope.CompiledProperty.DeclaringType) + "." + scope.CompiledProperty.Name + get_indexer_for_prop(scope)); - if (inst_type == null) - { - if (scope.Type is ICompiledTypeScope) - sb.Append(": " + GetFullTypeName((scope.Type as ICompiledTypeScope).CompiledType, false)); - else - sb.Append(": " + GetSimpleDescription(scope.Type)); - } - else - sb.Append(": " + inst_type); - if (acc != null) - //if (acc.IsStatic) sb.Append("; static"); - if (acc.IsVirtual) sb.Append("; "); - else if (acc.IsAbstract) sb.Append("; abstract"); - if (scope.IsReadOnly) sb.Append("; readonly"); - sb.Append(';'); - return sb.ToString(); - } - private string GetDescriptionForNamespace(INamespaceScope scope) { return "namespace " + scope.Name; @@ -1180,11 +1102,6 @@ namespace Languages.Pascal.Frontend.Data return sb.ToString(); } - protected string GetDescriptionForCompiledEvent(ICompiledEventScope scope) - { - return (scope.IsStatic ? "static " : "") + "event " + GetShortTypeName(scope.CompiledEvent.DeclaringType, true) + "." + scope.CompiledEvent.Name + ": " + GetSimpleDescription(scope.Type) + ";"; - } - protected string GetDescriptionForCompiledConstructor(ConstructorInfo ci) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); @@ -1218,39 +1135,6 @@ namespace Languages.Pascal.Frontend.Data return sb.ToString(); } - protected string GetDescriptionForCompiledConstructor(ICompiledConstructorScope scope) - { - System.Text.StringBuilder sb = new System.Text.StringBuilder(); - sb.Append("constructor "); - sb.Append(GetShortTypeName(scope.CompiledConstructor.DeclaringType)); - //sb.Append("."); - //sb.Append("Create"); - sb.Append('('); - ParameterInfo[] pis = scope.CompiledConstructor.GetParameters(); - for (int i = 0; i < pis.Length; i++) - { - if (pis[i].ParameterType.IsByRef) - sb.Append("var "); - else if (IsParams(pis[i])) - sb.Append("params "); - sb.Append(pis[i].Name); - sb.Append(": "); - if (!pis[i].ParameterType.IsByRef) - sb.Append(GetFullTypeName(pis[i].ParameterType)); - else sb.Append(GetFullTypeName(pis[i].ParameterType.GetElementType())); - if (i < pis.Length - 1) - sb.Append("; "); - } - sb.Append(')'); - sb.Append(';'); - return sb.ToString(); - } - - protected string GetDescriptionForShortString(IShortStringScope scope) - { - return "string" + "[" + scope.Length + "]"; - } - public override string GetSynonimDescription(ITypeScope scope) { return "type " + scope.Name + GetGenericString(scope.TemplateArguments) + " = " + scope.Description; diff --git a/TreeConverter/NetWrappers/NetHelper.cs b/TreeConverter/NetWrappers/NetHelper.cs index 992718281..918440635 100644 --- a/TreeConverter/NetWrappers/NetHelper.cs +++ b/TreeConverter/NetWrappers/NetHelper.cs @@ -1494,7 +1494,7 @@ namespace PascalABCCompiler.NetHelper return FindType(name) != null; } - public static List FindNameIncludeProtected(Type t, string name) + public static List FindNameIncludeProtected(Type t, string name, bool caseSensitiveSearch) { if (name == null) return null; if (name == StringConstants.assign_name) return null; @@ -1506,7 +1506,20 @@ namespace PascalABCCompiler.NetHelper } List sil=null; List mis = GetMembers(t,name); - + + // вообще, фильтровать лучше в GetMembers EVA + mis = new List(mis); + if (caseSensitiveSearch) + { + for (int i = 0; i < mis.Count;) + { + if (mis[i].Name != name) + mis.RemoveAt(i); + else + i++; + } + } + foreach (MemberInfo mi in mis) { if (mi.DeclaringType != null && PABCSystemType != null && mi.DeclaringType.Assembly == PABCSystemType.Assembly && !UsePABCRtl) @@ -1543,7 +1556,7 @@ namespace PascalABCCompiler.NetHelper Type nested_t = null; foreach (Type nt in t.GetNestedTypes()) { - if (string.Compare(nt.Name, name, true) == 0) + if (nt.Name.Equals(name, caseSensitiveSearch ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase)) { nested_t = nt; break; diff --git a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs index 065d3c3f9..721afb957 100644 --- a/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs +++ b/VisualPascalABCNET/IB/CodeCompletion/CodeCompletionProvider.cs @@ -1,15 +1,14 @@ // Copyright (c) Ivan Bondarev, Stanislav Mikhalkovich (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using System; -using System.Collections; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; using ICSharpCode.TextEditor; using ICSharpCode.TextEditor.Gui.CompletionWindow; -using PascalABCCompiler.Parsers; using Languages.Facade; +using PascalABCCompiler.Parsers; +using System; +using System.Collections.Generic; using System.Linq; +using System.Text; +using System.Windows.Forms; namespace VisualPascalABC { @@ -393,7 +392,7 @@ namespace VisualPascalABC { if (symInfo == null || symInfo.not_include) continue; - string nameToShow = symInfo.addit_name != null ? symInfo.addit_name : symInfo.name; + string nameToShow = GetDisplayedName(symInfo); if (symbolsAdded.Contains(nameToShow + symInfo.kind)) continue; @@ -563,8 +562,8 @@ namespace VisualPascalABC if (symInfo == null || symInfo.not_include) continue; - string nameToShow = symInfo.addit_name != null ? symInfo.addit_name : symInfo.name; - + string nameToShow = GetDisplayedName(symInfo); + if (symbolsAdded.Contains(nameToShow + symInfo.kind)) continue; @@ -808,5 +807,16 @@ namespace VisualPascalABC //GC.Collect(); return data; } + + private string GetDisplayedName(SymInfo symInfo) + { + if (symInfo.aliasName != null) + return symInfo.aliasName; + + if (symInfo.addit_name != null) + return symInfo.addit_name; + + return symInfo.name; + } } } diff --git a/VisualPascalABCNETLinux/IB/CodeCompletion/CodeCompletionProvider.cs b/VisualPascalABCNETLinux/IB/CodeCompletion/CodeCompletionProvider.cs index cf5dbbe26..cfd57fee1 100644 --- a/VisualPascalABCNETLinux/IB/CodeCompletion/CodeCompletionProvider.cs +++ b/VisualPascalABCNETLinux/IB/CodeCompletion/CodeCompletionProvider.cs @@ -393,21 +393,23 @@ namespace VisualPascalABC { if (symInfo == null || symInfo.not_include) continue; - if (symbolsAdded.Contains(symInfo.name)) + string nameToShow = GetDisplayedName(symInfo); + + if (symbolsAdded.Contains(nameToShow + symInfo.kind)) continue; - UserDefaultCompletionData completionData = new UserDefaultCompletionData(symInfo.name, symInfo.description, ImagesProvider.GetPictureNum(symInfo), false); + UserDefaultCompletionData completionData = new UserDefaultCompletionData(nameToShow, symInfo.description, ImagesProvider.GetPictureNum(symInfo), false); StringComparison stringComparison = languageCaseSensitive ? StringComparison.CurrentCulture : StringComparison.CurrentCultureIgnoreCase; // если мы выбирали что-то раньше из списка подсказок, то считаем это элементом по умолчанию - if (!stop && lastUsedItem != null && string.Equals(symInfo.name, lastUsedItem.Text, stringComparison)) + if (!stop && lastUsedItem != null && string.Equals(nameToShow, lastUsedItem.Text, stringComparison)) { defaultCompletionElement = completionData; stop = true; } // иначе формируем список подходящих подсказок - "кандидатов" для элемента по умолчанию - else if (!stop && lastUsedItem == null && symInfo.name.StartsWith(charTyped.ToString(), stringComparison)) + else if (!stop && lastUsedItem == null && nameToShow.StartsWith(charTyped.ToString(), stringComparison)) { //defaultCompletionElement = ddd; candidatesForDefault.Add(completionData); @@ -418,7 +420,7 @@ namespace VisualPascalABC resultList.Add(completionData); - symbolsAdded.Add(symInfo.name); + symbolsAdded.Add(nameToShow + symInfo.kind); } if (candidatesForDefault.Count > 0) @@ -561,19 +563,18 @@ namespace VisualPascalABC if (symInfo == null || symInfo.not_include) continue; - if (symbolsAdded.Contains(symInfo.name + symInfo.kind)) + string nameToShow = GetDisplayedName(symInfo); + + if (symbolsAdded.Contains(nameToShow + symInfo.kind)) continue; - UserDefaultCompletionData completionData = new UserDefaultCompletionData( - symInfo.addit_name != null ? symInfo.addit_name : symInfo.name, - symInfo.description, ImagesProvider.GetPictureNum(symInfo), false - ); + UserDefaultCompletionData completionData = new UserDefaultCompletionData(nameToShow, symInfo.description, ImagesProvider.GetPictureNum(symInfo), false); disp.Add(symInfo, completionData); resultList.Add(completionData); - symbolsAdded.Add(symInfo.name + symInfo.kind); + symbolsAdded.Add(nameToShow + symInfo.kind); /*if (VisualPABCSingleton.MainForm.UserOptions.EnableSmartIntellisense && mi.name != null && mi.name != "" && data == null) { @@ -581,7 +582,7 @@ namespace VisualPascalABC if (data != null && data.Text == ddd.Text) data = ddd; }*/ - if (lastUsedMember != null && lastUsedMember == symInfo.name || selectedSymInfo != null && symInfo == selectedSymInfo) + if (lastUsedMember != null && lastUsedMember == nameToShow || selectedSymInfo != null && symInfo == selectedSymInfo) { defaultCompletionElement = completionData; } @@ -807,5 +808,16 @@ namespace VisualPascalABC //GC.Collect(); return data; } + + private string GetDisplayedName(SymInfo symInfo) + { + if (symInfo.aliasName != null) + return symInfo.aliasName; + + if (symInfo.addit_name != null) + return symInfo.addit_name; + + return symInfo.name; + } } } diff --git a/bin/Lib/SPythonHidden.pas b/bin/Lib/SPythonHidden.pas index c1a5cafa4..cde9322e1 100644 --- a/bin/Lib/SPythonHidden.pas +++ b/bin/Lib/SPythonHidden.pas @@ -3,7 +3,7 @@ unit SPythonHidden; interface -// uses PABCSystem; +uses SPythonSystem; function !Floor(x : real) : integer; @@ -14,8 +14,36 @@ function !FloorMod(x: real; y: real): real; type !UnknownType = class end; +// TODO: Перенести в SPythonSystemPys следующие методы +function list(sq: sequence of T): SPythonSystem.list; + +function list(d : dict) : SPythonSystem.list; + +function &set(sq: sequence of T): &set; + +function &set(): empty_set; + +function dict(params pairs: array of (TKey, TVal)): dict; + +function dict(seqOfPairs: IEnumerable>) : dict; + implementation +function list(sq: sequence of T): SPythonSystem.list := new SPythonSystem.list(sq); + +function list(d : dict) : SPythonSystem.list := new SPythonSystem.list(d.keys()); + +function &set(sq: sequence of T): &set; +begin + Result := new &set(sq); +end; + +function &set(): empty_set := new empty_set; + +function dict(params pairs: array of (TKey, TVal)): dict := new dict(pairs); + +function dict(seqOfPairs: sequence of (TKey, TVal)): dict := new dict(seqOfPairs); + function !Floor(x : real) : integer := PABCSystem.Floor(x); function !FloorDiv(x: real; y: real): integer := PABCSystem.Floor(x / y); diff --git a/bin/Lib/SPythonSystem.pas b/bin/Lib/SPythonSystem.pas index c47ee1f55..6c0a15b2b 100644 --- a/bin/Lib/SPythonSystem.pas +++ b/bin/Lib/SPythonSystem.pas @@ -17,6 +17,7 @@ function input(): string; function input(s: string): string; +///- type kwargs_gen = class public !kwargs: Dictionary := new Dictionary(); @@ -50,10 +51,6 @@ function filter(cond: T -> boolean; s: sequence of T): sequence of T; function sorted(s: sequence of T; reverse: boolean := false): sequence of T; function sorted(s: sequence of T; key: T -> T1; reverse: boolean := false): sequence of T; -function __NewSetCreatorInternal(params a: array of T): NewSet; - -procedure clear(var st: set of T); - function int(val: string): integer; function int(val: real): integer; @@ -102,18 +99,395 @@ function abs(x: real): real; // function floor(x: real): real; +type list = class(IEnumerable) + private + wrappee : PABCSystem.List; + + constructor Create(l : PABCSystem.List) := wrappee := l; + + function GetItem(ind : integer) : T := wrappee[ind]; + + procedure SetItem(ind : integer; newItem : T) := wrappee[ind] := newItem; + + public + + static function operator implicit(l : PABCSystem.List) : list := new list(l); + + constructor Create() := wrappee := new PABCSystem.List(); + + constructor Create(capacity : integer) := wrappee := new PABCSystem.List(capacity); + + constructor Create(collection : sequence of T) := wrappee := new PABCSystem.List(collection); + + property ByIndex[ind : integer] : T read GetItem write SetItem; default; + + ///-- + property !count : integer read wrappee.Count; + + procedure append(item : T) := wrappee.Add(item); + + procedure extend(seq : sequence of T) := wrappee.AddRange(seq); + + procedure clear() := wrappee.Clear(); + + procedure insert(index : integer; item : T) := wrappee.Insert(index, item); + + procedure remove(item : T); + begin + if not wrappee.Remove(item) then + raise new System.ArgumentException($'ValueError: {item} is not in list'); + end; + + function pop() : T; + begin + var lastIndex := wrappee.Count - 1; + Result := wrappee[lastIndex]; + wrappee.RemoveAt(lastIndex); + end; + + function pop(index : integer) : T; + begin + Result := wrappee[index]; + wrappee.RemoveAt(index); + end; + + function index(item : T) : integer := index(item, 0, wrappee.Count); + + function index(item : T; start : integer) : integer := index(item, start, wrappee.Count); + + function index(item : T; start : integer; &end : integer) : integer; + begin + Result := wrappee.IndexOf(item, start, &end - start); + if Result = -1 then + raise new System.ArgumentException($'ValueError: {item} is not in list'); + end; + + function count(item : T) : integer; + begin + var comparer := System.Collections.Generic.EqualityComparer&.Default; + + Result := 0; + for var i := 0 to wrappee.Count - 1 do + begin + if comparer.Equals(wrappee[i], item) then + Result += 1; + end; + end; + + procedure sort() := wrappee.Sort(); + + procedure sort(reverse : boolean) := wrappee.OrderByDescending(x -> x); + + procedure sort(key : T -> TKey) := wrappee.OrderBy(key); + + procedure sort(key : T -> TKey; reverse : boolean) := wrappee.OrderByDescending(key); + + procedure reverse() := wrappee.Reverse(); + + function copy() : list := new list(wrappee.ToList()); + + function GetEnumerator() : IEnumerator := wrappee.GetEnumerator(); + + function System.Collections.IEnumerable.GetEnumerator() : System.Collections.IEnumerator := GetEnumerator(); + end; + +type &set = record(IEnumerable) + private + wrappee : PABCSystem.HashSet; + + constructor Create(h : PABCSystem.HashSet) := wrappee := h; + + public + + constructor Create() := wrappee := new PABCSystem.HashSet(); + + constructor Create(collection : sequence of T) := wrappee := new PABCSystem.HashSet(collection); + + constructor Create(collection : sequence of T; comparer : PABCSystem.IEqualityComparer) := wrappee := new PABCSystem.HashSet(collection, comparer); + + constructor Create(comparer : PABCSystem.IEqualityComparer) := wrappee := new PABCSystem.HashSet(comparer); + + ///-- + property !count : integer read wrappee.Count; + + procedure add(elem : T) := wrappee.Add(elem); + + procedure remove(elem : T); + begin + if not wrappee.Remove(elem) then + raise new System.Collections.Generic.KeyNotFoundException('KeyError: ' + elem.ToString()); + end; + + procedure discard(elem : T) := wrappee.Remove(elem); + + function pop() : T; + begin + if wrappee.Count = 0 then + raise new System.Collections.Generic.KeyNotFoundException('KeyError: ''pop from an empty set'''); + + Result := wrappee.First(); + wrappee.Remove(Result); + end; + + procedure clear() := wrappee.Clear(); + + function copy() : &set := new &set(wrappee.ToHashSet()); + + static function operator in(elem: T; Self: &set): boolean; + begin + Result := Self.wrappee.Contains(elem); + end; + + private + function setOperation1(op : (HashSet, sequence of T) -> (); params others : array of sequence of T) : &set; + begin + Result.wrappee := wrappee.ToHashSet(); + foreach var seq in others do + op(Result.wrappee, seq); + end; + + procedure setOperation2(op : (HashSet, sequence of T) -> (); params others : array of sequence of T); + begin + foreach var seq in others do + op(wrappee, seq); + end; + + public + function intersection(params others : array of sequence of T) : &set := setOperation1((h1, h2) -> h1.IntersectWith(h2), others); + + function union(params others : array of sequence of T) : &set := setOperation1((h1, h2) -> h1.UnionWith(h2), others); + + function difference(params others : array of sequence of T) : &set := setOperation1((h1, h2) -> h1.ExceptWith(h2), others); + + function symmetric_difference(params others : array of sequence of T) : &set := setOperation1((h1, h2) -> h1.SymmetricExceptWith(h2), others); + + procedure update(params others : array of sequence of T) := setOperation2((h1, h2) -> h1.UnionWith(h2), others); + + procedure update(other : sequence of T) := wrappee.UnionWith(other); + + procedure intersection_update(params others : array of sequence of T) := setOperation2((h1, h2) -> h1.IntersectWith(h2), others); + + procedure intersection_update(other : sequence of T) := wrappee.IntersectWith(other); + + procedure difference_update(params others : array of sequence of T) := setOperation2((h1, h2) -> h1.ExceptWith(h2), others); + + procedure difference_update(other : sequence of T) := wrappee.ExceptWith(other); + + procedure symmetric_difference_update(params others : array of sequence of T) := setOperation2((h1, h2) -> h1.SymmetricExceptWith(h2), others); + + procedure symmetric_difference_update(other : sequence of T) := wrappee.SymmetricExceptWith(other); + + function isdisjoint(other : sequence of T) : boolean; + + function issubset(other : sequence of T) : boolean := wrappee.IsSubsetOf(other); + + function issuperset(other : sequence of T) : boolean := wrappee.IsSupersetOf(other); + + static function operator=(s1 : &set; s2 : &set) : boolean := s1.wrappee.SetEquals(s2.wrappee); + + static function operator<>(s1 : &set; s2 : &set) : boolean := not (s1 = s2); + + static function operator<=(s1 : &set; s2 : &set) : boolean := s1.issubset(s2); + + static function operator<(s1 : &set; s2 : &set) : boolean := (s1 <= s2) and (s1 <> s2); + + static function operator>=(s1 : &set; s2 : &set) : boolean := s1.issuperset(s2); + + static function operator>(s1 : &set; s2 : &set) : boolean := (s1 >= s2) and (s1 <> s2); + + static function operator or(s1 : &set; s2 : &set) : &set := s1.union(s2); + + ///- + function !orEqual(other : &set) : &set; + begin + update(other); + Result := Self; + end; + + static function operator and(s1 : &set; s2 : &set) : &set := s1.intersection(s2); + + ///- + function !andEqual(other : &set) : &set; + begin + intersection_update(other); + Result := Self; + end; + + static function operator-(s1 : &set; s2 : &set) : &set := s1.difference(s2); + + static function operator -=(var s1 : &set; s2 : &set) : &set; + begin + s1.difference_update(s2); + end; + + static function operator xor(s1 : &set; s2 : &set) : &set := s1.symmetric_difference(s2); + + ///- + function !xorEqual(other : &set) : &set; + begin + symmetric_difference_update(other); + Result := Self; + end; + +// static function operator:=(var s1: &set; s2: &set): &set; +// begin +// s1.wrappee := s2.wrappee.ToHashSet(); +// end; + + static function operator implicit(s : HashSet) : &set := new &set(s); + + function GetEnumerator() : IEnumerator := wrappee.GetEnumerator(); + + function System.Collections.IEnumerable.GetEnumerator() : System.Collections.IEnumerator := GetEnumerator(); +end; + +type dict = class(IEnumerable>) + private + wrappee : PABCSystem.Dictionary; + + constructor Create(d : PABCSystem.Dictionary) := wrappee := d; + + function GetValue(key : K) : V := wrappee[key]; + + procedure SetValue(key : K; val : V) := wrappee[key] := val; + + public + + constructor Create() := wrappee := new PABCSystem.Dictionary(); + + constructor Create(capacity : integer) := wrappee := new PABCSystem.Dictionary(capacity); + + constructor Create(comparer : PABCSystem.IEqualityComparer) := wrappee := new PABCSystem.Dictionary(comparer); + + constructor Create(capacity : integer; comparer : PABCSystem.IEqualityComparer) := wrappee := new PABCSystem.Dictionary(capacity, comparer); + + constructor Create(params pairs: array of (K, V)); + begin + wrappee := new PABCSystem.Dictionary(); + + for var i := 0 to pairs.Length - 1 do + wrappee[pairs[i].Item1] := pairs[i].Item2; + end; + + constructor Create(seqOfPairs : sequence of (K, V)); + begin + wrappee := new PABCSystem.Dictionary(); + + foreach var p in seqOfPairs do + wrappee[p.Item1] := p.Item2; + end; + + ///-- + property !count : integer read wrappee.Count; + + property ByKey[key : K] : V read GetValue write SetValue; default; + + static function operator in(key: K; Self: dict): boolean; + begin + Result := Self.wrappee.ContainsKey(key); + end; + + procedure clear() := wrappee.Clear(); + + function copy() : dict := new dict(new Dictionary(wrappee)); + + static function fromkeys(sq : sequence of K; val : V := default(V)) : dict; + begin + Result := new dict(); + + foreach var key in sq do + Result[key] := val; + end; + + function get(key : K; &default : V := default(V)) : V; + begin + var val : V; + if wrappee.TryGetValue(key, val) then + Result := val + else + Result := &default; + end; + + function items() : sequence of KeyValuePair := wrappee; + + function keys() := wrappee.Keys; + + function pop(key : K) : V; + begin + Result := wrappee[key]; + wrappee.Remove(key); + end; + + function pop(key : K; &default : V) : V; + begin + var val : V; + if wrappee.TryGetValue(key, val) then + begin + Result := val; + wrappee.Remove(key); + end + else + Result := &default; + end; + + function popitem() : KeyValuePair; + begin + Result := wrappee.Last(); + wrappee.Remove(Result.Key); + end; + + function setdefault(key : K; &default : V := default(V)) : V; + begin + var val : V; + if wrappee.TryGetValue(key, val) then + Result := val + else + begin + wrappee[key] := &default; + Result := &default; + end; + end; + + procedure update(params pairs: array of (K, V)); + begin + for var i := 0 to pairs.Length - 1 do + wrappee[pairs[i].Item1] := pairs[i].Item2; + end; + + procedure update(seqOfPairs : sequence of (K, V)); + begin + foreach var p in seqOfPairs do + wrappee[p.Item1] := p.Item2; + end; + + function values() := wrappee.Values; + + static function operator or(d1 : dict; d2 : dict) : dict; + begin + Result := new dict(d1.wrappee); + + foreach var p in d2.wrappee do + Result[p.Key] := p.Value; + end; + + static function operator implicit(d : PABCSystem.Dictionary) : dict := new dict(d); + + function GetEnumerator() : IEnumerator> := wrappee.GetEnumerator(); + + function System.Collections.IEnumerable.GetEnumerator() : System.Collections.IEnumerator := GetEnumerator(); +end; + //Standard functions with Lists -function len(lst: PABCSystem.List): integer; -function len(st: set of T): integer; -function len(dct: PABCSystem.Dictionary): integer; +function len(lst: list): integer; +function len(st: &set): integer; +function len(dct: dict): integer; function len(arr: array of T): integer; function len(s: string): integer; -function &set(sq: sequence of T): set of T; -function &list(sq: sequence of T): PABCSystem.List; +// function &set(sq: sequence of T): &set; -function sorted(lst: PABCSystem.List): PABCSystem.List; +function sorted(lst: list): list; function sum(lst: sequence of integer): integer; @@ -162,14 +536,8 @@ function CreateTuple( // TUPLES END -function Dict(params pairs: array of (TKey, TVal)): Dictionary; - type biginteger = PABCSystem.BigInteger; - !list = PABCSystem.List; - !dict = PABCSystem.Dictionary; - dct = PABCSystem.Dictionary; - !set = set of T; tuple2 = System.Tuple; tuple3 = System.Tuple; tuple4 = System.Tuple; @@ -178,30 +546,30 @@ type tuple7 = System.Tuple; empty_list = class - class function operator implicit(x: empty_list): !list; + class function operator implicit(x: empty_list): list; begin - Result := new !list(); + Result := new list(); end; end; empty_set = class - class function operator implicit(x: empty_set): !set; + class function operator implicit(x: empty_set): &set; begin - Result := new !set; + Result := new &set(); end; end; empty_dict = class - class function operator implicit(x: empty_dict): !dict; + class function operator implicit(x: empty_dict): dict; begin - Result := new !dict(); + Result := new dict(); end; end; function !empty_list(): empty_list; function !empty_dict(): empty_dict; -function &set(): empty_set; + implementation @@ -246,8 +614,6 @@ begin Result := TypeName(obj) .Replace('<', '[') .Replace('>', ']') - .Replace('List', 'list') - .Replace('Dictionary', 'dict') .Replace('empty_list', 'list[anytype]') .Replace('empty_set', 'set[anytype]') .Replace('empty_dict', 'dict[anytype]') @@ -289,17 +655,17 @@ function abs(x: integer): integer := if x >= 0 then x else -x; function abs(x: real): real := PABCSystem.Abs(x); -function len(lst: PABCSystem.List): integer := lst.Count(); -function len(st: set of T): integer := st.Count(); -function len(dct: PABCSystem.Dictionary): integer := dct.Count(); -function len(arr: array of T): integer := arr.Count(); +function len(lst: list): integer := lst.!count; +function len(st: &set): integer := st.!count; +function len(dct: dict): integer := dct.!count; +function len(arr: array of T): integer := arr.Length; function len(s: string): integer := s.Length; -function sorted(lst: PABCSystem.List): PABCSystem.List; +function sorted(lst: list): list; begin - var new_list := new PABCSystem.List(lst); - new_list.sort(); - Result := new_list; + var newList := lst.copy(); + newList.sort(); + Result := newList; end; function sum(lst: sequence of integer): integer := lst.sum(); @@ -360,49 +726,32 @@ begin Result := x; end; -function !count(Self: PABCSystem.List; val: T): integer; extensionmethod; +function &set.isdisjoint(other : sequence of T) : boolean; begin - Result := 0; - for var i := 0 to Self.Count - 1 do - if val = Self[i] then - Result += 1; -end; - -function pop(Self: PABCSystem.List; ind: integer): T; extensionmethod; -begin - Result := Self[ind]; - Self.RemoveAt(ind); -end; - -procedure add(Self: set of T; val: T); extensionmethod; -begin - Self += val; -end; - -procedure remove(Self: set of T; val: T); extensionmethod; -begin - Self -= val; + if other = nil then + raise new System.ArgumentNullException('other', 'Null object is not iterable'); + + var c1 := wrappee.Count; + var c2 := other.Count(); + + if (c1 = 0) or (c2 = 0) then + Result := true + else + begin + if c1 >= c2 then + Result := other.All(elem -> not wrappee.Contains(elem)) + else + begin + var otherSet := new HashSet(other); + Result := wrappee.All(elem -> not otherSet.Contains(elem)); + end; + end; + end; function get_keys(dct: Dictionary):= dct.keys; function get_values(dct: Dictionary):= dct.values; -function copy(Self: set of T): set of T; extensionmethod; -begin - Result := Self; -end; - -procedure clear(var st: set of T); -begin - st := []; -end; - -function __NewSetCreatorInternal(params a: array of T): NewSet; -begin - //Result._hs := new HashSet; - Result._hs.UnionWith(a); -end; - // TUPLES BEGIN function CreateTuple( v1: T1; v2: T2 @@ -436,20 +785,10 @@ function CreateTuple( // TUPLES END -function Dict(params pairs: array of (TKey, TVal)): Dictionary; -begin - Result := new Dictionary(); - for var i := 0 to pairs.Length - 1 do - Result.Add(pairs[i][0], pairs[i][1]); -end; - -function &set(sq: sequence of T): set of T; -begin - foreach var e in sq do - Result.Add(e); -end; - -function &list(sq: sequence of T): PABCSystem.List := sq.ToList(); +//function &set(sq: sequence of T): &set; +//begin +// Result := new &set(sq); +//end; function all(s: sequence of boolean): boolean; begin @@ -473,14 +812,15 @@ begin end; end; -function ToDictionary(Self: sequence of System.tuple): Dictionary; extensionmethod; +///- +function ToDictionary(Self: sequence of System.Tuple): dict; extensionmethod; begin Result := Self.ToDictionary(x->x[0],x->x[1]); end; function !empty_list(): empty_list := new empty_list(); function !empty_dict(): empty_dict := new empty_dict(); -function &set(): empty_set := new empty_set; + function round(val: real): integer := PABCSystem.round(val); diff --git a/bin/Lib/SPythonSystemPys.pys b/bin/Lib/SPythonSystemPys.pys index 8e3a39431..7211115f9 100644 --- a/bin/Lib/SPythonSystemPys.pys +++ b/bin/Lib/SPythonSystemPys.pys @@ -4,9 +4,9 @@ from SPythonSystem import range, len def print(*args: obj, **kwargs: str): sep: str = ' ' end: str = '\n' - if 'sep' in kwargs.keys(): + if 'sep' in kwargs.get_keys(): sep = kwargs['sep'] - if 'end' in kwargs.keys(): + if 'end' in kwargs.get_keys(): end = kwargs['end'] for i in range(0, len(args) - 1): diff --git a/bin/Lib/itertools.pys b/bin/Lib/itertools.pys index 488fae2a9..d741c53a2 100644 --- a/bin/Lib/itertools.pys +++ b/bin/Lib/itertools.pys @@ -15,7 +15,7 @@ def chain(*args: list[int]) -> list[int]: # если вызвать как repeat(10, times=12) def repeat(val: int, **kwargs: int) -> list[int]: times = 1 - if 'times' in kwargs.keys(): + if 'times' in kwargs.get_keys(): times = kwargs['times'] return [val for i in range(times)]