Skip to content

Commit

Permalink
Исправлена ошибка парсинга в случае если в аннотациях встречался пере…
Browse files Browse the repository at this point in the history
…вод строки
  • Loading branch information
sfaqer committed Feb 2, 2025
1 parent c073386 commit 04b3f62
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 9 deletions.
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("lambdas")
.Версия("0.3.1")
.Версия("0.3.2")
.Автор("Кирилл Черненко")
.АдресАвтора("https://github.com/sfaqer")
.Описание("API для реализации функциональных интерфейсов для OneScript")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Если ЭтоЛямбдаВыражение = Неопределено Тогда

ЭтоЛямбдаВыражение = Новый РегулярноеВыражение(
"(.*)->\s*([\s\S]*)"
"((?:\s|\S)*?)->\s*([\s\S]*)"
);

КонецЕсли;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
Продолжить;
КонецЕсли;

Если Токен = " " Тогда
Если Токен = " " Или Токен = Символы.ПС Тогда
Этап = "";
РазбираемыеАннотации.Добавить(Аннотация);
Продолжить;
Expand Down
20 changes: 14 additions & 6 deletions tests/ЛямбдаВыражение.os
Original file line number Diff line number Diff line change
Expand Up @@ -446,11 +446,17 @@

// Дано
ЛямбдаВыражение = Новый ЛямбдаВыражение(
"&АннотацияБезПараметра &Аннотация('20200101') &Аннотация(Значение = Истина, Параметра = 1) " +
"(&АннотацияБезПараметра x, &Аннотация(Значение = ""С двумя"", Параметра = ""ми"") y, " +
"&АннотацияБезПараметра &Аннотация(""с одним параметром"") " +
"&Аннотация(Значение = ""С двумя"", Параметра = ""ми"") z) " +
"-> a = x+y+z"
"&АннотацияБезПараметра
|&Аннотация('20200101')
|&Аннотация(Значение = Истина, Параметра = 1)
|(
| &АннотацияБезПараметра x,
| &Аннотация(Значение = ""С двумя"", Параметра = ""ми"") y,
| &АннотацияБезПараметра &Аннотация(""с одним параметром"")
| &Аннотация(Значение = ""С двумя"", Параметра = ""ми"")
| z
|) ->
| Возврат x+y+z"
);

// Когда
Expand All @@ -460,7 +466,7 @@

Методы = Рефлектор.ПолучитьТаблицуМетодов(Объект);

Метод = Методы.Найти("Принять", "Имя");
Метод = Методы.Найти("Применить", "Имя");

Ожидаем.Что(Метод).Существует();

Expand Down Expand Up @@ -535,6 +541,8 @@
Ожидаем.Что(Аннотация.Параметры[1].Имя).Равно("Параметра");
Ожидаем.Что(Аннотация.Параметры[1].Значение).Равно("ми");

Ожидаем.Что(Объект.Применить(1, 2, 3)).Равно(6);

КонецПроцедуры

&Тест
Expand Down

0 comments on commit 04b3f62

Please sign in to comment.