pascalabcnet/LanguagePlugins/SPython/SPythonParserKrylovMovchan/SPythonLexer.cs
MovchanGitHub 080fca15bb
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 a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 41dfb6f187
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Fri Feb 7 21:41:01 2025 +0300

        [] - преобразование во все контейнеры

        GraphABCHelper - теперь ABCObjects работает под Линукс

        School исправлен согласно последним веяниям []

    commit 79bbbd10ff
    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 88d5c409eb
    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 8fbd7fdfc3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Jan 26 23:42:48 2025 +0300

        3.10.3
        faststrings
        EmptyCollection и преобразование ее в List, Dictionary
        t: (real,real) := (1,2)

    commit bba132bd5d
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jan 22 09:14:44 2025 +0300

        Поправил справку по функции

    commit 1bd21857cc
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jan 8 18:46:51 2025 +0300

        Teacher Control Plugin - возможность задать server.dat

    commit 0848a1b796
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 22:54:38 2025 +0300

        Исправление автоформатирования []

    commit d45b782a7b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 18:45:07 2025 +0300

        Rename PABCSistem in test suite

    commit c2347e604b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 14:44:51 2025 +0300

        Примеры - устранил неточности

        LightPT - имя сервера вынес в публичную секцию

    commit b68b8da970
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 17 15:52:18 2024 +0300

        Примеры Coords1.pas Coords2.pas.pas

    commit 8a9788e6f9
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 17 15:06:57 2024 +0300

        Перенес проверку set array на уровень парсера

        Немного поправил Intellisense по наведению для NewSet

        По точке там что то другое работает

    commit 874ddebad3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 21:00:38 2024 +0300

        Поправил грамматику []

        Теперь нельзя в режиме ## использовать атрибуты

        Зато можно [1,2,3].Print

    commit 080fb487e1
    Merge: a53dcd9ed a484b0e82
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 15:25:24 2024 +0300

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

    commit a53dcd9ed2
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 15:25:16 2024 +0300

        SF Prm Cmb для строк

    commit a484b0e82d
    Author: Sun Serega <sunserega2@gmail.com>
    Date:   Thu Dec 12 13:49:17 2024 +0200

        fix (#3231)

    commit 6ef11f249c
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 10 11:05:45 2024 +0300

        3.10.2

    commit db9679d89f
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 10 10:59:20 2024 +0300

        Закончил превращение синтаксиса [] по умолчанию в массивы

    commit 45fdde24b4
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 18:08:00 2024 +0100

        #3229

    commit 494b47624d
    Merge: 5875b9929 7906d73da
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 10:42:07 2024 +0100

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

    commit 5875b99296
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 10:41:53 2024 +0100

        platformtarget native - .NET 9.0

    commit 7906d73da3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 3 14:25:37 2024 +0300

        Небольшие изменения в реализации операций с множествами

    commit 087591c7b6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 27 11:37:07 2024 +0300

        3.10.1

        Coords - доработки

        Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

    commit d268d4f83b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Thu Nov 21 22:24:07 2024 +0300

        NSToBytes переделал с исключением

    commit 2bacdc8c28
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 20 13:20:33 2024 +0300

        Комментарии к NewSet

    commit e917ac8eca
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 20 12:42:15 2024 +0300

        TypeName для set

    commit 206289c6a7
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Nov 19 20:23:03 2024 +0300

        Везде заменил _hs на hs в NewSet

        Убрал вызовы методов расширений NewSet в PABCSystem.pas

        Убрал var в operator +

    commit d8262078f6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Nov 19 13:56:47 2024 +0300

        Исправление мелких ошибок NewSet

        Все тесты проходят.

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

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

        Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

    commit f8819665ba
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Nov 16 10:56:11 2024 +0300

        NS2

    commit 591d9ebe60
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 21:34:10 2024 +0100

        fix

    commit c6505634f4
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 21:12:33 2024 +0100

        fix

    commit a6564df23c
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 20:52:29 2024 +0100

        fix in new sets

    commit 03be5bd931
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 13 22:13:41 2024 +0300

        Переставил operator:= в NewSet

    commit 96c68f1666
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Nov 12 21:38:07 2024 +0100

        #3223

    commit 82776f3c77
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Nov 9 12:18:19 2024 +0300

        NewSet - много мелких исправлений.

        Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

    commit fbd63efa89
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Nov 3 16:59:48 2024 +0300

        NewSets
        Некоторые тесты надо исправить

    commit 746c4ae2c2
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Thu Oct 31 21:00:42 2024 +0100

        #3221

    commit 350d07326d
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Thu Oct 31 18:35:51 2024 +0100

        #3221

    commit aae9ab408b
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Thu Oct 31 18:25:06 2024 +0100

        #3221

    commit 1e4a811e04
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Oct 30 20:42:59 2024 +0100

        test for #3219

    commit d1a1247ecd
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Oct 30 20:24:16 2024 +0100

        #3219

    commit 13b3071d80
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Mon Oct 28 22:42:17 2024 +0300

        закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

    commit 6d5c18f457
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Thu Oct 24 10:17:48 2024 +0300

        SF XLSX.pas

    commit 0c773a7ecb
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Oct 16 12:04:33 2024 +0300

        tree.xml с парой новых узлов для Питона

    commit 53b3fd0881
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Oct 9 14:09:01 2024 +0300

        Добавил временное преобразование от array of T в set of T

    commit 271d5792ce
    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 79f9ab73a0
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Oct 5 15:33:20 2024 +0300

        PT4_32

    commit 0a20c8d32c
    Author: Sun Serega <sunserega2@gmail.com>
    Date:   Thu Sep 26 09:02:31 2024 +0200

        Add `.DistinctBy` (#3122)

    commit 11981dbf47
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Sep 25 11:53:02 2024 +0300

        IndexMinBy, IndexMaxBy
        MinBy, MaxBy - более эффективная реализация
        GraphWPF - SaveToClipboard

    commit 3eb1d2bd85
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Sep 22 17:42:09 2024 +0200

        #3197

    commit 20edd487e3
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Sep 22 12:39:03 2024 +0200

        #3204

    commit 7261231c9c
    Merge: 7debbe702 9ab932977
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Sep 22 09:49:58 2024 +0200

        Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

        Fix linux version

    commit 9ab9329771
    Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
    Date:   Sun Sep 22 10:23:18 2024 +0300

        Add new projects in PascalACBNETLinux.sln

    commit 7debbe702a
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Sep 21 14:29:38 2024 +0300

        Критическое обновление LightPT

    commit 40335b873e
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Fri Sep 20 22:58:46 2024 +0300

        LightPT - OutputListIsClearedFromSpaces := False;
        Coords - DrawLine

    commit 078281db17
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Thu Sep 19 22:42:44 2024 +0300

        coords suite

    commit 8d51f999a5
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Thu Sep 19 20:28:28 2024 +0300

        Автоклассы - разрешение наследования от классов без полей

        Модуль Coords

    commit 8f7e92d418
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Mon Sep 16 08:25:43 2024 +0300

        Turtle переделал на паттерн Команда

    commit a6f6d8a90b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Sep 7 23:11:54 2024 +0300

        Правки рейтинга в TeacherPlugin

    commit 2365eb3633
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Sep 7 15:54:15 2024 +0300

        LinkLabel в TeacherControlPlugin

    commit 1835b811ef
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Sep 3 23:51:44 2024 +0300

        MathNet Signed

    commit b23d6df9e9
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Sep 3 23:16:15 2024 +0300

        MathNet.Numerics.dll

    commit 790fba67b8
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Aug 27 17:56:09 2024 +0300

        3.10.0

    commit 1ec4204fd2
    Author: Sun Serega <sunserega2@gmail.com>
    Date:   Mon Aug 26 09:20:27 2024 +0300

        `.Batch` cleanup (#3108)

    commit b5e674c311
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Mon Aug 26 09:12:14 2024 +0300

        3_10_0

    commit 7face043cf
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Mon Aug 26 09:11:08 2024 +0300

        ToSet

    commit e456ad528e
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Aug 24 23:13:57 2024 +0300

        3.9.0.3530

    commit 3247469e6d
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Aug 24 22:55:27 2024 +0300

        Добавлен DrawPoints в Turtle

        Исправлена ошибка с отображением подписей в Y-координате

    commit 7548142623
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    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 d94885b950
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Aug 24 12:13:09 2024 +0300

        randomElement для строк

        .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

        NumberFormat - функция, возвращающая nfi

    commit ae2e26acf8
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Fri Aug 23 19:33:55 2024 +0300

        PT4 - новые dll файлы старых заданий серий A

    commit 0f8aa6fa3c
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Aug 18 17:28:05 2024 +0300

        SetOf как основной синоним HSet

    commit db4b53be20
    Merge: 86852e0a5 b9fd59a84
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Aug 18 16:05:42 2024 +0300

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

    commit 86852e0a59
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Aug 18 16:05:14 2024 +0300

        School - ToBase(number: int64

    commit b9fd59a840
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Aug 13 15:08:44 2024 +0200

        #2830

    commit 4f0b0f8ba0
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Aug 13 14:43:49 2024 +0200

        #3194

    commit e3ee0fed4c
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Aug 13 13:49:30 2024 +0200

        #3097

    commit d396c4a9fe
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Aug 13 10:40:23 2024 +0200

        #3178

    commit 0d846d2335
    Merge: e91e35398 a65a86921
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Mon Aug 12 15:24:11 2024 +0200

        Merge pull request #3170 from samuraiGH/ForeachResolver-rework

        Foreach resolver rework

    commit a65a869211
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Mon Aug 12 15:50:42 2024 +0300

        increasing pcu file version

    commit e91e353984
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Aug 11 15:21:29 2024 +0300

        Обновленный модуль Turtle.pas

    commit c18238df39
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Aug 6 20:18:57 2024 +0300

        3.9.0.3523

    commit 1da2b524a6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Aug 6 19:34:10 2024 +0300

        School PrimeDivisors

    commit 47c61d8b14
    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 fc3ab96cae
    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 64acde6460
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jul 31 18:21:04 2024 +0300

        Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

        School - IsPrime(n)

    commit 3db5709101
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jul 31 10:56:18 2024 +0300

        ZipCartesianFuncs.pas

    commit c4fd47128b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Jul 30 22:56:03 2024 +0300

        Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
        Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
        Перегенерирована справка

    commit 7d66f26d4f
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Mon Jul 1 00:16:43 2024 +0300

        cleanup and more tests

    commit 464dc794a8
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Sun Jun 30 23:31:28 2024 +0300

        cleanup and more comments

    commit 32f126370c
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Sun Jun 30 21:35:06 2024 +0300

        attempt to fix GetEnumerator resolving for Pascal types

    commit fb3eeeb28b
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Sat Jun 29 16:26:35 2024 +0300

        fix tests

    commit 84b0dfe537
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Sat Jun 29 15:49:13 2024 +0300

        fix getting MethodInfo

    commit 5fa4d9fce7
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 22:45:07 2024 +0300

        cold fix set of T resolving

    commit 460ce636ab
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 22:21:06 2024 +0300

        hot fix set of T resolving

    commit 83c2f29ac6
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 21:53:11 2024 +0300

        fix method filtering again

    commit c840a1a47a
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 21:32:41 2024 +0300

        fix type recovery

    commit 2436627fdd
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 19:18:32 2024 +0300

        fixing method filtering

    commit 15a05360a4
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 17:25:39 2024 +0300

        attempt to fix GetEnumerator resolving for compiled types

    commit 4fd020d084
    Author: samuraiGH <anonimajzer3@mail.ru>
    Date:   Fri Jun 28 17:21:00 2024 +0300

        adding tests

* Squashed commit of the following:

commit 1fd348ec3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Feb 23 20:49:26 2025 +0300

    NSIS New 3.10

    Ярлык в меню Пуск у всех пользователей

commit 80b7182dc1
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 11:50:00 2025 +0300

    _ in names

commit a2b078960b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 10:52:25 2025 +0300

    cnfc2

commit 58f26d469d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 18 22:28:13 2025 +0300

    перекомпиляция 3.10.3.3611

commit b78a72977f
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 c3557e388c
Author: Nikolay Kuznetsov <adasoft@gmail.com>
Date:   Sat Feb 15 20:32:46 2025 +0300

    Update GraphABC.pas (#3244)

    1. Быстрая реализация функции FloodFill
    Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

    2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

commit 9dbac389e1
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 41dfb6f187
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Feb 7 21:41:01 2025 +0300

    [] - преобразование во все контейнеры

    GraphABCHelper - теперь ABCObjects работает под Линукс

    School исправлен согласно последним веяниям []

commit 79bbbd10ff
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 88d5c409eb
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 8fbd7fdfc3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Jan 26 23:42:48 2025 +0300

    3.10.3
    faststrings
    EmptyCollection и преобразование ее в List, Dictionary
    t: (real,real) := (1,2)

commit bba132bd5d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 22 09:14:44 2025 +0300

    Поправил справку по функции

commit 1bd21857cc
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 8 18:46:51 2025 +0300

    Teacher Control Plugin - возможность задать server.dat

commit 0848a1b796
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 22:54:38 2025 +0300

    Исправление автоформатирования []

commit d45b782a7b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 18:45:07 2025 +0300

    Rename PABCSistem in test suite

commit c2347e604b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 14:44:51 2025 +0300

    Примеры - устранил неточности

    LightPT - имя сервера вынес в публичную секцию

commit b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 7751fe7e75
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 d1fce63d69
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Mar 4 08:38:09 2025 +0300

    Сборка после pr SDK

commit d491e88aa7
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 1fd348ec3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Feb 23 20:49:26 2025 +0300

    NSIS New 3.10

    Ярлык в меню Пуск у всех пользователей

commit 80b7182dc1
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 11:50:00 2025 +0300

    _ in names

commit a2b078960b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 10:52:25 2025 +0300

    cnfc2

commit 58f26d469d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 18 22:28:13 2025 +0300

    перекомпиляция 3.10.3.3611

commit b78a72977f
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 c3557e388c
Author: Nikolay Kuznetsov <adasoft@gmail.com>
Date:   Sat Feb 15 20:32:46 2025 +0300

    Update GraphABC.pas (#3244)

    1. Быстрая реализация функции FloodFill
    Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

    2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

commit 9dbac389e1
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 41dfb6f187
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Feb 7 21:41:01 2025 +0300

    [] - преобразование во все контейнеры

    GraphABCHelper - теперь ABCObjects работает под Линукс

    School исправлен согласно последним веяниям []

commit 79bbbd10ff
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 88d5c409eb
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 8fbd7fdfc3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Jan 26 23:42:48 2025 +0300

    3.10.3
    faststrings
    EmptyCollection и преобразование ее в List, Dictionary
    t: (real,real) := (1,2)

commit bba132bd5d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 22 09:14:44 2025 +0300

    Поправил справку по функции

commit 1bd21857cc
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 8 18:46:51 2025 +0300

    Teacher Control Plugin - возможность задать server.dat

commit 0848a1b796
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 22:54:38 2025 +0300

    Исправление автоформатирования []

commit d45b782a7b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 18:45:07 2025 +0300

    Rename PABCSistem in test suite

commit c2347e604b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 14:44:51 2025 +0300

    Примеры - устранил неточности

    LightPT - имя сервера вынес в публичную секцию

commit b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 7751fe7e75
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 d1fce63d69
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Mar 4 08:38:09 2025 +0300

    Сборка после pr SDK

commit d491e88aa7
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 1fd348ec3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Feb 23 20:49:26 2025 +0300

    NSIS New 3.10

    Ярлык в меню Пуск у всех пользователей

commit 80b7182dc1
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 11:50:00 2025 +0300

    _ in names

commit a2b078960b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 10:52:25 2025 +0300

    cnfc2

commit 58f26d469d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 18 22:28:13 2025 +0300

    перекомпиляция 3.10.3.3611

commit b78a72977f
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 c3557e388c
Author: Nikolay Kuznetsov <adasoft@gmail.com>
Date:   Sat Feb 15 20:32:46 2025 +0300

    Update GraphABC.pas (#3244)

    1. Быстрая реализация функции FloodFill
    Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

    2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

commit 9dbac389e1
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 41dfb6f187
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Feb 7 21:41:01 2025 +0300

    [] - преобразование во все контейнеры

    GraphABCHelper - теперь ABCObjects работает под Линукс

    School исправлен согласно последним веяниям []

commit 79bbbd10ff
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 88d5c409eb
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 8fbd7fdfc3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Jan 26 23:42:48 2025 +0300

    3.10.3
    faststrings
    EmptyCollection и преобразование ее в List, Dictionary
    t: (real,real) := (1,2)

commit bba132bd5d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 22 09:14:44 2025 +0300

    Поправил справку по функции

commit 1bd21857cc
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 8 18:46:51 2025 +0300

    Teacher Control Plugin - возможность задать server.dat

commit 0848a1b796
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 22:54:38 2025 +0300

    Исправление автоформатирования []

commit d45b782a7b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 18:45:07 2025 +0300

    Rename PABCSistem in test suite

commit c2347e604b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 14:44:51 2025 +0300

    Примеры - устранил неточности

    LightPT - имя сервера вынес в публичную секцию

commit b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 771ea7b445
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Apr 6 14:32:17 2025 +0200

    #3230

commit 28a1a03e8d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Apr 6 11:35:09 2025 +0200

    #3251

commit af7abc770b
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 aae723b982
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 f9cc90e50f
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Apr 3 11:59:46 2025 +0300

    fix errors (#3260)

commit f85bfad60f
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 7751fe7e75
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 d1fce63d69
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Mar 4 08:38:09 2025 +0300

    Сборка после pr SDK

commit d491e88aa7
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 1fd348ec3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Feb 23 20:49:26 2025 +0300

    NSIS New 3.10

    Ярлык в меню Пуск у всех пользователей

commit 80b7182dc1
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 11:50:00 2025 +0300

    _ in names

commit a2b078960b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 10:52:25 2025 +0300

    cnfc2

commit 58f26d469d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 18 22:28:13 2025 +0300

    перекомпиляция 3.10.3.3611

commit b78a72977f
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 c3557e388c
Author: Nikolay Kuznetsov <adasoft@gmail.com>
Date:   Sat Feb 15 20:32:46 2025 +0300

    Update GraphABC.pas (#3244)

    1. Быстрая реализация функции FloodFill
    Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

    2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

commit 9dbac389e1
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 41dfb6f187
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Feb 7 21:41:01 2025 +0300

    [] - преобразование во все контейнеры

    GraphABCHelper - теперь ABCObjects работает под Линукс

    School исправлен согласно последним веяниям []

commit 79bbbd10ff
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 88d5c409eb
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 8fbd7fdfc3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Jan 26 23:42:48 2025 +0300

    3.10.3
    faststrings
    EmptyCollection и преобразование ее в List, Dictionary
    t: (real,real) := (1,2)

commit bba132bd5d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 22 09:14:44 2025 +0300

    Поправил справку по функции

commit 1bd21857cc
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 8 18:46:51 2025 +0300

    Teacher Control Plugin - возможность задать server.dat

commit 0848a1b796
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 22:54:38 2025 +0300

    Исправление автоформатирования []

commit d45b782a7b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 18:45:07 2025 +0300

    Rename PABCSistem in test suite

commit c2347e604b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 14:44:51 2025 +0300

    Примеры - устранил неточности

    LightPT - имя сервера вынес в публичную секцию

commit b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 <zemlyaksanya@mail.ru>
Date:   Thu Apr 3 12:16:52 2025 +0300

    Update comments in PascalABCLanguageInformation

commit aae723b982
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 f9cc90e50f
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Apr 3 11:59:46 2025 +0300

    fix errors (#3260)

commit f85bfad60f
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 <zemlyaksanya@mail.ru>
Date:   Thu Apr 3 11:15:02 2025 +0300

    Squashed commit of the following:

    commit 7751fe7e75
    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 d1fce63d69
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Mar 4 08:38:09 2025 +0300

        Сборка после pr SDK

    commit d491e88aa7
    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 1fd348ec3c
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Feb 23 20:49:26 2025 +0300

        NSIS New 3.10

        Ярлык в меню Пуск у всех пользователей

    commit 80b7182dc1
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Feb 19 11:50:00 2025 +0300

        _ in names

    commit a2b078960b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Feb 19 10:52:25 2025 +0300

        cnfc2

    commit 58f26d469d
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Feb 18 22:28:13 2025 +0300

        перекомпиляция 3.10.3.3611

    commit b78a72977f
    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 c3557e388c
    Author: Nikolay Kuznetsov <adasoft@gmail.com>
    Date:   Sat Feb 15 20:32:46 2025 +0300

        Update GraphABC.pas (#3244)

        1. Быстрая реализация функции FloodFill
        Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

        2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

    commit 9dbac389e1
    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 41dfb6f187
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Fri Feb 7 21:41:01 2025 +0300

        [] - преобразование во все контейнеры

        GraphABCHelper - теперь ABCObjects работает под Линукс

        School исправлен согласно последним веяниям []

    commit 79bbbd10ff
    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 88d5c409eb
    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 8fbd7fdfc3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Jan 26 23:42:48 2025 +0300

        3.10.3
        faststrings
        EmptyCollection и преобразование ее в List, Dictionary
        t: (real,real) := (1,2)

    commit bba132bd5d
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jan 22 09:14:44 2025 +0300

        Поправил справку по функции

    commit 1bd21857cc
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jan 8 18:46:51 2025 +0300

        Teacher Control Plugin - возможность задать server.dat

    commit 0848a1b796
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 22:54:38 2025 +0300

        Исправление автоформатирования []

    commit d45b782a7b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 18:45:07 2025 +0300

        Rename PABCSistem in test suite

    commit c2347e604b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 14:44:51 2025 +0300

        Примеры - устранил неточности

        LightPT - имя сервера вынес в публичную секцию

    commit b68b8da970
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 17 15:52:18 2024 +0300

        Примеры Coords1.pas Coords2.pas.pas

    commit 8a9788e6f9
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 17 15:06:57 2024 +0300

        Перенес проверку set array на уровень парсера

        Немного поправил Intellisense по наведению для NewSet

        По точке там что то другое работает

    commit 874ddebad3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 21:00:38 2024 +0300

        Поправил грамматику []

        Теперь нельзя в режиме ## использовать атрибуты

        Зато можно [1,2,3].Print

    commit 080fb487e1
    Merge: a53dcd9ed a484b0e82
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 15:25:24 2024 +0300

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

    commit a53dcd9ed2
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 15:25:16 2024 +0300

        SF Prm Cmb для строк

    commit a484b0e82d
    Author: Sun Serega <sunserega2@gmail.com>
    Date:   Thu Dec 12 13:49:17 2024 +0200

        fix (#3231)

    commit 6ef11f249c
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 10 11:05:45 2024 +0300

        3.10.2

    commit db9679d89f
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 10 10:59:20 2024 +0300

        Закончил превращение синтаксиса [] по умолчанию в массивы

    commit 45fdde24b4
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 18:08:00 2024 +0100

        #3229

    commit 494b47624d
    Merge: 5875b9929 7906d73da
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 10:42:07 2024 +0100

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

    commit 5875b99296
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 10:41:53 2024 +0100

        platformtarget native - .NET 9.0

    commit 7906d73da3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 3 14:25:37 2024 +0300

        Небольшие изменения в реализации операций с множествами

    commit 087591c7b6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 27 11:37:07 2024 +0300

        3.10.1

        Coords - доработки

        Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

    commit d268d4f83b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Thu Nov 21 22:24:07 2024 +0300

        NSToBytes переделал с исключением

    commit 2bacdc8c28
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 20 13:20:33 2024 +0300

        Комментарии к NewSet

    commit e917ac8eca
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 20 12:42:15 2024 +0300

        TypeName для set

    commit 206289c6a7
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Nov 19 20:23:03 2024 +0300

        Везде заменил _hs на hs в NewSet

        Убрал вызовы методов расширений NewSet в PABCSystem.pas

        Убрал var в operator +

    commit d8262078f6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Nov 19 13:56:47 2024 +0300

        Исправление мелких ошибок NewSet

        Все тесты проходят.

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

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

        Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

    commit f8819665ba
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Nov 16 10:56:11 2024 +0300

        NS2

    commit 591d9ebe60
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 21:34:10 2024 +0100

        fix

    commit c6505634f4
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 21:12:33 2024 +0100

        fix

    commit a6564df23c
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 20:52:29 2024 +0100

        fix in new sets

    commit 03be5bd931
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 13 22:13:41 2024 +0300

        Переставил operator:= в NewSet

    commit 96c68f1666
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Nov 12 21:38:07 2024 +0100

        #3223

    commit 82776f3c77
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Nov 9 12:18:19 2024 +0300

        NewSet - много мелких исправлений.

        Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit 7751fe7e75
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 d1fce63d69
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Mar 4 08:38:09 2025 +0300

    Сборка после pr SDK

commit d491e88aa7
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 1fd348ec3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Feb 23 20:49:26 2025 +0300

    NSIS New 3.10

    Ярлык в меню Пуск у всех пользователей

commit 80b7182dc1
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 11:50:00 2025 +0300

    _ in names

commit a2b078960b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 10:52:25 2025 +0300

    cnfc2

commit 58f26d469d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 18 22:28:13 2025 +0300

    перекомпиляция 3.10.3.3611

commit b78a72977f
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 c3557e388c
Author: Nikolay Kuznetsov <adasoft@gmail.com>
Date:   Sat Feb 15 20:32:46 2025 +0300

    Update GraphABC.pas (#3244)

    1. Быстрая реализация функции FloodFill
    Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

    2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

commit 9dbac389e1
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 41dfb6f187
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Feb 7 21:41:01 2025 +0300

    [] - преобразование во все контейнеры

    GraphABCHelper - теперь ABCObjects работает под Линукс

    School исправлен согласно последним веяниям []

commit 79bbbd10ff
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 88d5c409eb
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 8fbd7fdfc3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Jan 26 23:42:48 2025 +0300

    3.10.3
    faststrings
    EmptyCollection и преобразование ее в List, Dictionary
    t: (real,real) := (1,2)

commit bba132bd5d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 22 09:14:44 2025 +0300

    Поправил справку по функции

commit 1bd21857cc
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 8 18:46:51 2025 +0300

    Teacher Control Plugin - возможность задать server.dat

commit 0848a1b796
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 22:54:38 2025 +0300

    Исправление автоформатирования []

commit d45b782a7b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 18:45:07 2025 +0300

    Rename PABCSistem in test suite

commit c2347e604b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 14:44:51 2025 +0300

    Примеры - устранил неточности

    LightPT - имя сервера вынес в публичную секцию

commit b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit a11bb9e9c6271e359fde6050e95d98950e946fbd
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Nov 10 19:43:45 2024 +0300

    Fix encoding

commit 2c0fba643e45914b8f5350356e1c24b3c3cf3685
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Nov 10 19:21:54 2024 +0300

    Fix build error

commit f813a4ff99936dabdcfda40ce5beea2ba41aed53
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Nov 10 19:08:44 2024 +0300

    Update intellisense documentation

commit 8414c7ae1d6ed296a86e56975d84949a6e471a25
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Nov 10 19:08:03 2024 +0300

    Another iteration of refactoring in CodeCompletionProvider + comments

commit 340ef9a0e9bc40f7bda0cde8dccb86c94dc6c8cb
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Nov 10 14:51:56 2024 +0300

    Fix GetCompletionDataByFirst behaviour when getting symInfos after uses keyword

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit 8e9e7f94d094e528aeb9bd0db322005b08e31ee3
Merge: ea3c878eb fbd63efa8
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Fri Nov 8 14:47:33 2024 +0300

    Merge branch 'master' into intellisense_refactoring

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit ea3c878eb27a268d50272838a36508511f1096ee
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Oct 27 22:40:40 2024 +0300

    Refactor GetCompletionDataByFirst method

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0ae57063a798ec7dc4979a1cea32371034794907
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Tue Oct 22 12:54:05 2024 +0300

    Replace dollar service character in CodeCompletion by separate boolean (ctrlSpaceAfterDot))

commit 89a02c2867b41cb12020a31867667c89f9fbb848
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Tue Oct 22 10:48:21 2024 +0300

    Extract shift space actions in separate class

commit cb24d274969f67255c7cb253fbc36d25d6aaa2be
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Oct 20 22:54:32 2024 +0300

    Refactor CodeCompletionProvider (first iteration)

commit 10b16014b8e19fac339752466b1733359675a052
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
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 <zemlyaksanya@mail.ru>
Date:   Sun Oct 20 17:33:07 2024 +0300

    Merge branch 'master' into intellisense_refactoring

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit d95eab790c41cb2f8ac38be997ca81af30ee22be
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Thu Oct 10 14:14:43 2024 +0300

    Delete other cases of ampersend inserting

commit b2aaa157c1ae1965ae2a20eb3e5454f4df37b1a8
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Oct 9 22:48:37 2024 +0300

    Basic refactoring of GetPopupHintText + delete ampersend inserting

commit 4554bd5581bdf61601e454650a34422c8bf93c0c
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Oct 9 18:56:23 2024 +0300

    Move ValidDirectives field to ILanguageInformation

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit d8b05d3d80500fc10cb964a5ec62c7244e4993f8
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Oct 9 09:53:35 2024 +0300

    Fix inaccuracy in BaseKeywords.cs

commit c45f66baf5a159d07ddc7ded63bad56387799fc1
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Oct 9 09:47:43 2024 +0300

    Manage references in PascalABCLanguageInfo project

commit 342cb23f2eb33948cc7d058e04a10fd4b5c1e2a4
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Oct 9 00:06:25 2024 +0300

    Fix string comparisons and null reference exception

commit 386f59d5fd5b29f010f59194ef1324d23a5651ca
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Tue Oct 8 23:18:53 2024 +0300

    Fix build error

commit 851936f02544879644b3284cf472c8c9c2ea8fa9
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Tue Oct 8 23:12:16 2024 +0300

    Refactor keywords managing to avoid repeating them twice

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 <zemlyaksanya@mail.ru>
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 <zemlyaksanya@mail.ru>
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 <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 19:23:36 2025 +0300

    Create FindScopeByLocation modification for SPython

    Для нахождения вложенных в MAIN функций

commit af7235ce8bee4b45ffd6c3b479f8e828932f69b4
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 17:59:22 2025 +0300

    Add ExitParamVisitor in visitors pipeline

commit 3f5a4f4950a3d3f2035ec2b18081a01c734c1a96
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 17:35:30 2025 +0300

    Small fixes

commit 3f32348b2f4dd66edd372d3989d7651ac56a5d93
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 17:11:07 2025 +0300

    Fix merge error

commit 684d6a36912ef5c5ad82d4de0807683eac87debf
Merge: 8e506f409 eeb3116ae
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 17:06:42 2025 +0300

    Merge branch 'master' into Spython_refactoring

commit 8e506f409e4b34ad81620bf352813ab507e6134e
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 16:44:37 2025 +0300

    Implement visitors pipeline for PascalABC.NET

commit 0e8e4d5c786cbad5257804ce495fe410546ddf4c
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Wed Jun 11 14:10:22 2025 +0300

    Refactor SPython StandardSyntaxTreeConverter to use pipeline approach

commit eeb3116aea
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jun 10 21:30:20 2025 +0300

    3.10.3.3634

commit ea338d6bfe
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jun 10 20:30:42 2025 +0300

    2025 in GlobalAssemblyInfo.cs

commit 4dc6bd72ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jun 10 20:19:18 2025 +0300

    chm восстановил

commit fd139b4700
Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com>
Date:   Tue Jun 10 20:09:10 2025 +0300

    fix SemanticTreeConverter.cs encoding (#3273)

commit d11674efc2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jun 10 19:56:16 2025 +0300

    Вернул старый css для справки

commit 9aee28f4f0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jun 10 19:54:57 2025 +0300

    2025

commit 07370e365f
Author: Sun Serega <sunserega2@gmail.com>
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 50fd3cb1ee
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 5fec52615a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat May 24 21:36:36 2025 +0300

    Распаковка KeyValuePair| И в foreach

commit fbb5dec9a9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat May 17 19:34:33 2025 +0300

    Внешний Between

commit a914ab6ef5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri May 16 16:57:00 2025 +0300

    InRange изменение поведения и внешний

commit 04059ab235
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed May 14 19:57:30 2025 +0300

    Исправлены библиотеки PT4Exam

commit 40bfc046a8
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 e3a64850ef
Author: dmkwketx <dmkwketx@gmail.com>
Date:   Mon May 12 21:14:21 2025 +0300

    Update GraphWPF.pas (#3270)

    если title больше одной строки, показывалась только последняя. теперь все строки будут показаны.

commit e9cf278fdd
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon May 12 10:24:04 2025 +0300

    IsOrdered в разных воплощениях

commit 255533f407
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri May 9 16:39:12 2025 +0300

    IsOrdered метод расширения

commit 4c56298bfb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu May 8 22:53:34 2025 +0300

    exit(param)

commit c22dee65fa
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed May 7 10:57:41 2025 +0300

    sp2

commit 3f37c2cc4f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed May 7 10:56:51 2025 +0300

    sp

commit cdfde69281
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri May 2 21:44:57 2025 +0300

    2 chars

commit 2e27beef48
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 771ea7b445
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Apr 6 14:32:17 2025 +0200

        #3230

    commit 28a1a03e8d
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Apr 6 11:35:09 2025 +0200

        #3251

    commit af7abc770b
    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 aae723b982
    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 f9cc90e50f
    Author: Sun Serega <sunserega2@gmail.com>
    Date:   Thu Apr 3 11:59:46 2025 +0300

        fix errors (#3260)

    commit f85bfad60f
    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 69149f8c44
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 7751fe7e75
    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 d1fce63d69
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Mar 4 08:38:09 2025 +0300

        Сборка после pr SDK

    commit d491e88aa7
    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 1fd348ec3c
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Feb 23 20:49:26 2025 +0300

        NSIS New 3.10

        Ярлык в меню Пуск у всех пользователей

    commit 80b7182dc1
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Feb 19 11:50:00 2025 +0300

        _ in names

    commit a2b078960b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Feb 19 10:52:25 2025 +0300

        cnfc2

    commit 58f26d469d
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Feb 18 22:28:13 2025 +0300

        перекомпиляция 3.10.3.3611

    commit b78a72977f
    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 c3557e388c
    Author: Nikolay Kuznetsov <adasoft@gmail.com>
    Date:   Sat Feb 15 20:32:46 2025 +0300

        Update GraphABC.pas (#3244)

        1. Быстрая реализация функции FloodFill
        Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

        2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

    commit 9dbac389e1
    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 41dfb6f187
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Fri Feb 7 21:41:01 2025 +0300

        [] - преобразование во все контейнеры

        GraphABCHelper - теперь ABCObjects работает под Линукс

        School исправлен согласно последним веяниям []

    commit 79bbbd10ff
    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 88d5c409eb
    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 8fbd7fdfc3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sun Jan 26 23:42:48 2025 +0300

        3.10.3
        faststrings
        EmptyCollection и преобразование ее в List, Dictionary
        t: (real,real) := (1,2)

    commit bba132bd5d
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jan 22 09:14:44 2025 +0300

        Поправил справку по функции

    commit 1bd21857cc
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Jan 8 18:46:51 2025 +0300

        Teacher Control Plugin - возможность задать server.dat

    commit 0848a1b796
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 22:54:38 2025 +0300

        Исправление автоформатирования []

    commit d45b782a7b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 18:45:07 2025 +0300

        Rename PABCSistem in test suite

    commit c2347e604b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Jan 4 14:44:51 2025 +0300

        Примеры - устранил неточности

        LightPT - имя сервера вынес в публичную секцию

    commit b68b8da970
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 17 15:52:18 2024 +0300

        Примеры Coords1.pas Coords2.pas.pas

    commit 8a9788e6f9
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 17 15:06:57 2024 +0300

        Перенес проверку set array на уровень парсера

        Немного поправил Intellisense по наведению для NewSet

        По точке там что то другое работает

    commit 874ddebad3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 21:00:38 2024 +0300

        Поправил грамматику []

        Теперь нельзя в режиме ## использовать атрибуты

        Зато можно [1,2,3].Print

    commit 080fb487e1
    Merge: a53dcd9ed a484b0e82
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 15:25:24 2024 +0300

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

    commit a53dcd9ed2
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Dec 14 15:25:16 2024 +0300

        SF Prm Cmb для строк

    commit a484b0e82d
    Author: Sun Serega <sunserega2@gmail.com>
    Date:   Thu Dec 12 13:49:17 2024 +0200

        fix (#3231)

    commit 6ef11f249c
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 10 11:05:45 2024 +0300

        3.10.2

    commit db9679d89f
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 10 10:59:20 2024 +0300

        Закончил превращение синтаксиса [] по умолчанию в массивы

    commit 45fdde24b4
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 18:08:00 2024 +0100

        #3229

    commit 494b47624d
    Merge: 5875b9929 7906d73da
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 10:42:07 2024 +0100

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

    commit 5875b99296
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Sun Dec 8 10:41:53 2024 +0100

        platformtarget native - .NET 9.0

    commit 7906d73da3
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Dec 3 14:25:37 2024 +0300

        Небольшие изменения в реализации операций с множествами

    commit 087591c7b6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 27 11:37:07 2024 +0300

        3.10.1

        Coords - доработки

        Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

    commit d268d4f83b
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Thu Nov 21 22:24:07 2024 +0300

        NSToBytes переделал с исключением

    commit 2bacdc8c28
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 20 13:20:33 2024 +0300

        Комментарии к NewSet

    commit e917ac8eca
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 20 12:42:15 2024 +0300

        TypeName для set

    commit 206289c6a7
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Nov 19 20:23:03 2024 +0300

        Везде заменил _hs на hs в NewSet

        Убрал вызовы методов расширений NewSet в PABCSystem.pas

        Убрал var в operator +

    commit d8262078f6
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Tue Nov 19 13:56:47 2024 +0300

        Исправление мелких ошибок NewSet

        Все тесты проходят.

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

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

        Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

    commit f8819665ba
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Nov 16 10:56:11 2024 +0300

        NS2

    commit 591d9ebe60
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 21:34:10 2024 +0100

        fix

    commit c6505634f4
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 21:12:33 2024 +0100

        fix

    commit a6564df23c
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Wed Nov 13 20:52:29 2024 +0100

        fix in new sets

    commit 03be5bd931
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Wed Nov 13 22:13:41 2024 +0300

        Переставил operator:= в NewSet

    commit 96c68f1666
    Author: Ivan Bondarev <ibond84@googlemail.com>
    Date:   Tue Nov 12 21:38:07 2024 +0100

        #3223

    commit 82776f3c77
    Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
    Date:   Sat Nov 9 12:18:19 2024 +0300

        NewSet - много мелких исправлений.

        Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

    * Update comments in PascalABCLanguageInformation

commit cc7d4472c6
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 5d842153a5
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Apr 10 12:17:52 2025 +0300

    Add NSIS binaries to .gitignore exclude (#3265)

commit ee31ed94b3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Apr 10 12:06:40 2025 +0300

    TeacherControlPlugin.cs - шифрованные модули

commit ba23a01e29
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Apr 9 10:59:16 2025 +0300

    Закомментировал неверный обработчик

commit 3f70700d2b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Apr 7 22:07:13 2025 +0300

    nsis новый - папка bin

    TeacherControlPlugin.cs - добавление обработчика для последующей шифровки Tasks.pas

commit 0353abf57c
Author: samuraiGH <87191377+samuraiGH@users.noreply.github.com>
Date:   Mon Apr 7 08:35:22 2025 +0300

    fix caching Localization assembly (#3263)

commit 771ea7b445
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Apr 6 14:32:17 2025 +0200

    #3230

commit 28a1a03e8d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Apr 6 11:35:09 2025 +0200

    #3251

commit af7abc770b
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 aae723b982
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 f9cc90e50f
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Apr 3 11:59:46 2025 +0300

    fix errors (#3260)

commit f85bfad60f
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 7751fe7e75
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 d1fce63d69
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Mar 4 08:38:09 2025 +0300

    Сборка после pr SDK

commit d491e88aa7
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 1fd348ec3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Feb 23 20:49:26 2025 +0300

    NSIS New 3.10

    Ярлык в меню Пуск у всех пользователей

commit 80b7182dc1
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 11:50:00 2025 +0300

    _ in names

commit a2b078960b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Feb 19 10:52:25 2025 +0300

    cnfc2

commit 58f26d469d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 18 22:28:13 2025 +0300

    перекомпиляция 3.10.3.3611

commit b78a72977f
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 c3557e388c
Author: Nikolay Kuznetsov <adasoft@gmail.com>
Date:   Sat Feb 15 20:32:46 2025 +0300

    Update GraphABC.pas (#3244)

    1. Быстрая реализация функции FloodFill
    Для этого добавлена процедура BitmapFloodFill, которая вызывается из метода Picture.FloodFill и процедуры FloodFill

    2.Добавлена поддержка LockDrawing/UnlockDrawing в процедуру FloodFill

commit 9dbac389e1
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 41dfb6f187
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Feb 7 21:41:01 2025 +0300

    [] - преобразование во все контейнеры

    GraphABCHelper - теперь ABCObjects работает под Линукс

    School исправлен согласно последним веяниям []

commit 79bbbd10ff
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 88d5c409eb
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 8fbd7fdfc3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Jan 26 23:42:48 2025 +0300

    3.10.3
    faststrings
    EmptyCollection и преобразование ее в List, Dictionary
    t: (real,real) := (1,2)

commit bba132bd5d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 22 09:14:44 2025 +0300

    Поправил справку по функции

commit 1bd21857cc
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jan 8 18:46:51 2025 +0300

    Teacher Control Plugin - возможность задать server.dat

commit 0848a1b796
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 22:54:38 2025 +0300

    Исправление автоформатирования []

commit d45b782a7b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 18:45:07 2025 +0300

    Rename PABCSistem in test suite

commit c2347e604b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Jan 4 14:44:51 2025 +0300

    Примеры - устранил неточности

    LightPT - имя сервера вынес в публичную секцию

commit b68b8da970
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:52:18 2024 +0300

    Примеры Coords1.pas Coords2.pas.pas

commit 8a9788e6f9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 17 15:06:57 2024 +0300

    Перенес проверку set array на уровень парсера

    Немного поправил Intellisense по наведению для NewSet

    По точке там что то другое работает

commit 874ddebad3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 21:00:38 2024 +0300

    Поправил грамматику []

    Теперь нельзя в режиме ## использовать атрибуты

    Зато можно [1,2,3].Print

commit 080fb487e1
Merge: a53dcd9ed a484b0e82
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:24 2024 +0300

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

commit a53dcd9ed2
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Dec 14 15:25:16 2024 +0300

    SF Prm Cmb для строк

commit a484b0e82d
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Dec 12 13:49:17 2024 +0200

    fix (#3231)

commit 6ef11f249c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 11:05:45 2024 +0300

    3.10.2

commit db9679d89f
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 10 10:59:20 2024 +0300

    Закончил превращение синтаксиса [] по умолчанию в массивы

commit 45fdde24b4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 18:08:00 2024 +0100

    #3229

commit 494b47624d
Merge: 5875b9929 7906d73da
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:42:07 2024 +0100

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

commit 5875b99296
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Dec 8 10:41:53 2024 +0100

    platformtarget native - .NET 9.0

commit 7906d73da3
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Dec 3 14:25:37 2024 +0300

    Небольшие изменения в реализации операций с множествами

commit 087591c7b6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 27 11:37:07 2024 +0300

    3.10.1

    Coords - доработки

    Distance, Middle, DrawText с фоном и рамкой. Глобальные переменные настройки

commit d268d4f83b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Nov 21 22:24:07 2024 +0300

    NSToBytes переделал с исключением

commit 2bacdc8c28
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 13:20:33 2024 +0300

    Комментарии к NewSet

commit e917ac8eca
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 20 12:42:15 2024 +0300

    TypeName для set

commit 206289c6a7
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 20:23:03 2024 +0300

    Везде заменил _hs на hs в NewSet

    Убрал вызовы методов расширений NewSet в PABCSystem.pas

    Убрал var в operator +

commit d8262078f6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Nov 19 13:56:47 2024 +0300

    Исправление мелких ошибок NewSet

    Все тесты проходят.

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

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

    Причина - из dll не вызывается конструктор записи без параметров, хотя он определён. В C# вообще у записей не может быть конструктора по умолчанию - наверное потому. Но для NewSet надо бы сделать исключение

commit f8819665ba
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 16 10:56:11 2024 +0300

    NS2

commit 591d9ebe60
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:34:10 2024 +0100

    fix

commit c6505634f4
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 21:12:33 2024 +0100

    fix

commit a6564df23c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Nov 13 20:52:29 2024 +0100

    fix in new sets

commit 03be5bd931
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Nov 13 22:13:41 2024 +0300

    Переставил operator:= в NewSet

commit 96c68f1666
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Nov 12 21:38:07 2024 +0100

    #3223

commit 82776f3c77
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Nov 9 12:18:19 2024 +0300

    NewSet - много мелких исправлений.

    Все тесты проходят кроме Tests 5 - видимо с pabcrtl.dll

commit fbd63efa89
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Nov 3 16:59:48 2024 +0300

    NewSets
    Некоторые тесты надо исправить

commit 746c4ae2c2
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 21:00:42 2024 +0100

    #3221

commit 350d07326d
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:35:51 2024 +0100

    #3221

commit aae9ab408b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Thu Oct 31 18:25:06 2024 +0100

    #3221

commit 1e4a811e04
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:42:59 2024 +0100

    test for #3219

commit d1a1247ecd
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Oct 30 20:24:16 2024 +0100

    #3219

commit 13b3071d80
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Oct 28 22:42:17 2024 +0300

    закомментировал extensions преобразования arr to set. Надеюсь в новой реализации всё исправить

commit 6d5c18f457
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Oct 24 10:17:48 2024 +0300

    SF XLSX.pas

commit 0c773a7ecb
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 16 12:04:33 2024 +0300

    tree.xml с парой новых узлов для Питона

commit 53b3fd0881
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Oct 9 14:09:01 2024 +0300

    Добавил временное преобразование от array of T в set of T

commit 271d5792ce
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 79f9ab73a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Oct 5 15:33:20 2024 +0300

    PT4_32

commit 0a20c8d32c
Author: Sun Serega <sunserega2@gmail.com>
Date:   Thu Sep 26 09:02:31 2024 +0200

    Add `.DistinctBy` (#3122)

commit 11981dbf47
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Sep 25 11:53:02 2024 +0300

    IndexMinBy, IndexMaxBy
    MinBy, MaxBy - более эффективная реализация
    GraphWPF - SaveToClipboard

commit 3eb1d2bd85
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 17:42:09 2024 +0200

    #3197

commit 20edd487e3
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 12:39:03 2024 +0200

    #3204

commit 7261231c9c
Merge: 7debbe702 9ab932977
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Sun Sep 22 09:49:58 2024 +0200

    Merge pull request #3207 from AlexanderZemlyak/fix_linux_version

    Fix linux version

commit 9ab9329771
Author: AlexanderZemlyak <zemlyaksanya@mail.ru>
Date:   Sun Sep 22 10:23:18 2024 +0300

    Add new projects in PascalACBNETLinux.sln

commit 7debbe702a
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 21 14:29:38 2024 +0300

    Критическое обновление LightPT

commit 40335b873e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Sep 20 22:58:46 2024 +0300

    LightPT - OutputListIsClearedFromSpaces := False;
    Coords - DrawLine

commit 078281db17
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 22:42:44 2024 +0300

    coords suite

commit 8d51f999a5
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Thu Sep 19 20:28:28 2024 +0300

    Автоклассы - разрешение наследования от классов без полей

    Модуль Coords

commit 8f7e92d418
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Sep 16 08:25:43 2024 +0300

    Turtle переделал на паттерн Команда

commit a6f6d8a90b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 23:11:54 2024 +0300

    Правки рейтинга в TeacherPlugin

commit 2365eb3633
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Sep 7 15:54:15 2024 +0300

    LinkLabel в TeacherControlPlugin

commit 1835b811ef
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:51:44 2024 +0300

    MathNet Signed

commit b23d6df9e9
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Sep 3 23:16:15 2024 +0300

    MathNet.Numerics.dll

commit 790fba67b8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 27 17:56:09 2024 +0300

    3.10.0

commit 1ec4204fd2
Author: Sun Serega <sunserega2@gmail.com>
Date:   Mon Aug 26 09:20:27 2024 +0300

    `.Batch` cleanup (#3108)

commit b5e674c311
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:12:14 2024 +0300

    3_10_0

commit 7face043cf
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Aug 26 09:11:08 2024 +0300

    ToSet

commit e456ad528e
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 23:13:57 2024 +0300

    3.9.0.3530

commit 3247469e6d
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 22:55:27 2024 +0300

    Добавлен DrawPoints в Turtle

    Исправлена ошибка с отображением подписей в Y-координате

commit 7548142623
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
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 d94885b950
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Aug 24 12:13:09 2024 +0300

    randomElement для строк

    .ToReals - разделителями могут быть пробел табуляция и переход на новую строку

    NumberFormat - функция, возвращающая nfi

commit ae2e26acf8
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Fri Aug 23 19:33:55 2024 +0300

    PT4 - новые dll файлы старых заданий серий A

commit 0f8aa6fa3c
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 17:28:05 2024 +0300

    SetOf как основной синоним HSet

commit db4b53be20
Merge: 86852e0a5 b9fd59a84
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:42 2024 +0300

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

commit 86852e0a59
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 18 16:05:14 2024 +0300

    School - ToBase(number: int64

commit b9fd59a840
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 15:08:44 2024 +0200

    #2830

commit 4f0b0f8ba0
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 14:43:49 2024 +0200

    #3194

commit e3ee0fed4c
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 13:49:30 2024 +0200

    #3097

commit d396c4a9fe
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Tue Aug 13 10:40:23 2024 +0200

    #3178

commit 0d846d2335
Merge: e91e35398 a65a86921
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Mon Aug 12 15:24:11 2024 +0200

    Merge pull request #3170 from samuraiGH/ForeachResolver-rework

    Foreach resolver rework

commit a65a869211
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Aug 12 15:50:42 2024 +0300

    increasing pcu file version

commit e91e353984
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Aug 11 15:21:29 2024 +0300

    Обновленный модуль Turtle.pas

commit c18238df39
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 20:18:57 2024 +0300

    3.9.0.3523

commit 1da2b524a6
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Aug 6 19:34:10 2024 +0300

    School PrimeDivisors

commit 47c61d8b14
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 fc3ab96cae
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 64acde6460
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 18:21:04 2024 +0300

    Сделал возможным неявное приведение некоторого типа к array of T (при описании оператора в виде статической функции класса)

    School - IsPrime(n)

commit 3db5709101
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Wed Jul 31 10:56:18 2024 +0300

    ZipCartesianFuncs.pas

commit c4fd47128b
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Jul 30 22:56:03 2024 +0300

    Zip, Cartesian - сделаны внешние функции до 5 параметров, в т.ч. с проекцией
    Zip, Cartesian - методы расширения дополнены чтобы было как во внешних
    Перегенерирована справка

commit 7d66f26d4f
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Mon Jul 1 00:16:43 2024 +0300

    cleanup and more tests

commit 464dc794a8
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 23:31:28 2024 +0300

    cleanup and more comments

commit 32f126370c
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sun Jun 30 21:35:06 2024 +0300

    attempt to fix GetEnumerator resolving for Pascal types

commit fb3eeeb28b
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 16:26:35 2024 +0300

    fix tests

commit 84b0dfe537
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Sat Jun 29 15:49:13 2024 +0300

    fix getting MethodInfo

commit 5fa4d9fce7
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:45:07 2024 +0300

    cold fix set of T resolving

commit 460ce636ab
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 22:21:06 2024 +0300

    hot fix set of T resolving

commit 83c2f29ac6
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:53:11 2024 +0300

    fix method filtering again

commit c840a1a47a
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 21:32:41 2024 +0300

    fix type recovery

commit 2436627fdd
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 19:18:32 2024 +0300

    fixing method filtering

commit 15a05360a4
Author: samuraiGH <anonimajzer3@mail.ru>
Date:   Fri Jun 28 17:25:39 2024 +0300

    attempt to fix GetEnumerator resolving for compiled types

commit 4fd020d084
Author: samuraiGH <anonimajzer3@mail.ru>
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 <sunserega2@gmail.com>

* 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

---------

Co-authored-by: AlexanderZemlyak <zemlyaksanya@mail.ru>
Co-authored-by: Владислав Крылов <krylov@sfedu.ru>
Co-authored-by: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com>
Co-authored-by: Sun Serega <sunserega2@gmail.com>
2025-06-22 20:56:22 +03:00

2799 lines
138 KiB
C#

//
// 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: ????
// GPLEX input file <SPythonLexer.lex>
// GPLEX frame file <embedded resource>
//
// Option settings: unicode, parser, minimize
// Option settings: classes, compressMap, compressNext, persistBuffer, embedbuffers
// Fallback code page: Target machine default
//
//
// Experimental embedded frame
// Version 1.1.3 of 18-April-2010
//
//
#define BACKUP
#define PERSIST
using System;
using System.IO;
using System.Text;
using System.Globalization;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Diagnostics.CodeAnalysis;
using SPythonParser;
using QUT.Gppg;
using PascalABCCompiler.SyntaxTree;
using PascalABCCompiler.ParserTools;
using SPythonParserYacc;
using SPythonParser;
namespace SPythonParser
{
/// <summary>
/// Summary Canonical example of GPLEX automaton
/// </summary>
#if STANDALONE
//
// These are the dummy declarations for stand-alone GPLEX applications
// normally these declarations would come from the parser.
// If you declare /noparser, or %option noparser then you get this.
//
public enum Tokens
{
EOF = 0, maxParseToken = int.MaxValue
// must have at least these two, values are almost arbitrary
}
public abstract class ScanBase
{
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "yylex")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "yylex")]
public abstract int yylex();
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "yywrap")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "yywrap")]
protected virtual bool yywrap() { return true; }
#if BABEL
protected abstract int CurrentSc { get; set; }
// EolState is the 32-bit of state data persisted at
// the end of each line for Visual Studio colorization.
// The default is to return CurrentSc. You must override
// this if you want more complicated behavior.
public virtual int EolState {
get { return CurrentSc; }
set { CurrentSc = value; }
}
}
public interface IColorScan
{
void SetSource(string source, int offset);
int GetNext(ref int state, out int start, out int end);
#endif // BABEL
}
#endif // STANDALONE
// If the compiler can't find the scanner base class maybe you
// need to run GPPG with the /gplex option, or GPLEX with /noparser
#if BABEL
public sealed partial class Scanner : ScanBase, IColorScan
{
private ScanBuff buffer;
int currentScOrd; // start condition ordinal
protected override int CurrentSc
{
// The current start state is a property
// to try to avoid the user error of setting
// scState but forgetting to update the FSA
// start state "currentStart"
//
get { return currentScOrd; } // i.e. return YY_START;
set { currentScOrd = value; // i.e. BEGIN(value);
currentStart = startState[value]; }
}
#else // BABEL
public sealed partial class Scanner : ScanBase
{
private ScanBuff buffer;
int currentScOrd; // start condition ordinal
#endif // BABEL
/// <summary>
/// The input buffer for this scanner.
/// </summary>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public ScanBuff Buffer { get { return buffer; } }
private static int GetMaxParseToken() {
System.Reflection.FieldInfo f = typeof(Tokens).GetField("maxParseToken");
return (f == null ? int.MaxValue : (int)f.GetValue(null));
}
static int parserMax = GetMaxParseToken();
enum Result {accept, noMatch, contextFound};
const int maxAccept = 65;
const int initial = 66;
const int eofNum = 0;
const int goStart = -1;
const int INITIAL = 0;
#region user code
private SPythonKeywords keywords;
public SPythonParserTools parserTools;
public List<string> Defines = new List<string>();
private int last_line_needed_colon = -1;
private LexLocation currentLexLocation;
private LexLocation prevLexLocation
= new LexLocation(-1, -1, -1, -1, "");
public Scanner(string text, SPythonParserTools parserTools, PascalABCCompiler.Parsers.BaseKeywords keywords, List<string> defines = null)
{
this.parserTools = parserTools;
this.keywords = (SPythonKeywords)keywords;
if (defines != null)
this.Defines.AddRange(defines);
SetSource(text, 0);
}
#endregion user code
int state;
int currentStart = startState[0];
int code; // last code read
int cCol; // column number of code
int lNum; // current line number
//
// The following instance variables are used, among other
// things, for constructing the yylloc location objects.
//
int tokPos; // buffer position at start of token
int tokCol; // zero-based column number at start of token
int tokLin; // line number at start of token
int tokEPos; // buffer position at end of token
int tokECol; // column number at end of token
int tokELin; // line number at end of token
string tokTxt; // lazily constructed text of token
#if STACK
private Stack<int> scStack = new Stack<int>();
#endif // STACK
#region ScannerTables
struct Table {
public int min; public int rng; public int dflt;
public sbyte[] nxt;
public Table(int m, int x, int d, sbyte[] n) {
min = m; rng = x; dflt = d; nxt = n;
}
};
static int[] startState = new int[] {66, 0};
#region TwoLevelCharacterMap
//
// There are 49 equivalence classes
// There are 256 character sequence regions
// There are 47 tables, 12032 entries
//
static sbyte[] mLo0 = new sbyte[256] {
/* '\0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 48, 48, 8, 48, 48,
/* '\x10' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\x20' */ 8, 21, 10, 26, 47, 18, 23, 7, 34, 35, 17, 15, 32, 16, 6, 13,
/* '0' */ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 33, 29, 19, 14, 20, 48,
/* '@' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* 'P' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 30, 9, 31, 25, 2,
/* '`' */ 48, 44, 4, 12, 12, 36, 11, 12, 12, 5, 12, 12, 12, 45, 42, 41,
/* 'p' */ 38, 12, 39, 40, 43, 12, 12, 12, 37, 46, 12, 27, 24, 28, 22, 48,
/* '\x80' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\x90' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\xA0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 48, 48, 48, 48, 48,
/* '\xB0' */ 48, 48, 48, 48, 48, 12, 48, 48, 48, 48, 12, 48, 48, 48, 48, 48,
/* '\xC0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\xD0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\xE0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\xF0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo1 = new sbyte[256] {
/* '\u0100' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0110' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0120' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0130' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0140' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0150' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0160' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0170' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0180' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0190' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u01A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u01B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u01C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u01D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u01E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u01F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo2 = new sbyte[256] {
/* '\u0200' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0210' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0220' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0230' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0240' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0250' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0260' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0270' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0280' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0290' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u02A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u02B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u02C0' */ 12, 12, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u02D0' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u02E0' */ 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 48,
/* '\u02F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo3 = new sbyte[256] {
/* '\u0300' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0310' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0320' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0330' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0340' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0350' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0360' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0370' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 48, 48,
/* '\u0380' */ 48, 48, 48, 48, 48, 48, 12, 48, 12, 12, 12, 48, 12, 48, 12, 12,
/* '\u0390' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u03A0' */ 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u03B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u03C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u03D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u03E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u03F0' */ 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo4 = new sbyte[256] {
/* '\u0400' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0410' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0420' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0430' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0440' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0450' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0460' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0470' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0480' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12,
/* '\u0490' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u04A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u04B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u04C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u04D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u04E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u04F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo5 = new sbyte[256] {
/* '\u0500' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0510' */ 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0520' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0530' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0540' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0550' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 12, 48, 48, 48, 48, 48, 48,
/* '\u0560' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0570' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0580' */ 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0590' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u05A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u05B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u05C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u05D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u05E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u05F0' */ 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo6 = new sbyte[256] {
/* '\u0600' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0610' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0620' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0630' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u0640' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u0650' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0660' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12,
/* '\u0670' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0680' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0690' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u06A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u06B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u06C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u06D0' */ 12, 12, 12, 12, 48, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u06E0' */ 48, 48, 48, 48, 48, 12, 12, 48, 48, 48, 48, 48, 48, 48, 12, 12,
/* '\u06F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 48, 48, 12 };
static sbyte[] mLo7 = new sbyte[256] {
/* '\u0700' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0710' */ 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0720' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0730' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0740' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12,
/* '\u0750' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0760' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\u0770' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0780' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0790' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u07A0' */ 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u07B0' */ 48, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u07C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12,
/* '\u07D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u07E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u07F0' */ 48, 48, 48, 48, 12, 12, 48, 48, 48, 48, 12, 48, 48, 48, 48, 48 };
static sbyte[] mLo8 = new sbyte[256] {
/* '\u0800' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0810' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0820' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0830' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0840' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0850' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0860' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0870' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0880' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0890' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u08A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u08B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u08C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u08D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u08E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u08F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo9 = new sbyte[256] {
/* '\u0900' */ 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0910' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0920' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0930' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 12, 48, 48,
/* '\u0940' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0950' */ 12, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0960' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0970' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 12,
/* '\u0980' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 12,
/* '\u0990' */ 12, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u09A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u09B0' */ 12, 48, 12, 48, 48, 48, 12, 12, 12, 12, 48, 48, 48, 12, 48, 48,
/* '\u09C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 48,
/* '\u09D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 48, 12,
/* '\u09E0' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u09F0' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo10 = new sbyte[256] {
/* '\u0A00' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 12,
/* '\u0A10' */ 12, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0A20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u0A30' */ 12, 48, 12, 12, 48, 12, 12, 48, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\u0A40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0A50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 48, 12, 48,
/* '\u0A60' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0A70' */ 48, 48, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0A80' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12,
/* '\u0A90' */ 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0AA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u0AB0' */ 12, 48, 12, 12, 48, 12, 12, 12, 12, 12, 48, 48, 48, 12, 48, 48,
/* '\u0AC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0AD0' */ 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0AE0' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0AF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo11 = new sbyte[256] {
/* '\u0B00' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 12,
/* '\u0B10' */ 12, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0B20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u0B30' */ 12, 48, 12, 12, 48, 12, 12, 12, 12, 12, 48, 48, 48, 12, 48, 48,
/* '\u0B40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0B50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 48, 12,
/* '\u0B60' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0B70' */ 48, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0B80' */ 48, 48, 48, 12, 48, 12, 12, 12, 12, 12, 12, 48, 48, 48, 12, 12,
/* '\u0B90' */ 12, 48, 12, 12, 12, 12, 48, 48, 48, 12, 12, 48, 12, 48, 12, 12,
/* '\u0BA0' */ 48, 48, 48, 12, 12, 48, 48, 48, 12, 12, 12, 48, 48, 48, 12, 12,
/* '\u0BB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\u0BC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0BD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0BE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0BF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo12 = new sbyte[256] {
/* '\u0C00' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\u0C10' */ 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0C20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u0C30' */ 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\u0C40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0C50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0C60' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0C70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0C80' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\u0C90' */ 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0CA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u0CB0' */ 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 48, 48, 48, 12, 48, 48,
/* '\u0CC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0CD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 48,
/* '\u0CE0' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0CF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo13 = new sbyte[256] {
/* '\u0D00' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\u0D10' */ 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0D20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\u0D30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\u0D40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0D50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0D60' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0D70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0D80' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0D90' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 12, 12, 12, 12, 12, 12,
/* '\u0DA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0DB0' */ 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 48, 48,
/* '\u0DC0' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0DD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0DE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0DF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo14 = new sbyte[256] {
/* '\u0E00' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0E10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0E20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0E30' */ 12, 48, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0E40' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0E50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0E60' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0E70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0E80' */ 48, 12, 12, 48, 12, 48, 48, 12, 12, 48, 12, 48, 48, 12, 48, 48,
/* '\u0E90' */ 48, 48, 48, 48, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12,
/* '\u0EA0' */ 48, 12, 12, 12, 48, 12, 48, 12, 48, 48, 12, 12, 48, 12, 12, 12,
/* '\u0EB0' */ 12, 48, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 48, 48,
/* '\u0EC0' */ 12, 12, 12, 12, 12, 48, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0ED0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 48, 48,
/* '\u0EE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0EF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo15 = new sbyte[256] {
/* '\u0F00' */ 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0F10' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0F20' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0F30' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0F40' */ 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12,
/* '\u0F50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u0F60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u0F70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0F80' */ 48, 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 48, 48, 48, 48,
/* '\u0F90' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0FA0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0FB0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0FC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0FD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0FE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u0FF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo16 = new sbyte[256] {
/* '\u1000' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1010' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1020' */ 12, 12, 48, 12, 12, 12, 12, 12, 48, 12, 12, 48, 48, 48, 48, 48,
/* '\u1030' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1040' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1050' */ 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1060' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1070' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1080' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1090' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u10A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u10B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u10C0' */ 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u10D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u10E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u10F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 48, 48, 48 };
static sbyte[] mLo17 = new sbyte[256] {
/* '\u1100' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1110' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1120' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1130' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1140' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1150' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 12,
/* '\u1160' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1170' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1180' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1190' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u11A0' */ 12, 12, 12, 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u11B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u11C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u11D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u11E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u11F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo18 = new sbyte[256] {
/* '\u1200' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1210' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1220' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1230' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1240' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 48, 48,
/* '\u1250' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 48, 12, 12, 12, 12, 48, 48,
/* '\u1260' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1270' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1280' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 48, 48,
/* '\u1290' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u12A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u12B0' */ 12, 48, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u12C0' */ 12, 48, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u12D0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u12E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u12F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo19 = new sbyte[256] {
/* '\u1300' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1310' */ 12, 48, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1320' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1330' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1340' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1350' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u1360' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1370' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1380' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1390' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u13A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u13B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u13C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u13D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u13E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u13F0' */ 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo20 = new sbyte[256] {
/* '\u1400' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1410' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1420' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1430' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1440' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1450' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1460' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1470' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1480' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1490' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u14A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u14B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u14C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u14D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u14E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u14F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo22 = new sbyte[256] {
/* '\u1600' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1610' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1620' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1630' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1640' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1650' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1660' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 12,
/* '\u1670' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1680' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1690' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u16A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u16B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u16C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u16D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u16E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\u16F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo23 = new sbyte[256] {
/* '\u1700' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\u1710' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1720' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1730' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1740' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1750' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1760' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\u1770' */ 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1780' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1790' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u17A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u17B0' */ 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u17C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u17D0' */ 48, 48, 48, 48, 48, 48, 48, 12, 48, 48, 48, 48, 12, 48, 48, 48,
/* '\u17E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u17F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo24 = new sbyte[256] {
/* '\u1800' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1810' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1820' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1830' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1840' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1850' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1860' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1870' */ 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1880' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1890' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u18A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48,
/* '\u18B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u18C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u18D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u18E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u18F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo25 = new sbyte[256] {
/* '\u1900' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1910' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48,
/* '\u1920' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1930' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1940' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1950' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1960' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\u1970' */ 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1980' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1990' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u19A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\u19B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u19C0' */ 48, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u19D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u19E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u19F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo26 = new sbyte[256] {
/* '\u1A00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1A10' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A20' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A30' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A60' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A80' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1A90' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1AA0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1AB0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1AC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1AD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1AE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1AF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo27 = new sbyte[256] {
/* '\u1B00' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1B10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1B20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1B30' */ 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1B40' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48,
/* '\u1B50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1B60' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1B70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1B80' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1B90' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1BA0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1BB0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1BC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1BD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1BE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1BF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo29 = new sbyte[256] {
/* '\u1D00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1D90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1DA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1DB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1DC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1DD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1DE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u1DF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo30 = new sbyte[256] {
/* '\u1E00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1E90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48,
/* '\u1EA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1EB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1EC0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1ED0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1EE0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1EF0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo31 = new sbyte[256] {
/* '\u1F00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1F10' */ 12, 12, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\u1F20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1F30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1F40' */ 12, 12, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\u1F50' */ 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 48, 12, 48, 12, 48, 12,
/* '\u1F60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1F70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\u1F80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1F90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1FA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u1FB0' */ 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48, 12, 48,
/* '\u1FC0' */ 48, 48, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48,
/* '\u1FD0' */ 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48,
/* '\u1FE0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48,
/* '\u1FF0' */ 48, 48, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48 };
static sbyte[] mLo32 = new sbyte[256] {
/* '\u2000' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2010' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2020' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2030' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2040' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2050' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2060' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2070' */ 48, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12,
/* '\u2080' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2090' */ 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u20A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u20B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u20C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u20D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u20E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u20F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo33 = new sbyte[256] {
/* '\u2100' */ 48, 48, 12, 48, 48, 48, 48, 12, 48, 48, 12, 12, 12, 12, 12, 12,
/* '\u2110' */ 12, 12, 12, 12, 48, 12, 48, 48, 48, 12, 12, 12, 12, 12, 48, 48,
/* '\u2120' */ 48, 48, 48, 48, 12, 48, 12, 48, 12, 48, 12, 12, 12, 12, 48, 12,
/* '\u2130' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12,
/* '\u2140' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 48, 48, 48, 48, 12, 48,
/* '\u2150' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2160' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2170' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2180' */ 48, 48, 48, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2190' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u21A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u21B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u21C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u21D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u21E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u21F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo44 = new sbyte[256] {
/* '\u2C00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2C10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2C20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u2C30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2C40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2C50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u2C60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48,
/* '\u2C70' */ 48, 48, 48, 48, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2C80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2C90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2CA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2CB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2CC0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2CD0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2CE0' */ 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2CF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo45 = new sbyte[256] {
/* '\u2D00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2D10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2D20' */ 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2D30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2D40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2D50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2D60' */ 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 12,
/* '\u2D70' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2D80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u2D90' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2DA0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u2DB0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u2DC0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u2DD0' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u2DE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u2DF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo48 = new sbyte[256] {
/* '\u3000' */ 48, 48, 48, 48, 48, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u3010' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u3020' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u3030' */ 48, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 12, 12, 48, 48, 48,
/* '\u3040' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3050' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3060' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3070' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3080' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3090' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 12, 12, 12,
/* '\u30A0' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u30B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u30C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u30D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u30E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u30F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12 };
static sbyte[] mLo49 = new sbyte[256] {
/* '\u3100' */ 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3110' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3120' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48,
/* '\u3130' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3140' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3150' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3160' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3170' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u3180' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\u3190' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u31A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u31B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u31C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u31D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u31E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u31F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo77 = new sbyte[256] {
/* '\u4D00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4D90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4DA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u4DB0' */ 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u4DC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u4DD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u4DE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u4DF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo159 = new sbyte[256] {
/* '\u9F00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9F90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9FA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\u9FB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48,
/* '\u9FC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u9FD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u9FE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\u9FF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo164 = new sbyte[256] {
/* '\uA400' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA410' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA420' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA430' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA440' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA450' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA460' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA470' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA480' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48,
/* '\uA490' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA4A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA4B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA4C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA4D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA4E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA4F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo167 = new sbyte[256] {
/* '\uA700' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA710' */ 48, 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\uA720' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA730' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA740' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA750' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA760' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA770' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA780' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA790' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA7A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA7B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA7C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA7D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA7E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA7F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo168 = new sbyte[256] {
/* '\uA800' */ 12, 12, 48, 12, 12, 12, 48, 12, 12, 12, 12, 48, 12, 12, 12, 12,
/* '\uA810' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA820' */ 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA830' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA840' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA850' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA860' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uA870' */ 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA880' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA890' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA8A0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA8B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA8C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA8D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA8E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uA8F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo215 = new sbyte[256] {
/* '\uD700' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD710' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD720' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD730' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD740' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD750' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD760' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD770' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD780' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD790' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uD7A0' */ 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uD7B0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uD7C0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uD7D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uD7E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uD7F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo250 = new sbyte[256] {
/* '\uFA00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\uFA30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA40' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\uFA70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFA90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFAA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFAB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFAC0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFAD0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\uFAE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFAF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mLo251 = new sbyte[256] {
/* '\uFB00' */ 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFB10' */ 48, 48, 48, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 12, 48, 12,
/* '\uFB20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\uFB30' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 48, 12, 48,
/* '\uFB40' */ 12, 12, 48, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFB50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFB60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFB70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFB80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFB90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFBA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFBB0' */ 12, 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFBC0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFBD0' */ 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFBE0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFBF0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mLo253 = new sbyte[256] {
/* '\uFD00' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD10' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\uFD40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFD50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD60' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFD90' */ 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFDA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFDB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFDC0' */ 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFDD0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFDE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFDF0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48 };
static sbyte[] mLo254 = new sbyte[256] {
/* '\uFE00' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE10' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE20' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE30' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE40' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE50' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE60' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFE70' */ 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFE80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFE90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFEA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFEB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFEC0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFED0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFEE0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFEF0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48 };
static sbyte[] mLo255 = new sbyte[256] {
/* '\uFF00' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFF10' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFF20' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFF30' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\uFF40' */ 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFF50' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48,
/* '\uFF60' */ 48, 48, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFF70' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFF80' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFF90' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFFA0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\uFFB0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\uFFC0' */ 48, 48, 12, 12, 12, 12, 12, 12, 48, 48, 12, 12, 12, 12, 12, 12,
/* '\uFFD0' */ 48, 48, 12, 12, 12, 12, 12, 12, 48, 48, 12, 12, 12, 48, 48, 48,
/* '\uFFE0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\uFFF0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[][] map = new sbyte[256][] {
/* '\u00xx' */ mLo0, mLo1, mLo2, mLo3, mLo4, mLo5, mLo6, mLo7, mLo8, mLo9, mLo10, mLo11, mLo12, mLo13, mLo14, mLo15,
/* '\u10xx' */ mLo16, mLo17, mLo18, mLo19, mLo20, mLo1, mLo22, mLo23, mLo24, mLo25, mLo26, mLo27, mLo8, mLo29, mLo30, mLo31,
/* '\u20xx' */ mLo32, mLo33, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo44, mLo45, mLo8, mLo8,
/* '\u30xx' */ mLo48, mLo49, mLo8, mLo8, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\u40xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo77, mLo1, mLo1,
/* '\u50xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\u60xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\u70xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\u80xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\u90xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo159,
/* '\uA0xx' */ mLo1, mLo1, mLo1, mLo1, mLo164, mLo8, mLo8, mLo167, mLo168, mLo8, mLo8, mLo8, mLo1, mLo1, mLo1, mLo1,
/* '\uB0xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\uC0xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1,
/* '\uD0xx' */ mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo1, mLo215, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8,
/* '\uE0xx' */ mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8,
/* '\uF0xx' */ mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo8, mLo1, mLo250, mLo251, mLo1, mLo253, mLo254, mLo255};
#endregion
#region CompressedCharacterMap
//
// There are 49 equivalence classes
// There are 21 character sequence regions
// There are 6 tables, 1255 entries
// There are 15 runs, 0 singletons
// Decision tree depth is 5
//
static sbyte[] mapC0 = new sbyte[251] {
/* '\U00010000' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12,
/* '\U00010010' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010020' */ 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010030' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 48, 12,
/* '\U00010040' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\U00010050' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\U00010060' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010070' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010080' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010090' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000100A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000100B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000100C0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000100D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000100E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000100F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 };
static sbyte[] mapC2 = new sbyte[256] {
/* '\U00010300' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010310' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\U00010320' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010330' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010340' */ 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48, 48, 48, 48, 48,
/* '\U00010350' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010360' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010370' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010380' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010390' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 48,
/* '\U000103A0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000103B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000103C0' */ 12, 12, 12, 12, 48, 48, 48, 48, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U000103D0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U000103E0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U000103F0' */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 };
static sbyte[] mapC5 = new sbyte[64] {
/* '\U00010800' */ 12, 12, 12, 12, 12, 12, 48, 48, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\U00010810' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010820' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010830' */ 12, 12, 12, 12, 12, 12, 48, 12, 12, 48, 48, 48, 12, 48, 48, 12 };
static sbyte[] mapC9 = new sbyte[52] {
/* '\U00010A00' */ 12, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* '\U00010A10' */ 12, 12, 12, 12, 48, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010A20' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U00010A30' */ 12, 12, 12, 12 };
static sbyte[] mapC13 = new sbyte[338] {
/* '\U0001D400' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D410' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D420' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D430' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D440' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D450' */ 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D460' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D470' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D480' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D490' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\U0001D4A0' */ 48, 48, 12, 48, 48, 12, 12, 48, 48, 12, 12, 12, 12, 48, 12, 12,
/* '\U0001D4B0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 48, 12, 12, 12,
/* '\U0001D4C0' */ 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D4D0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D4E0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D4F0' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D500' */ 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 48, 48, 12, 12, 12,
/* '\U0001D510' */ 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\U0001D520' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D530' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 48,
/* '\U0001D540' */ 12, 12, 12, 12, 12, 48, 12, 48, 48, 48, 12, 12, 12, 12, 12, 12,
/* '\U0001D550' */ 12, 48 };
static sbyte[] mapC15 = new sbyte[294] {
/* '\U0001D6A6' */ 48, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D6B6' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12,
/* '\U0001D6C6' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D6D6' */ 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D6E6' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D6F6' */ 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D706' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\U0001D716' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D726' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48,
/* '\U0001D736' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D746' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\U0001D756' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D766' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12, 12, 12, 12, 12,
/* '\U0001D776' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D786' */ 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D796' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D7A6' */ 12, 12, 12, 48, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
/* '\U0001D7B6' */ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 48, 12, 12,
/* '\U0001D7C6' */ 12, 12, 12, 12, 12, 12 };
static sbyte MapC(int code)
{ // '\U00010000' <= code <= '\U0010FFFF'
if (code < 68148) // '\U00010000' <= code <= '\U00010A33'
if (code < 67584) // '\U00010000' <= code <= '\U000107FF'
if (code < 66304) // '\U00010000' <= code <= '\U000102FF'
if (code < 65787) // '\U00010000' <= code <= '\U000100FA'
return mapC0[code - 65536];
else // '\U000100FB' <= code <= '\U000102FF'
return (sbyte)48;
else // '\U00010300' <= code <= '\U000107FF'
if (code < 66560) // '\U00010300' <= code <= '\U000103FF'
return mapC2[code - 66304];
else // '\U00010400' <= code <= '\U000107FF'
if (code < 66718) // '\U00010400' <= code <= '\U0001049D'
return (sbyte)12;
else // '\U0001049E' <= code <= '\U000107FF'
return (sbyte)48;
else // '\U00010800' <= code <= '\U00010A33'
if (code < 67840) // '\U00010800' <= code <= '\U000108FF'
if (code < 67648) // '\U00010800' <= code <= '\U0001083F'
return mapC5[code - 67584];
else // '\U00010840' <= code <= '\U000108FF'
return (sbyte)48;
else // '\U00010900' <= code <= '\U00010A33'
if (code < 67862) // '\U00010900' <= code <= '\U00010915'
return (sbyte)12;
else // '\U00010916' <= code <= '\U00010A33'
if (code < 68096) // '\U00010916' <= code <= '\U000109FF'
return (sbyte)48;
else // '\U00010A00' <= code <= '\U00010A33'
return mapC9[code - 68096];
else // '\U00010A34' <= code <= '\U0010FFFF'
if (code < 120486) // '\U00010A34' <= code <= '\U0001D6A5'
if (code < 74607) // '\U00010A34' <= code <= '\U0001236E'
if (code < 73728) // '\U00010A34' <= code <= '\U00011FFF'
return (sbyte)48;
else // '\U00012000' <= code <= '\U0001236E'
return (sbyte)12;
else // '\U0001236F' <= code <= '\U0001D6A5'
if (code < 119808) // '\U0001236F' <= code <= '\U0001D3FF'
return (sbyte)48;
else // '\U0001D400' <= code <= '\U0001D6A5'
if (code < 120146) // '\U0001D400' <= code <= '\U0001D551'
return mapC13[code - 119808];
else // '\U0001D552' <= code <= '\U0001D6A5'
return (sbyte)12;
else // '\U0001D6A6' <= code <= '\U0010FFFF'
if (code < 173783) // '\U0001D6A6' <= code <= '\U0002A6D6'
if (code < 120780) // '\U0001D6A6' <= code <= '\U0001D7CB'
return mapC15[code - 120486];
else // '\U0001D7CC' <= code <= '\U0002A6D6'
if (code < 131072) // '\U0001D7CC' <= code <= '\U0001FFFF'
return (sbyte)48;
else // '\U00020000' <= code <= '\U0002A6D6'
return (sbyte)12;
else // '\U0002A6D7' <= code <= '\U0010FFFF'
if (code < 194560) // '\U0002A6D7' <= code <= '\U0002F7FF'
return (sbyte)48;
else // '\U0002F800' <= code <= '\U0010FFFF'
if (code < 195102) // '\U0002F800' <= code <= '\U0002FA1D'
return (sbyte)12;
else // '\U0002FA1E' <= code <= '\U0010FFFF'
return (sbyte)48;
}
#endregion
static sbyte Map(int code)
{
if (code <= 65535)
return map[code / 256][code % 256];
else
return MapC(code);
}
static Table[] NxS = new Table[104] {
/* NxS[ 0] */ new Table(0, 0, 0, null),
/* NxS[ 1] */ new Table(1, 6, -1, new sbyte[] {1, 103, 1, 102, -1, 64}),
/* NxS[ 2] */ new Table(36, 26, -1, new sbyte[] {2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, -1, -1, -1, 2, 2, 2, 2, 2, -1, -1, -1,
-1, -1, 2, 2}),
/* NxS[ 3] */ new Table(4, 3, -1, new sbyte[] {102, -1, 64}),
/* NxS[ 4] */ new Table(1, 3, -1, new sbyte[] {62, -1, 63}),
/* NxS[ 5] */ new Table(0, 10, 99, new sbyte[] {-1, 99, 99, 99, 99, 99,
99, 61, 99, 100}),
/* NxS[ 6] */ new Table(0, 0, -1, null),
/* NxS[ 7] */ new Table(0, 11, 97, new sbyte[] {-1, 97, 97, 97, 97, 97,
97, 97, 97, 98, 61}),
/* NxS[ 8] */ new Table(36, 26, -1, new sbyte[] {2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, -1, -1, -1, 2, 2, 2, 2, 2, -1, 93, -1,
-1, 94, 2, 2}),
/* NxS[ 9] */ new Table(13, 2, -1, new sbyte[] {57, 58}),
/* NxS[ 10] */ new Table(14, 1, -1, new sbyte[] {56}),
/* NxS[ 11] */ new Table(14, 1, -1, new sbyte[] {55}),
/* NxS[ 12] */ new Table(14, 7, -1, new sbyte[] {53, -1, -1, -1, -1, -1,
54}),
/* NxS[ 13] */ new Table(14, 4, -1, new sbyte[] {51, -1, -1, 52}),
/* NxS[ 14] */ new Table(0, 0, -1, null),
/* NxS[ 15] */ new Table(14, 6, -1, new sbyte[] {45, -1, -1, -1, -1, 46}),
/* NxS[ 16] */ new Table(14, 7, -1, new sbyte[] {42, -1, -1, -1, -1, -1,
43}),
/* NxS[ 17] */ new Table(14, 1, -1, new sbyte[] {41}),
/* NxS[ 18] */ new Table(0, 0, -1, null),
/* NxS[ 19] */ new Table(14, 1, -1, new sbyte[] {40}),
/* NxS[ 20] */ new Table(14, 1, -1, new sbyte[] {39}),
/* NxS[ 21] */ new Table(14, 1, -1, new sbyte[] {38}),
/* NxS[ 22] */ new Table(47, 32, -1, new sbyte[] {37, -1, -1, -1, -1, -1,
32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 33, -1, -1, -1, -1, -1, 34, 35, 36}),
/* NxS[ 23] */ new Table(0, 0, -1, null),
/* NxS[ 24] */ new Table(0, 0, -1, null),
/* NxS[ 25] */ new Table(0, 0, -1, null),
/* NxS[ 26] */ new Table(0, 0, -1, null),
/* NxS[ 27] */ new Table(0, 0, -1, null),
/* NxS[ 28] */ new Table(0, 0, -1, null),
/* NxS[ 29] */ new Table(0, 0, -1, null),
/* NxS[ 30] */ new Table(0, 0, -1, null),
/* NxS[ 31] */ new Table(0, 0, -1, null),
/* NxS[ 32] */ new Table(0, 0, -1, null),
/* NxS[ 33] */ new Table(0, 0, -1, null),
/* NxS[ 34] */ new Table(0, 0, -1, null),
/* NxS[ 35] */ new Table(0, 0, -1, null),
/* NxS[ 36] */ new Table(0, 0, -1, null),
/* NxS[ 37] */ new Table(0, 0, -1, null),
/* NxS[ 38] */ new Table(0, 0, -1, null),
/* NxS[ 39] */ new Table(0, 0, -1, null),
/* NxS[ 40] */ new Table(0, 0, -1, null),
/* NxS[ 41] */ new Table(0, 0, -1, null),
/* NxS[ 42] */ new Table(0, 0, -1, null),
/* NxS[ 43] */ new Table(14, 1, -1, new sbyte[] {44}),
/* NxS[ 44] */ new Table(0, 0, -1, null),
/* NxS[ 45] */ new Table(0, 0, -1, null),
/* NxS[ 46] */ new Table(36, 28, -1, new sbyte[] {67, -1, -1, -1, 68, -1,
-1, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 47}),
/* NxS[ 47] */ new Table(0, 0, -1, null),
/* NxS[ 48] */ new Table(0, 0, -1, null),
/* NxS[ 49] */ new Table(0, 0, -1, null),
/* NxS[ 50] */ new Table(0, 0, -1, null),
/* NxS[ 51] */ new Table(0, 0, -1, null),
/* NxS[ 52] */ new Table(0, 0, -1, null),
/* NxS[ 53] */ new Table(0, 0, -1, null),
/* NxS[ 54] */ new Table(0, 0, -1, null),
/* NxS[ 55] */ new Table(0, 0, -1, null),
/* NxS[ 56] */ new Table(0, 0, -1, null),
/* NxS[ 57] */ new Table(14, 1, -1, new sbyte[] {59}),
/* NxS[ 58] */ new Table(0, 0, -1, null),
/* NxS[ 59] */ new Table(0, 0, -1, null),
/* NxS[ 60] */ new Table(0, 0, -1, null),
/* NxS[ 61] */ new Table(0, 0, -1, null),
/* NxS[ 62] */ new Table(1, 3, -1, new sbyte[] {62, 101, 62}),
/* NxS[ 63] */ new Table(0, 0, -1, null),
/* NxS[ 64] */ new Table(1, 3, -1, new sbyte[] {62, -1, 63}),
/* NxS[ 65] */ new Table(0, 0, -1, null),
/* NxS[ 66] */ new Table(47, 38, 2, new sbyte[] {6, 6, -1, 1, 2, 3,
2, 2, 4, 5, -1, 6, 7, 8, 2, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}),
/* NxS[ 67] */ new Table(37, 1, -1, new sbyte[] {83}),
/* NxS[ 68] */ new Table(43, 1, -1, new sbyte[] {74}),
/* NxS[ 69] */ new Table(46, 1, -1, new sbyte[] {70}),
/* NxS[ 70] */ new Table(38, 1, -1, new sbyte[] {71}),
/* NxS[ 71] */ new Table(36, 1, -1, new sbyte[] {72}),
/* NxS[ 72] */ new Table(20, 1, -1, new sbyte[] {73}),
/* NxS[ 73] */ new Table(20, 1, -1, new sbyte[] {48}),
/* NxS[ 74] */ new Table(44, 1, -1, new sbyte[] {75}),
/* NxS[ 75] */ new Table(43, 1, -1, new sbyte[] {76}),
/* NxS[ 76] */ new Table(36, 1, -1, new sbyte[] {77}),
/* NxS[ 77] */ new Table(45, 1, -1, new sbyte[] {78}),
/* NxS[ 78] */ new Table(36, 1, -1, new sbyte[] {79}),
/* NxS[ 79] */ new Table(42, 1, -1, new sbyte[] {80}),
/* NxS[ 80] */ new Table(43, 1, -1, new sbyte[] {81}),
/* NxS[ 81] */ new Table(20, 1, -1, new sbyte[] {82}),
/* NxS[ 82] */ new Table(20, 1, -1, new sbyte[] {49}),
/* NxS[ 83] */ new Table(38, 1, -1, new sbyte[] {84}),
/* NxS[ 84] */ new Table(39, 1, -1, new sbyte[] {85}),
/* NxS[ 85] */ new Table(36, 1, -1, new sbyte[] {86}),
/* NxS[ 86] */ new Table(40, 1, -1, new sbyte[] {87}),
/* NxS[ 87] */ new Table(40, 1, -1, new sbyte[] {88}),
/* NxS[ 88] */ new Table(5, 1, -1, new sbyte[] {89}),
/* NxS[ 89] */ new Table(41, 1, -1, new sbyte[] {90}),
/* NxS[ 90] */ new Table(42, 1, -1, new sbyte[] {91}),
/* NxS[ 91] */ new Table(20, 1, -1, new sbyte[] {92}),
/* NxS[ 92] */ new Table(20, 1, -1, new sbyte[] {50}),
/* NxS[ 93] */ new Table(0, 10, 93, new sbyte[] {-1, 93, 93, 93, 93, 93,
93, 60, 93, 96}),
/* NxS[ 94] */ new Table(0, 11, 94, new sbyte[] {-1, 94, 94, 94, 94, 94,
94, 94, 94, 95, 60}),
/* NxS[ 95] */ new Table(0, 1, 94, new sbyte[] {-1}),
/* NxS[ 96] */ new Table(0, 1, 93, new sbyte[] {-1}),
/* NxS[ 97] */ new Table(0, 11, 97, new sbyte[] {-1, 97, 97, 97, 97, 97,
97, 97, 97, 98, 61}),
/* NxS[ 98] */ new Table(0, 1, 97, new sbyte[] {-1}),
/* NxS[ 99] */ new Table(0, 10, 99, new sbyte[] {-1, 99, 99, 99, 99, 99,
99, 61, 99, 100}),
/* NxS[ 100] */ new Table(0, 1, 99, new sbyte[] {-1}),
/* NxS[ 101] */ new Table(1, 3, -1, new sbyte[] {62, -1, 62}),
/* NxS[ 102] */ new Table(5, 1, -1, new sbyte[] {65}),
/* NxS[ 103] */ new Table(1, 3, -1, new sbyte[] {1, -1, 1}),
};
int NextState() {
if (code == ScanBuff.EndOfFile)
return eofNum;
else
unchecked {
int rslt;
int idx = Map(code) - NxS[state].min;
if (idx < 0) idx += 49;
if ((uint)idx >= (uint)NxS[state].rng) rslt = NxS[state].dflt;
else rslt = NxS[state].nxt[idx];
return rslt;
}
}
#endregion
#if BACKUP
// ==============================================================
// == Nested struct used for backup in automata that do backup ==
// ==============================================================
struct Context // class used for automaton backup.
{
public int bPos;
public int rPos; // scanner.readPos saved value
public int cCol;
public int lNum; // Need this in case of backup over EOL.
public int state;
public int cChr;
}
private Context ctx = new Context();
#endif // BACKUP
// ==============================================================
// ==== Nested struct to support input switching in scanners ====
// ==============================================================
struct BufferContext {
internal ScanBuff buffSv;
internal int chrSv;
internal int cColSv;
internal int lNumSv;
}
// ==============================================================
// ===== Private methods to save and restore buffer contexts ====
// ==============================================================
/// <summary>
/// This method creates a buffer context record from
/// the current buffer object, together with some
/// scanner state values.
/// </summary>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
BufferContext MkBuffCtx()
{
BufferContext rslt;
rslt.buffSv = this.buffer;
rslt.chrSv = this.code;
rslt.cColSv = this.cCol;
rslt.lNumSv = this.lNum;
return rslt;
}
/// <summary>
/// This method restores the buffer value and allied
/// scanner state from the given context record value.
/// </summary>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
void RestoreBuffCtx(BufferContext value)
{
this.buffer = value.buffSv;
this.code = value.chrSv;
this.cCol = value.cColSv;
this.lNum = value.lNumSv;
}
// =================== End Nested classes =======================
#if !NOFILES
public Scanner(Stream file) {
SetSource(file, 0); // unicode option
}
public Scanner(Stream file, string codepage) {
SetSource(file, CodePageHandling.GetCodePage(codepage));
}
#endif // !NOFILES
public Scanner() { }
private int readPos;
void GetCode()
{
if (code == '\n') // This needs to be fixed for other conventions
// i.e. [\r\n\205\u2028\u2029]
{
cCol = -1;
lNum++;
}
readPos = buffer.Pos;
// Now read new codepoint.
code = buffer.Read();
if (code > ScanBuff.EndOfFile)
{
#if (!BYTEMODE)
if (code >= 0xD800 && code <= 0xDBFF)
{
int next = buffer.Read();
if (next < 0xDC00 || next > 0xDFFF)
code = ScanBuff.UnicodeReplacementChar;
else
code = (0x10000 + (code & 0x3FF << 10) + (next & 0x3FF));
}
#endif
cCol++;
}
}
void MarkToken()
{
#if (!PERSIST)
buffer.Mark();
#endif
tokPos = readPos;
tokLin = lNum;
tokCol = cCol;
}
void MarkEnd()
{
tokTxt = null;
tokEPos = readPos;
tokELin = lNum;
tokECol = cCol;
}
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
int Peek()
{
int rslt, codeSv = code, cColSv = cCol, lNumSv = lNum, bPosSv = buffer.Pos;
GetCode(); rslt = code;
lNum = lNumSv; cCol = cColSv; code = codeSv; buffer.Pos = bPosSv;
return rslt;
}
// ==============================================================
// ===== Initialization of string-based input buffers ====
// ==============================================================
/// <summary>
/// Create and initialize a StringBuff buffer object for this scanner
/// </summary>
/// <param name="source">the input string</param>
/// <param name="offset">starting offset in the string</param>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void SetSource(string source, int offset)
{
this.buffer = ScanBuff.GetBuffer(source);
this.buffer.Pos = offset;
this.lNum = 0;
this.code = '\n'; // to initialize yyline, yycol and lineStart
GetCode();
}
#if !NOFILES
// ================ LineBuffer Initialization ===================
/// <summary>
/// Create and initialize a LineBuff buffer object for this scanner
/// </summary>
/// <param name="source">the list of input strings</param>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void SetSource(IList<string> source)
{
this.buffer = ScanBuff.GetBuffer(source);
this.code = '\n'; // to initialize yyline, yycol and lineStart
this.lNum = 0;
GetCode();
}
// =============== StreamBuffer Initialization ==================
/// <summary>
/// Create and initialize a StreamBuff buffer object for this scanner.
/// StreamBuff is buffer for 8-bit byte files.
/// </summary>
/// <param name="source">the input byte stream</param>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void SetSource(Stream source)
{
this.buffer = ScanBuff.GetBuffer(source);
this.lNum = 0;
this.code = '\n'; // to initialize yyline, yycol and lineStart
GetCode();
}
#if !BYTEMODE
// ================ TextBuffer Initialization ===================
/// <summary>
/// Create and initialize a TextBuff buffer object for this scanner.
/// TextBuff is a buffer for encoded unicode files.
/// </summary>
/// <param name="source">the input text file</param>
/// <param name="fallbackCodePage">Code page to use if file has
/// no BOM. For 0, use machine default; for -1, 8-bit binary</param>
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void SetSource(Stream source, int fallbackCodePage)
{
this.buffer = ScanBuff.GetBuffer(source, fallbackCodePage);
this.lNum = 0;
this.code = '\n'; // to initialize yyline, yycol and lineStart
GetCode();
}
#endif // !BYTEMODE
#endif // !NOFILES
// ==============================================================
#if BABEL
//
// Get the next token for Visual Studio
//
// "state" is the inout mode variable that maintains scanner
// state between calls, using the EolState property. In principle,
// if the calls of EolState are costly set could be called once
// only per line, at the start; and get called only at the end
// of the line. This needs more infrastructure ...
//
public int GetNext(ref int state, out int start, out int end)
{
Tokens next;
int s, e;
s = state; // state at start
EolState = state;
next = (Tokens)Scan();
state = EolState;
e = state; // state at end;
start = tokPos;
end = tokEPos - 1; // end is the index of last char.
return (int)next;
}
#endif // BABEL
// ======== AbstractScanner<> Implementation =========
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "yylex")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "yylex")]
public override int yylex()
{
// parserMax is set by reflecting on the Tokens
// enumeration. If maxParseToken is defined
// that is used, otherwise int.MaxValue is used.
int next;
do { next = Scan(); } while (next >= parserMax);
return next;
}
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
int yypos { get { return tokPos; } }
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
int yyline { get { return tokLin; } }
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
int yycol { get { return tokCol; } }
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "yytext")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "yytext")]
public string yytext
{
get
{
if (tokTxt == null)
tokTxt = buffer.GetString(tokPos, tokEPos);
return tokTxt;
}
}
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
void yyless(int n)
{
buffer.Pos = tokPos;
// Must read at least one char, so set before start.
cCol = tokCol - 1;
GetCode();
// Now ensure that line counting is correct.
lNum = tokLin;
// And count the rest of the text.
for (int i = 0; i < n; i++) GetCode();
MarkEnd();
}
//
// It would be nice to count backward in the text
// but it does not seem possible to re-establish
// the correct column counts except by going forward.
//
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
void _yytrunc(int n) { yyless(yyleng - n); }
//
// This is painful, but we no longer count
// codepoints. For the overwhelming majority
// of cases the single line code is fast, for
// the others, well, at least it is all in the
// buffer so no files are touched. Note that we
// can't use (tokEPos - tokPos) because of the
// possibility of surrogate pairs in the token.
//
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "yyleng")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "yyleng")]
public int yyleng
{
get {
#if BYTEMODE
return tokEPos - tokPos;
#else
if (tokELin == tokLin)
return tokECol - tokCol;
else {
int ch;
int count = 0;
int save = buffer.Pos;
buffer.Pos = tokPos;
do {
ch = buffer.Read();
if (!char.IsHighSurrogate((char)ch)) count++;
} while (buffer.Pos < tokEPos && ch != ScanBuff.EndOfFile);
buffer.Pos = save;
return count;
}
#endif // BYTEMODE
}
}
// ============ methods available in actions ==============
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal int YY_START {
get { return currentScOrd; }
set { currentScOrd = value;
currentStart = startState[value];
}
}
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal void BEGIN(int next) {
currentScOrd = next;
currentStart = startState[next];
}
// ============== The main tokenizer code =================
int Scan()
{
try {
for (; ; )
{
int next; // next state to enter
#if BACKUP
Result rslt = Result.noMatch;
#endif // BACKUP
#if LEFTANCHORS
for (;;)
{
// Discard characters that do not start any pattern.
// Must check the left anchor condition after *every* GetCode!
state = ((cCol == 0) ? anchorState[currentScOrd] : currentStart);
if ((next = NextState()) != goStart)
break; // LOOP EXIT HERE...
GetCode();
}
#else // !LEFTANCHORS
state = currentStart;
while ((next = NextState()) == goStart)
// At this point, the current character has no
// transition from the current state. We discard
// the "no-match" char. In traditional LEX such
// characters are echoed to the console.
GetCode();
#endif // LEFTANCHORS
// At last, a valid transition ...
MarkToken();
state = next;
GetCode();
while ((next = NextState()) > eofNum) // Exit for goStart AND for eofNum
#if BACKUP
if (state <= maxAccept && next > maxAccept) // need to prepare backup data
{
// ctx is an object. The fields may be
// mutated by the call to Recurse2.
// On return the data in ctx is the
// *latest* accept state that was found.
rslt = Recurse2(ref ctx, next);
if (rslt == Result.noMatch)
RestoreStateAndPos(ref ctx);
break;
}
else
#endif // BACKUP
{
state = next;
GetCode();
}
if (state <= maxAccept)
{
MarkEnd();
#region ActionSwitch
#pragma warning disable 162
switch (state)
{
case eofNum:
if (yywrap())
return (int)Tokens.EOF;
break;
case 1:
case 3:
yylval = new SPythonParserYacc.ValueType();
currentLexLocation = CurrentLexLocation;
yylval.ex = parserTools.create_spy_int_const(yytext,currentLexLocation);
return (int)Tokens.INTNUM;
break;
case 2:
case 8:
string cur_yytext = yytext;
int res = keywords.KeywordOrIDToken(cur_yytext);
currentLexLocation = CurrentLexLocation;
yylval = new SPythonParserYacc.ValueType();
switch (res)
{
case (int)Tokens.ID:
yylval.id = parserTools.create_ident(cur_yytext, currentLexLocation);
break;
case (int)Tokens.AND:
yylval.op = new op_type_node(Operators.LogicalAND, currentLexLocation);
yylval.op.text = cur_yytext;
break;
case (int)Tokens.OR:
yylval.op = new op_type_node(Operators.LogicalOR, currentLexLocation);
yylval.op.text = cur_yytext;
break;
case (int)Tokens.NOT:
yylval.op = new op_type_node(Operators.LogicalNOT, currentLexLocation);
yylval.op.text = cur_yytext;
break;
case (int)Tokens.IF:
case (int)Tokens.ELIF:
case (int)Tokens.ELSE:
case (int)Tokens.WHILE:
case (int)Tokens.FOR:
case (int)Tokens.DEF:
last_line_needed_colon = CurrentLexLocation.StartLine;
break;
case (int)Tokens.CLASS:
case (int)Tokens.LAMBDA:
parserTools.AddErrorFromResource("UNSUPPORTED_CONSTRUCTION_{0}", currentLexLocation, yytext);
break;
}
return res;
break;
case 4:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.DOT;
break;
case 5:
case 6:
case 7:
case 17:
case 22:
parserTools.AddErrorFromResource("UNEXPECTED_TOKEN_{0}", CurrentLexLocation, yytext);
return (int)Tokens.EOF;
break;
case 9:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Division); return (int)Tokens.DIVIDE;
break;
case 10:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Assignment); return (int)Tokens.ASSIGN;
break;
case 11:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Plus); return (int)Tokens.PLUS;
break;
case 12:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Minus); return (int)Tokens.MINUS;
break;
case 13:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Multiplication); return (int)Tokens.STAR;
break;
case 14:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.ModulusRemainder); return (int)Tokens.PERCENTAGE;
break;
case 15:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Less); return (int)Tokens.LESS;
break;
case 16:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Greater); return (int)Tokens.GREATER;
break;
case 18:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.LogicalNOT); return (int)Tokens.BINNOT;
break;
case 19:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.LogicalAND); return (int)Tokens.BINAND;
break;
case 20:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.LogicalOR); return (int)Tokens.BINOR;
break;
case 21:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.BitwiseXOR); return (int)Tokens.BINXOR;
break;
case 23:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.LBRACE;
break;
case 24:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.RBRACE;
break;
case 25:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.SEMICOLON;
break;
case 26:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.LBRACKET;
break;
case 27:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.RBRACKET;
break;
case 28:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.COMMA;
break;
case 29:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.COLON;
break;
case 30:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.LPAR;
break;
case 31:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.RPAR;
break;
case 32:
parserTools.AddErrorFromResource("PROGRAM_BEGIN_WITH_INDENT",
CurrentLexLocation);
return (int)Tokens.EOF;
break;
case 33:
parserTools.AddErrorFromResource("WRONG_INDENT",
new LexLocation(CurrentLexLocation.StartLine + 1, 0, CurrentLexLocation.StartLine + 1, 0));
return (int)Tokens.EOF;
break;
case 34:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.INDENT;
break;
case 35:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.UNINDENT;
break;
case 36:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.END_OF_LINE;
break;
case 37:
return (int)Tokens.END_OF_FILE;
break;
case 38:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentBitwiseXOR); return (int)Tokens.BINXOREQUAL;
break;
case 39:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentBitwiseOR); return (int)Tokens.BINOREQUAL;
break;
case 40:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentBitwiseAND); return (int)Tokens.BINANDEQUAL;
break;
case 41:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.NotEqual); return (int)Tokens.NOTEQUAL;
break;
case 42:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.GreaterEqual); return (int)Tokens.GREATEREQUAL;
break;
case 43:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.BitwiseRightShift); return (int)Tokens.SHR;
break;
case 44:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentBitwiseRightShift); return (int)Tokens.SHREQUAL;
break;
case 45:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.LessEqual); return (int)Tokens.LESSEQUAL;
break;
case 46:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.BitwiseLeftShift); return (int)Tokens.SHL;
break;
case 47:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentBitwiseLeftShift); return (int)Tokens.SHLEQUAL;
break;
case 48:
return (int)Tokens.tkParseModeType;
break;
case 49:
return (int)Tokens.tkParseModeStatement;
break;
case 50:
return (int)Tokens.tkParseModeExpression;
break;
case 51:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentMultiplication); return (int)Tokens.STAREQUAL;
break;
case 52:
yylval = new SPythonParserYacc.ValueType(); return (int)Tokens.STARSTAR;
break;
case 53:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentSubtraction); return (int)Tokens.MINUSEQUAL;
break;
case 54:
yylval = new SPythonParserYacc.ValueType(); yylval.ti = new token_info(yytext); return (int)Tokens.ARROW;
break;
case 55:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentAddition); return (int)Tokens.PLUSEQUAL;
break;
case 56:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.Equal); return (int)Tokens.EQUAL;
break;
case 57:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.IntegerDivision); return (int)Tokens.SLASHSLASH;
break;
case 58:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentDivision); return (int)Tokens.DIVEQUAL;
break;
case 59:
yylval = new SPythonParserYacc.ValueType(); yylval.op = new op_type_node(Operators.AssignmentIntDivision); return (int)Tokens.INTDIVISIONEQUAL;
break;
case 60:
yylval = new SPythonParserYacc.ValueType();
currentLexLocation = CurrentLexLocation;
yylval.ex = parserTools.create_fstring(yytext,currentLexLocation);
return (int)Tokens.FSTRINGNUM;
break;
case 61:
yylval = new SPythonParserYacc.ValueType();
currentLexLocation = CurrentLexLocation;
yylval.stn = parserTools.create_string_const(yytext,currentLexLocation);
return (int)Tokens.STRINGNUM;
break;
case 62:
case 63:
case 64:
yylval = new SPythonParserYacc.ValueType();
currentLexLocation = CurrentLexLocation;
yylval.ex = parserTools.create_double_const(yytext,currentLexLocation);
return (int)Tokens.REALNUM;
break;
case 65:
yylval = new SPythonParserYacc.ValueType();
currentLexLocation = CurrentLexLocation;
yylval.ex = parserTools.create_bigint_const(yytext,currentLexLocation);
return (int)Tokens.BIGINT;
break;
default:
break;
}
#pragma warning restore 162
#endregion
}
}
} // end try
finally {
// User-specified epilog to scan()
prevLexLocation = yylloc;
if (currentLexLocation != null)
yylloc = currentLexLocation;
else
yylloc = CurrentLexLocation;
currentLexLocation = null;
// End, user-specified epilog
} // end finally
}
#if BACKUP
Result Recurse2(ref Context ctx, int next)
{
// Assert: at entry "state" is an accept state AND
// NextState(state, code) != goStart AND
// NextState(state, code) is not an accept state.
//
SaveStateAndPos(ref ctx);
state = next;
GetCode();
while ((next = NextState()) > eofNum)
{
if (state <= maxAccept && next > maxAccept) // need to update backup data
SaveStateAndPos(ref ctx);
state = next;
if (state == eofNum) return Result.accept;
GetCode();
}
return (state <= maxAccept ? Result.accept : Result.noMatch);
}
void SaveStateAndPos(ref Context ctx)
{
ctx.bPos = buffer.Pos;
ctx.rPos = readPos;
ctx.cCol = cCol;
ctx.lNum = lNum;
ctx.state = state;
ctx.cChr = code;
}
void RestoreStateAndPos(ref Context ctx)
{
buffer.Pos = ctx.bPos;
readPos = ctx.rPos;
cCol = ctx.cCol;
lNum = ctx.lNum;
state = ctx.state;
code = ctx.cChr;
}
#endif // BACKUP
// ============= End of the tokenizer code ================
#if STACK
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal void yy_clear_stack() { scStack.Clear(); }
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal int yy_top_state() { return scStack.Peek(); }
internal void yy_push_state(int state)
{
scStack.Push(currentScOrd);
BEGIN(state);
}
internal void yy_pop_state()
{
// Protect against input errors that pop too far ...
if (scStack.Count > 0) {
int newSc = scStack.Pop();
BEGIN(newSc);
} // Otherwise leave stack unchanged.
}
#endif // STACK
[SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal void ECHO() { Console.Out.Write(yytext); }
#region UserCodeSection
public LexLocation CurrentLexLocation
{
get {
return new LexLocation(tokLin, tokCol, tokELin, tokECol, parserTools.currentFileName);
}
}
public override void yyerror(string format, params object[] args)
{
string expected = parserTools.ExpectedToken(last_line_needed_colon == prevLexLocation.StartLine, args);
LexLocation lexLocation = parserTools.GetLexLocation(
yytext, expected, prevLexLocation, CurrentLexLocation);
if (yytext == "#{" && expected == "END_OF_LINE") {
parserTools.AddErrorFromResource("WRONG_INDENT", lexLocation);
}
else {
string errorMsg = parserTools.CreateErrorString(yytext, expected);
parserTools.AddError(errorMsg, lexLocation);
}
}
protected override bool yywrap()
{
return true;
}
#endregion
} // end class $Scanner
// ==============================================================
// <auto-generated>
// This code automatically produced from an embedded resource.
// Do not edit this file, or it will become incompatible with
// the specification from which it was generated.
// </auto-generated>
// ==============================================================
// Code copied from GPLEX embedded resource
[Serializable]
public class BufferException : Exception
{
public BufferException() { }
public BufferException(string message) : base(message) { }
public BufferException(string message, Exception innerException)
: base(message, innerException) { }
protected BufferException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
}
public abstract class ScanBuff
{
private string fileNm;
public const int EndOfFile = -1;
public const int UnicodeReplacementChar = 0xFFFD;
public bool IsFile { get { return (fileNm != null); } }
public string FileName { get { return fileNm; } set { fileNm = value; } }
public abstract int Pos { get; set; }
public abstract int Read();
public virtual void Mark() { }
public abstract string GetString(int begin, int limit);
public static ScanBuff GetBuffer(string source)
{
return new StringBuffer(source);
}
public static ScanBuff GetBuffer(IList<string> source)
{
return new LineBuffer(source);
}
public static ScanBuff GetBuffer(Stream source)
{
return new BuildBuffer(source);
}
#if (!BYTEMODE)
public static ScanBuff GetBuffer(Stream source, int fallbackCodePage)
{
return new BuildBuffer(source, fallbackCodePage);
}
#endif
}
#region Buffer classes
// ==============================================================
// ===== Definitions for various ScanBuff derived classes ====
// ==============================================================
// =============== String input ================
// ==============================================================
/// <summary>
/// This class reads characters from a single string as
/// required, for example, by Visual Studio language services
/// </summary>
sealed class StringBuffer : ScanBuff
{
string str; // input buffer
int bPos; // current position in buffer
int sLen;
public StringBuffer(string source)
{
this.str = source;
this.sLen = source.Length;
this.FileName = null;
}
public override int Read()
{
if (bPos < sLen) return str[bPos++];
else if (bPos == sLen) { bPos++; return '\n'; } // one strike, see new line
else { bPos++; return EndOfFile; } // two strikes and you're out!
}
public override string GetString(int begin, int limit)
{
// "limit" can be greater than sLen with the BABEL
// option set. Read returns a "virtual" EOL if
// an attempt is made to read past the end of the
// string buffer. Without the guard any attempt
// to fetch yytext for a token that includes the
// EOL will throw an index exception.
if (limit > sLen) limit = sLen;
if (limit <= begin) return "";
else return str.Substring(begin, limit - begin);
}
public override int Pos
{
get { return bPos; }
set { bPos = value; }
}
public override string ToString() { return "StringBuffer"; }
}
// ==============================================================
// The LineBuff class contributed by Nigel Horspool,
// nigelh@cs.uvic.cs
// ==============================================================
sealed class LineBuffer : ScanBuff
{
IList<string> line; // list of source lines from a file
int numLines; // number of strings in line list
string curLine; // current line in that list
int cLine; // index of current line in the list
int curLen; // length of current line
int curLineStart; // position of line start in whole file
int curLineEnd; // position of line end in whole file
int maxPos; // max position ever visited in whole file
int cPos; // ordinal number of code in source
// Constructed from a list of strings, one per source line.
// The lines have had trailing '\n' characters removed.
public LineBuffer(IList<string> lineList)
{
line = lineList;
numLines = line.Count;
cPos = curLineStart = 0;
curLine = (numLines > 0 ? line[0] : "");
maxPos = curLineEnd = curLen = curLine.Length;
cLine = 1;
FileName = null;
}
public override int Read()
{
if (cPos < curLineEnd)
return curLine[cPos++ - curLineStart];
if (cPos++ == curLineEnd)
return '\n';
if (cLine >= numLines)
return EndOfFile;
curLine = line[cLine];
curLen = curLine.Length;
curLineStart = curLineEnd + 1;
curLineEnd = curLineStart + curLen;
if (curLineEnd > maxPos)
maxPos = curLineEnd;
cLine++;
return curLen > 0 ? curLine[0] : '\n';
}
// To speed up searches for the line containing a position
private int cachedPosition;
private int cachedIxdex;
private int cachedLineStart;
// Given a position pos within the entire source, the results are
// ix -- the index of the containing line
// lstart -- the position of the first character on that line
private void findIndex(int pos, out int ix, out int lstart)
{
if (pos >= cachedPosition)
{
ix = cachedIxdex; lstart = cachedLineStart;
}
else
{
ix = lstart = 0;
}
for (; ; )
{
int len = line[ix].Length + 1;
if (pos < lstart + len) break;
lstart += len;
ix++;
}
cachedPosition = pos;
cachedIxdex = ix;
cachedLineStart = lstart;
}
public override string GetString(int begin, int limit)
{
if (begin >= maxPos || limit <= begin) return "";
int endIx, begIx, endLineStart, begLineStart;
findIndex(begin, out begIx, out begLineStart);
int begCol = begin - begLineStart;
findIndex(limit, out endIx, out endLineStart);
int endCol = limit - endLineStart;
string s = line[begIx];
if (begIx == endIx)
{
// the usual case, substring all on one line
return (endCol <= s.Length) ?
s.Substring(begCol, endCol - begCol)
: s.Substring(begCol) + "\n";
}
// the string spans multiple lines, yuk!
StringBuilder sb = new StringBuilder();
if (begCol < s.Length)
sb.Append(s.Substring(begCol));
for (; ; )
{
sb.Append("\n");
s = line[++begIx];
if (begIx >= endIx) break;
sb.Append(s);
}
if (endCol <= s.Length)
{
sb.Append(s.Substring(0, endCol));
}
else
{
sb.Append(s);
sb.Append("\n");
}
return sb.ToString();
}
public override int Pos
{
get { return cPos; }
set
{
cPos = value;
findIndex(cPos, out cLine, out curLineStart);
curLine = line[cLine];
curLineEnd = curLineStart + curLine.Length;
}
}
public override string ToString() { return "LineBuffer"; }
}
// ==============================================================
// ===== class BuildBuff : for unicode text files ========
// ==============================================================
class BuildBuffer : ScanBuff
{
// Double buffer for char stream.
class BufferElement
{
StringBuilder bldr = new StringBuilder();
StringBuilder next = new StringBuilder();
int minIx;
int maxIx;
int brkIx;
bool appendToNext;
internal BufferElement() { }
internal int MaxIndex { get { return maxIx; } }
// internal int MinIndex { get { return minIx; } }
internal char this[int index]
{
get
{
if (index < minIx || index >= maxIx)
throw new BufferException("Index was outside data buffer");
else if (index < brkIx)
return bldr[index - minIx];
else
return next[index - brkIx];
}
}
internal void Append(char[] block, int count)
{
maxIx += count;
if (appendToNext)
this.next.Append(block, 0, count);
else
{
this.bldr.Append(block, 0, count);
brkIx = maxIx;
appendToNext = true;
}
}
internal string GetString(int start, int limit)
{
if (limit <= start)
return "";
if (start >= minIx && limit <= maxIx)
if (limit < brkIx) // String entirely in bldr builder
return bldr.ToString(start - minIx, limit - start);
else if (start >= brkIx) // String entirely in next builder
return next.ToString(start - brkIx, limit - start);
else // Must do a string-concatenation
return
bldr.ToString(start - minIx, brkIx - start) +
next.ToString(0, limit - brkIx);
else
throw new BufferException("String was outside data buffer");
}
internal void Mark(int limit)
{
if (limit > brkIx + 16) // Rotate blocks
{
StringBuilder temp = bldr;
bldr = next;
next = temp;
next.Length = 0;
minIx = brkIx;
brkIx = maxIx;
}
}
}
BufferElement data = new BufferElement();
int bPos; // Postion index in the StringBuilder
BlockReader NextBlk; // Delegate that serves char-arrays;
private string EncodingName
{
get
{
StreamReader rdr = NextBlk.Target as StreamReader;
return (rdr == null ? "raw-bytes" : rdr.CurrentEncoding.BodyName);
}
}
public BuildBuffer(Stream stream)
{
FileStream fStrm = (stream as FileStream);
if (fStrm != null) FileName = fStrm.Name;
NextBlk = BlockReaderFactory.Raw(stream);
}
#if (!BYTEMODE)
public BuildBuffer(Stream stream, int fallbackCodePage)
{
FileStream fStrm = (stream as FileStream);
if (fStrm != null) FileName = fStrm.Name;
NextBlk = BlockReaderFactory.Get(stream, fallbackCodePage);
}
#endif
/// <summary>
/// Marks a conservative lower bound for the buffer,
/// allowing space to be reclaimed. If an application
/// needs to call GetString at arbitrary past locations
/// in the input stream, Mark() is not called.
/// </summary>
public override void Mark() { data.Mark(bPos - 2); }
public override int Pos
{
get { return bPos; }
set { bPos = value; }
}
/// <summary>
/// Read returns the ordinal number of the next char, or
/// EOF (-1) for an end of stream. Note that the next
/// code point may require *two* calls of Read().
/// </summary>
/// <returns></returns>
public override int Read()
{
//
// Characters at positions
// [data.offset, data.offset + data.bldr.Length)
// are available in data.bldr.
//
if (bPos < data.MaxIndex)
{
// ch0 cannot be EOF
return (int)data[bPos++];
}
else // Read from underlying stream
{
// Experimental code, blocks of page size
char[] chrs = new char[4096];
int count = NextBlk(chrs, 0, 4096);
if (count == 0)
return EndOfFile;
else
{
data.Append(chrs, count);
return (int)data[bPos++];
}
}
}
public override string GetString(int begin, int limit)
{
return data.GetString(begin, limit);
}
public override string ToString()
{
return "StringBuilder buffer, encoding: " + this.EncodingName;
}
}
// =============== End ScanBuff-derived classes ==================
public delegate int BlockReader(char[] block, int index, int number);
// A delegate factory, serving up a delegate that
// reads a block of characters from the underlying
// encoded stream, via a StreamReader object.
//
public static class BlockReaderFactory
{
public static BlockReader Raw(Stream stream)
{
return delegate(char[] block, int index, int number)
{
byte[] b = new byte[number];
int count = stream.Read(b, 0, number);
int i = 0;
int j = index;
for (; i < count; i++, j++)
block[j] = (char)b[i];
return count;
};
}
#if (!BYTEMODE)
public static BlockReader Get(Stream stream, int fallbackCodePage)
{
Encoding encoding;
int preamble = Preamble(stream);
if (preamble != 0) // There is a valid BOM here!
encoding = Encoding.GetEncoding(preamble);
else if (fallbackCodePage == -1) // Fallback is "raw" bytes
return Raw(stream);
else if (fallbackCodePage != -2) // Anything but "guess"
encoding = Encoding.GetEncoding(fallbackCodePage);
else // This is the "guess" option
{
int guess = new Guesser(stream).GuessCodePage();
stream.Seek(0, SeekOrigin.Begin);
if (guess == -1) // ==> this is a 7-bit file
encoding = Encoding.ASCII;
else if (guess == 65001)
encoding = Encoding.UTF8;
else // ==> use the machine default
encoding = Encoding.Default;
}
StreamReader reader = new StreamReader(stream, encoding);
return reader.Read;
}
static int Preamble(Stream stream)
{
int b0 = stream.ReadByte();
int b1 = stream.ReadByte();
if (b0 == 0xfe && b1 == 0xff)
return 1201; // UTF16BE
if (b0 == 0xff && b1 == 0xfe)
return 1200; // UTF16LE
int b2 = stream.ReadByte();
if (b0 == 0xef && b1 == 0xbb && b2 == 0xbf)
return 65001; // UTF8
//
// There is no unicode preamble, so we
// return denoter for the machine default.
//
stream.Seek(0, SeekOrigin.Begin);
return 0;
}
#endif // !BYTEMODE
}
#endregion Buffer classes
// ==============================================================
// ============ class CodePageHandling =============
// ==============================================================
public static class CodePageHandling
{
public static int GetCodePage(string option)
{
string command = option.ToUpperInvariant();
if (command.StartsWith("CodePage:", StringComparison.OrdinalIgnoreCase))
command = command.Substring(9);
try
{
if (command.Equals("RAW"))
return -1;
else if (command.Equals("GUESS"))
return -2;
else if (command.Equals("DEFAULT"))
return 0;
else if (char.IsDigit(command[0]))
return int.Parse(command, CultureInfo.InvariantCulture);
else
{
Encoding enc = Encoding.GetEncoding(command);
return enc.CodePage;
}
}
catch (FormatException)
{
Console.Error.WriteLine(
"Invalid format \"{0}\", using machine default", option);
}
catch (ArgumentException)
{
Console.Error.WriteLine(
"Unknown code page \"{0}\", using machine default", option);
}
return 0;
}
}
#region guesser
#if (!BYTEMODE)
// ==============================================================
// ============ Encoding Guesser =============
// ==============================================================
/// <summary>
/// This class provides a simple finite state automaton that
/// scans the file looking for (1) valid UTF-8 byte patterns,
/// (2) bytes >= 0x80 which are not part of a UTF-8 sequence.
/// The method then guesses whether it is UTF-8 or maybe some
/// local machine default encoding. This works well for the
/// various Latin encodings.
/// </summary>
internal class Guesser
{
ScanBuff buffer;
public int GuessCodePage() { return Scan(); }
const int maxAccept = 10;
const int initial = 0;
const int eofNum = 0;
const int goStart = -1;
const int INITIAL = 0;
const int EndToken = 0;
#region user code
/*
* Reads the bytes of a file to determine if it is
* UTF-8 or a single-byte code page file.
*/
public long utfX;
public long uppr;
#endregion user code
int state;
int currentStart = startState[0];
int code;
#region ScannerTables
static int[] startState = new int[] { 11, 0 };
#region CharacterMap
static sbyte[] map = new sbyte[256] {
/* '\0' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* '\x10' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* '\x20' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* '0' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* '@' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 'P' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* '`' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 'p' */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* '\x80' */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/* '\x90' */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/* '\xA0' */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/* '\xB0' */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
/* '\xC0' */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* '\xD0' */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
/* '\xE0' */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
/* '\xF0' */ 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5 };
#endregion
static sbyte[][] nextState = new sbyte[][] {
new sbyte[] {0, 0, 0, 0, 0, 0},
new sbyte[] {-1, -1, 10, -1, -1, -1},
new sbyte[] {-1, -1, -1, -1, -1, -1},
new sbyte[] {-1, -1, 8, -1, -1, -1},
new sbyte[] {-1, -1, 5, -1, -1, -1},
new sbyte[] {-1, -1, 6, -1, -1, -1},
new sbyte[] {-1, -1, 7, -1, -1, -1},
null,
new sbyte[] {-1, -1, 9, -1, -1, -1},
null,
null,
new sbyte[] {-1, 1, 2, 3, 4, 2}
};
[SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline")]
// Reason for suppression: cannot have self-reference in array initializer.
static Guesser()
{
nextState[7] = nextState[2];
nextState[9] = nextState[2];
nextState[10] = nextState[2];
}
int NextState()
{
if (code == ScanBuff.EndOfFile)
return eofNum;
else
return nextState[state][map[code]];
}
#endregion
public Guesser(System.IO.Stream file) { SetSource(file); }
public void SetSource(System.IO.Stream source)
{
this.buffer = new BuildBuffer(source);
code = buffer.Read();
}
int Scan()
{
for (; ; )
{
int next;
state = currentStart;
while ((next = NextState()) == goStart)
code = buffer.Read();
state = next;
code = buffer.Read();
while ((next = NextState()) > eofNum)
{
state = next;
code = buffer.Read();
}
if (state <= maxAccept)
{
#region ActionSwitch
#pragma warning disable 162
switch (state)
{
case eofNum:
switch (currentStart)
{
case 11:
if (utfX == 0 && uppr == 0) return -1; /* raw ascii */
else if (uppr * 10 > utfX) return 0; /* default code page */
else return 65001; /* UTF-8 encoding */
break;
}
return EndToken;
case 1: // Recognized '{Upper128}', Shortest string "\xC0"
case 2: // Recognized '{Upper128}', Shortest string "\x80"
case 3: // Recognized '{Upper128}', Shortest string "\xE0"
case 4: // Recognized '{Upper128}', Shortest string "\xF0"
uppr++;
break;
case 5: // Recognized '{Utf8pfx4}{Utf8cont}', Shortest string "\xF0\x80"
uppr += 2;
break;
case 6: // Recognized '{Utf8pfx4}{Utf8cont}{2}', Shortest string "\xF0\x80\x80"
uppr += 3;
break;
case 7: // Recognized '{Utf8pfx4}{Utf8cont}{3}', Shortest string "\xF0\x80\x80\x80"
utfX += 3;
break;
case 8: // Recognized '{Utf8pfx3}{Utf8cont}', Shortest string "\xE0\x80"
uppr += 2;
break;
case 9: // Recognized '{Utf8pfx3}{Utf8cont}{2}', Shortest string "\xE0\x80\x80"
utfX += 2;
break;
case 10: // Recognized '{Utf8pfx2}{Utf8cont}', Shortest string "\xC0\x80"
utfX++;
break;
default:
break;
}
#pragma warning restore 162
#endregion
}
}
}
} // end class Guesser
#endif // !BYTEMODE
#endregion
// End of code copied from embedded resource
} // end namespace