Commit graph

312 commits

Author SHA1 Message Date
Mikhalkovich Stanislav 418a64a2c1 Перезалил новый yacc файл и пересобрал грамматику 2024-07-06 22:44:38 +03:00
AlexanderZemlyak ba4d274058
Async await merge (#3177)
* s.ToLines
RenameDirectory

* Исправление ToLines

* Убрал из грамматики узлы await - случайно оставались

* Sync `.ToLines` with `System.IO.StringReader` (#3154)

* 3.9.0.3494

* add tests

* #3152

* #3152

* Don't skip PCU errors in `CompileAllUnits`

* fix #3155

* Create the array types outside of any unit/scope

* Add `use` test

* RobotField - try в блоке создания

* Исправлена Range(a, b, step: real)

LightPT - CheckOutput может принимать параметры типа последователльность - они будут вытягиваться в одну последовательность
  Для этого исправлен FlattenElement
  FlattenOutput применяется автоматически - его теперь не надо вызывать явно
TaskLoops поправлен и упрощен в соответствии с CheckOutput

* Поправлен LightPT

Упрощены TasksArr.pas TasksMatr.pas TasksStr.pas

* fix `GetReferenceFileName` dll copy (#3173)

* Исправление зависимостей проектов (#3174)

* Add workflow to build each project separately

* Make `Compiler` depend on `PascalLanguage` and `PascalABCSaushkinParser`  06e595

* Make IDE's depend on `PABCNETC`

It's launched as a separate process from IDE

* Revert pascal language moving to language plugins (#3175)

* Return Parsers folder with standard parsers and move SyntaxTreeConverters back to Core

* Rename PascalLanguage project to PascalABCLanguageInfo

* Fix pascal dll loading

* Поправлены Tasks1Arr.pas Tasks1Begin.pas Tasks1BoolIfCase.pas

* Поправил в трех проектах пути к bin

LightPT - Read...(prompt) - больше комбинаций

Loop_If_2_Sum в Tasks1Loops.pas

* #3172

* 3.9.0.3500
Хороший коммит )

* Remove extra tests

* Fix dependencies in Compiler project

* LightPT - убрал CheckOutputNew
TasksArr.pas, TasksStr.pas - правки

* #3164

* Убрали зависимость компилятора от парсера Паскаля

---------

Co-authored-by: Mikhalkovich Stanislav <miks@math.sfedu.ru>
Co-authored-by: Sun Serega <sunserega2@gmail.com>
Co-authored-by: Ivan Bondarev <ibond84@googlemail.com>
2024-07-05 23:04:23 +03:00
AlexanderZemlyak 342375501b
New languages engine (#3120)
* Implement first version of languages interfaces and classes

ParsersController заменен на LanguageProvider.

* Update ParserTools.csproj

* Update RemoteCompiler.cs

* Update TestRunner

* Rename LanguageIntegrator project to Languages

* Update TestRunner

* Rename Parsers folder

* Rename PascalABCParser.dll to PascalABCLanguage.dll

* Reorganise LanguageIntegrator and rename DocTagsParser

* Update Release Generators

* Update language loading messages

* Update linux version

* Move BaseParser fields to ILanguage interface

* Revert "Update Release Generators"

This reverts commit 26a991c71b81e643d9fbd9a815ddca222768dda9.

* Revert "Rename PascalABCParser.dll to PascalABCLanguage.dll"

* Clean the mess in parser folders

* Organize namespaces properly

* Revert "Rename LanguageIntegrator project to Languages"

* Add new enclosing folders for standard languages

* Organize namespaces of LanguageIntegrator properly

* Rename StandardLanguages to Languages

* Comment the rest of Visual basic source code

* Update OutputPath in pascal parser project

* Move BaseParser methods to IParser

* Restore Pascal parser project initial structure

* Add PascalLanguage project

* Move SyntaxTreeConverters project to Languages\Pascal folder

* Rename SemanticRules in parser project

* Rename Errors1 to Errors in parser project

* Delete LambdaConverter dll from installer

* Update language integrator to load *Language.dll files

* Move lambda converter project to pascal lanuage dir

* Revert "Delete LambdaConverter dll from installer"

This reverts commit dd56f559ebe4f8c4c5c33752d44e6953001b96a5.

* Switch off VBNETParser building

* Delete syntax tree converters controller

* Delete lambda converter dll from repository

* Reorganize syntax tree to semantic tree conversion stage

* Add BaseLanguage class to make language initialization more neat

* Delete syntax tree post processors entity from ILanguage and refactor ABCStatistics calls

* Add new IDocParser interface for documentation comments parser

* Clean up folders

* Add helper data structures to reduce parameters amount in CompileInterface and CompileImplementation

* Add documentation to language classes

* Move Union struct in global namespace and project (ParserTools)

* Add more comments and a safe select language method

* Rename SemanticRules class

* Fix directives format null bug

* Add System.Linq ref to LanguageIntegrator

* Delete SyntaxToSemanticTreeConverter interface

* Add BaseSyntaxTreeConverter

* Call safe select language method in intellisence

* Delete source files providers from parsers

* Rename GetSyntaxTree method

* Change Prebuild tree to be virtual - not abstract

* Refresh documentation a bit

* Add temporary language check for ABCHealth button

* Add parser reference to parser tools

* Move current compilation unit assigning higher to avoid bug with unit check

* Delete null DirectiveInfo's and refactor directives' code

* Add a few more comments
2024-05-25 12:26:32 +03:00
AlexanderZemlyak a6a25d955d
Preprocessor removal (#3113)
* Remove preprocessor

* Delete preprocessor localization files

* Clean up code

* Remove adding directive in EXCLUDETEXT section

* Fix directive adding in EXCLUDETEXT

* Remove preprocessor leftovers

* More clean up

* Rename preprocessor to ifdef_directive

* Fix building tree for formatter variable assigning

* Restore convert4.exe

* Rework adding directive in EXCLUDETEXT

Более логично будет все-таки так.
2024-05-09 19:04:31 +03:00
AlexanderZemlyak 4609a6dfd2
Extract base classes from ParserTools (local) and GPPGParserHelper (#3092)
* Extract base classes from ParserTools (local) and GPPGParserHelper

* Fix string resources error

* Extract base class for unexpected token error

* Update ParserTools project file
2024-04-23 10:47:48 +03:00
Mikhalkovich Stanislav c66bfa7d92 Многострочные строковые литералы 2024-03-21 21:21:59 +03:00
Ivan Bondarev 3cca2a8949 fix in formatter 2024-02-21 20:56:49 +01:00
Mikhalkovich Stanislav a868d9106f Подготовка к for как foreach 2024-01-07 17:16:29 +03:00
Mikhalkovich Stanislav 4bf9c36d49 Исправление реализации (var b := 1) методом синтаксического сахара 2024-01-02 14:43:48 +03:00
Mikhalkovich Stanislav 30668e650a function f(n: integer): integer;
begin
  if n = 0 then Result := 1
  else Result := n*f(n-1);
end;

begin
  var a := (var b := f(5)) + b;
  Print(a,b);
end.
2023-12-31 21:56:13 +03:00
Mikhalkovich Stanislav a96820ff0d await - пока без генерации нового узла 2023-12-10 21:47:21 +03:00
Mikhalkovich Stanislav 48438973b5 async доделки грамматики 2023-12-08 21:34:48 +03:00
Mikhalkovich Stanislav 771e1f799c первая версия async в грамматике 2023-12-08 19:37:39 +03:00
Mikhalkovich Stanislav 10ed6b670a Исправлена ошибка с отсутствующим do после step 2023-06-23 13:41:47 +03:00
Sun Serega d26804ed42 ABCPascal.y encoding: win1251 => UTF8+BOM 2023-06-04 09:53:41 +03:00
Mikhalkovich Stanislav af9b6acb91 Ликвидация зависимости проектов PascalABCSaushkinParser и SyntaxVisitors от
проекта TreeConverter, то есть, от семантического уровня

Необходимо применить эти изменения и перекомпилировать в ОС РОСА
2023-05-31 14:04:04 +03:00
Mikhalkovich Stanislav 932e59a39d Исправление ошибки с именованными параметрами в грамматике 2023-05-05 17:02:12 +03:00
Mikhalkovich Stanislav 49c432411a Именованные аргументы.
Малое покрытие тестами
2023-05-04 23:58:43 +03:00
Mikhalkovich Stanislav 19999eb0ca Комментарии к select_function
proc_func_call узел в грамматике - давно пора
2023-05-03 23:25:59 +03:00
Mikhalkovich Stanislav 009f6b4d77 DrawMan проверка исправлена
Парсер - добавлен синтаксис именованных параметров при вызове и комментарии для их реализации
2023-05-03 11:59:45 +03:00
Mikhalkovich Stanislav 16b45eaa14 Graph3D LocalAxisX Y Z, MoveByLocal
Turtle - цвет
pt4pabc.dll новая
2022-10-19 15:05:42 +03:00
Ivan Bondarev 9a501e237d #2702 2022-09-11 13:01:54 +02:00
Ivan Bondarev a0968468ec #2696 2022-09-04 14:07:24 +02:00
Mikhalkovich Stanislav c50caf192c fix #2670 2022-05-23 08:21:56 +03:00
Mikhalkovich Stanislav 8b60c3ced5 Убрал слово packed. Захламляет грамматику 2022-05-08 20:44:14 +03:00
Ivan Bondarev 577ae41cac fix pascalabcnet/pascalabcnetide#236 2022-04-15 15:04:36 +02:00
Mikhalkovich Stanislav 3240593d2e Реализован foreach index
Исправлена ошибка for step
Дополнена справка по for step и foreach index
J,yjdkty ntrcnjdsq htlfrnjh? gjlcdtxbdf.obq ыеуз b штвуч rjyntrcnyj d hfvrf[ jlyjq cnhjrb
2022-02-26 12:33:53 +03:00
Mikhalkovich Stanislav aece73f33c for var i:=1 to 5 step 2 do 2022-02-21 17:03:34 +03:00
Mikhalkovich Stanislav 2ecc622a3f fix #2617 2022-01-29 18:30:35 +03:00
Mikhalkovich Stanislav e6aa9e838f fix #2554 2021-12-28 19:09:27 +03:00
Mikhalkovich Stanislav 0f25d86303 fix #2586 2021-12-25 22:08:55 +03:00
Ivan Bondarev dce5abc6b4 fix #2575 2021-12-24 14:52:33 +01:00
Mikhalkovich Stanislav 3ae478b8de fix #2580 2021-12-24 11:28:18 +03:00
Ivan Bondarev b845735c07 #2571 2021-12-12 14:46:43 +01:00
Ivan Bondarev e1368c0d19 #2546 2021-10-24 12:23:46 +02:00
Ivan Bondarev 3c6b191810 #2546 2021-10-24 12:18:52 +02:00
Ivan Bondarev d23856cd6f #2535 2021-10-17 14:46:34 +02:00
Mikhalkovich Stanislav 70576addb0 not in
if (System.Environment.OSVersion.Version.Major >= 6) and (System.Environment.OSVersion.Version.Minor >= 2) then System.Console.OutputEncoding := Encoding.UTF8;

School - таблица истинности - доп. параметр
2021-09-23 18:29:37 +03:00
Mikhalkovich Stanislav edcb611778 Убраны константы, ошибочно оказавшиеся в грамматике в разделе описания процедур
Ошибок не давало, но...
2021-08-21 18:00:35 +03:00
Mikhalkovich Stanislav 068e749af9 Распространены атрибуты функций на режимы ## м ### 2021-08-10 21:16:22 +03:00
Mikhalkovich Stanislav 03f4fcba73 Убрал атрибуты у unit-library - они мешали атрибутам глобальных подпрограмм
Пока ошибка с атрибутами типов остается

System.Console.OutputEncoding := Encoding.UTF8;
2021-08-07 13:34:33 +03:00
Mikhalkovich Stanislav 2f96b742d8 x -> (sum += x) 2021-07-15 22:37:44 +03:00
Mikhalkovich Stanislav d61b231059 Добавлены константы в режимы ## и ###
a.EachCount - без GroupBy можно
2021-07-08 11:51:22 +03:00
Mikhalkovich Stanislav 1438b620ab Новsй узел expression_with_let_semantic, expression_with_let_semantic
для конструкции вида
procedure p(b: integer := (var x := b*b; x*x+x-1));
2021-06-29 12:02:42 +03:00
Ivan Bondarev 5811692ca9 #1202 2021-04-05 12:38:58 +02:00
Ivan Bondarev f4558af026 #2145 2021-04-05 11:41:31 +02:00
Ivan Bondarev 772489a15e fix 2021-04-03 17:05:00 +02:00
Ivan Bondarev 9389c7e7c6 Merge branch 'master' of https://github.com/pascalabcnet/pascalabcnet
# Conflicts:
#	Parsers/PascalABCParserNewSaushkin/ABCPascal.cs
#	Parsers/PascalABCParserNewSaushkin/ABCPascal.y
#	Parsers/PascalABCParserNewSaushkin/ABCPascalYacc.cs
2021-04-03 17:02:56 +02:00
Ivan Bondarev 9cc4afcf8e #2038 2021-04-03 16:58:39 +02:00
Mikhalkovich Stanislav e8a2eb27fd Исправлена ошибка в грамматике 2021-04-03 07:36:13 +03:00