Commit graph

37 commits

Author SHA1 Message Date
Mikhalkovich Stanislav 5fec52615a Распаковка KeyValuePair| И в foreach 2025-05-24 21:36:36 +03:00
AlexanderZemlyak efb4a4338f
New checks for directives added (#3099)
* Extract base classes from ParserTools (local) and GPPGParserHelper

* Fix string resources error

* Extract base class for unexpected token error

* Update ParserTools project file

* Add comments for compiler directives usages in compiler

* Add directives checks

* Move string constants to new project

* Implement scalable directives checks

* Remove known directives from compiler

* Fix PABCSystem namespace error

* Allow region and endregion with no params

* Allow parameters to endif directive

* Delete directive parameters extension checks

* Replace error with warning for uknown directive case

* Fix generate native code (semantic rule) assigning

* Improve error messages for directives

* Rename RunParseThread to SwitchOnIntellisence

Для отладки может требоваться отключение Intellisence на уровне кода. Для понятности метод назван SwitchOnIntellisence.

* Resolve merge conflicts

* Add new compiler errors for unsupported target framework and output file type

* Add documentation to directives checks

* Fix directives check loop
2024-05-04 20:21:50 +03:00
Ivan Bondarev e948a54bf4 #3062 2024-03-31 11:47:31 +02:00
AlexanderZemlyak 0ae7595f0d
Implement programming languages integration functionality (#3001)
* Make standardModules Dictionary instead of LanguageId usage

* Create new common string constants for pascal language

* Add LanguagesData class template

* Move some compiler directive string constants to Compiler project

* Extract LanguagesData class to separate file

Also extracted RuntimeServiceModule (IO-modules) management to new functions.

* Fix pabcnetc crashing (KeyNotFoundException)

* Make similar change in pabcnetc_clear

* Return PABCExtensions in DomConverter.cs

* Return compiler string constants to Tree Converter

* Rename MoveSystemUnitForward method

* Rename system unit variable

* Add new parser load error (localized versions)

* Fix pascal language name constant

* Add system units property to parsers

* Add LanguageKits directory with a test file

* Implement language integrator

Был реализован загрузчик комплектов дополнительных языков (всех кроме Pascal). Был пересмотрен подход к реализации ParsersController и этот класс сделан синглтоном. Добавлена загрузка стандартных модулей языков в CompilerOptions.

* Squashed commit of the following:

commit 8f9dc7e5a0
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Mon Mar 11 20:33:13 2024 +0300

    fix #3050

commit 90363ced45
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sun Mar 3 21:37:25 2024 +0300

    Недобитки при сортировке строк

commit c9d7ba7758
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Sat Mar 2 13:32:14 2024 +0300

    Order и OrderDescending для строк с Ordinal

commit 6fbc0200bf
Author: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com>
Date:   Tue Feb 27 23:21:26 2024 +0300

    Fix interface loop dependency check (#3047)

    Tests for problematic case were added

commit e4d63bfef9
Author: bormant <bormant@mail.ru>
Date:   Tue Feb 27 23:18:25 2024 +0300

    Fix typo: C (ru) -> C (en) (#3042)

commit 0d37232d21
Author: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Date:   Tue Feb 27 19:15:08 2024 +0300

    School - исправление пустого диапазона простых и IP-адресов

commit 9fd4c7f338
Merge: 3cca2a89 6027083b
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Feb 21 20:57:10 2024 +0100

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

commit 3cca2a8949
Author: Ivan Bondarev <ibond84@googlemail.com>
Date:   Wed Feb 21 20:56:49 2024 +0100

    fix in formatter
2024-03-13 22:16:40 +03:00
Mikhalkovich Stanislav 88c9ac464a fix #2764 2022-12-29 14:16:18 +03:00
Mikhalkovich Stanislav 653b7dfaae fix #2666 2022-05-03 21:45:23 +03:00
Mikhalkovich Stanislav aece73f33c for var i:=1 to 5 step 2 do 2022-02-21 17:03:34 +03:00
Ivan Bondarev 7df4b8121c fix #2563 2021-12-24 15:21:51 +01:00
Ivan Bondarev 3416894478 #2503 2021-08-29 13:42:32 +02:00
Mikhalkovich Stanislav 3a3a409a1b Распаковка ValueType в переменные 2021-07-18 17:55:51 +03:00
Mikhalkovich Stanislav c77b124cce Версия с неверно форматирующимся
##
{asg}
uses School;

procedure p := Print(1);

p;

Код с ### пока без процедур и функций
2021-02-27 23:44:07 +03:00
Mikhalkovich Stanislav 05f158875d Многомерные срезы - пока без семантического контроля
И интеллисенс a[1,:] неверно показывает тип
2021-02-24 18:41:51 +03:00
Ivan Bondarev 5d52558f98 #2435 2021-02-11 19:54:05 +01:00
Mikhalkovich Stanislav fc234f7cc4 Исправление ошибки с захватом лямбдой переменной, объявленной в виде var (m,n) := ... 2020-08-15 22:56:19 +03:00
Mikhalkovich Stanislav b24c527c7e fix #2279 2020-07-09 23:54:10 +03:00
Mikhalkovich Stanislav fe5b3353de fix #2280 2020-07-09 23:01:39 +03:00
Mikhalkovich Stanislav 41316f86d1 fix #2252 2020-06-12 23:31:38 +03:00
Mikhalkovich Stanislav 7205bd3584 Доработки RealRange 2020-05-15 01:46:38 +03:00
Mikhalkovich Stanislav 49032ed2be RealRange 2020-05-14 13:01:21 +03:00
Александр Погорелов 985d35ef5e SystemSlice 2020-05-02 11:44:20 +03:00
Александр Погорелов ea2871d13b Фиксы для срезов на присваивание 2020-03-19 12:43:07 +03:00
Александр Погорелов 5800d5626c merge master[2] 2020-02-24 16:44:21 +03:00
Mikhalkovich Stanislav 9aa197df1d a.Indices в foreach - полностью заменяется на for. Семантические проверки сделаны 2020-01-06 12:14:53 +03:00
Mikhalkovich Stanislav 5aa72fac74 В оптимизацию foreach добавлен IList 2020-01-06 11:23:55 +03:00
Mikhalkovich Stanislav 838dddf8b1 foreach по a..b преобразуется в for - для эффективности 2020-01-05 22:46:12 +03:00
Mikhalkovich Stanislav 15d20463d7 Новый Range в виде a..b 2020-01-04 12:19:36 +03:00
Mikhalkovich Stanislav b8e6248094 fix #1914 2019-04-23 14:51:25 +03:00
miks1965 00646f89a5 loop 5 do
write(1)
2017-06-08 17:56:17 +03:00
janise93 d6fd84b935 Add: ??, integer? and semantic checks for ?. 2017-06-03 10:19:52 +03:00
miks1965 38842c45e7 bug fix #411
var (a,b) := (1,2)
2017-06-01 13:14:49 +03:00
miks1965 ad4be08834 bug fix #375 2017-05-01 17:08:26 +03:00
miks1965 faeedd04d8 Working changes 2017-02-15 08:54:25 +03:00
miks1965 9967adf5ee a[:][:] 2017-02-06 11:02:42 +03:00
miks1965 f189fd7160 Небольшой рефакторинг синтаксического сахара 2017-01-26 15:47:13 +03:00
miks1965 6aee6c9add Рефакторинг 2017-01-22 20:54:13 +03:00
miks1965 6779e4d62c узел sugared_addressed_value - для slice_expr 2017-01-21 00:33:12 +03:00
miks1965 ac9f0221b0 semantic_checks_for_sugar.cs 2017-01-20 21:49:07 +03:00