diff --git a/lib.config b/lib.config index d7f6140..f34d0bf 100644 --- a/lib.config +++ b/lib.config @@ -1,6 +1,5 @@ - \ No newline at end of file diff --git a/packagedef b/packagedef index d2c850a..1eb820c 100644 --- a/packagedef +++ b/packagedef @@ -7,9 +7,6 @@ .ВключитьФайл("src") .ВключитьФайл("img") .ВключитьФайл("lib") - .ВключитьФайл("tests") - .ВключитьФайл("tools") - .ВключитьФайл("packagedef") .ВключитьФайл("lib.config") .ВключитьФайл("autumn-properties.json") .ВключитьФайл("README.md") @@ -17,13 +14,12 @@ .ВключитьФайл("NOTICES") .ЗависитОт("tokenizer", "1.0.2") .ЗависитОт("logos", "1.7.1") - .ЗависитОт("winow", "0.9.5") + .ЗависитОт("winow", "0.10.0") + .ЗависитОт("autumn", "4.3.10") .ЗависитОт("autumn-cli", "1.2.0") .ЗависитОт("coloratos", "0.3.0") - .ЗависитОт("i18n", "1.0.0") - .РазработкаЗависитОт("1bdd") + .ЗависитОт("i18n", "1.0.1") .РазработкаЗависитОт("1testrunner") .РазработкаЗависитОт("asserts") .РазработкаЗависитОт("coverage") - .РазработкаЗависитОт("1commands") .ИсполняемыйФайл("src/main.os", "curlone") diff --git a/src/internal/Классы/ПарсерЗначенияОпцииForm.os b/src/internal/Классы/ПарсерЗначенияОпцииForm.os index 05ef50e..766ad05 100644 --- a/src/internal/Классы/ПарсерЗначенияОпцииForm.os +++ b/src/internal/Классы/ПарсерЗначенияОпцииForm.os @@ -124,7 +124,7 @@ Спецификация.Добавить(Новый СпецификацияТокенСимвол("=", "Равенство")); Спецификация.Добавить(Новый СпецификацияТокенСимвол("@", "Собачка")); Спецификация.Добавить(Новый СпецификацияТокенСимвол(",", "Запятая")); - Спецификация.Добавить(Новый СпецификацияТокенРегулярноеВыражение(Новый РегулярноеВыражение("[^=;,""]+"), "Строка")); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение("^[^=;,""]+", "Строка")); КонецПроцедуры diff --git a/src/internal/Классы/ПарсерКонсольнойКоманды.os b/src/internal/Классы/ПарсерКонсольнойКоманды.os index 3128820..a0312a8 100644 --- a/src/internal/Классы/ПарсерКонсольнойКоманды.os +++ b/src/internal/Классы/ПарсерКонсольнойКоманды.os @@ -79,11 +79,26 @@ Спецификация.Добавить(Новый СпецификацияТокенСимвол(КавычкаСПоддержкойИнтерполяции, "КавычкаСПоддержкойИнтерполяции")); Спецификация.Добавить(Новый СпецификацияТокенСимвол(КавычкаБезПоддержкиИнтерполяции, "КавычкаБезПоддержкиИнтерполяции")); Спецификация.Добавить(Новый СпецификацияТокенСимвол(Символы.ПС, "ПереносСтроки")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^\$(?:[a-zA-Z_][a-zA-Z0-9_]*|\{[a-zA-Z_][a-zA-Z0-9_]*\})", "Переменная")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^(?:&&|\|\||[;&])", "ОператорСвязыванияКоманд")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^\s", "ПробельныйСимвол")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[^'"";&\$|\\\s]+", "СтрокаБезСлужебныхСимволов")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[&\$|]", "СлужебныеСимволы")); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^\$(?:[a-zA-Z_][a-zA-Z0-9_]*|\{[a-zA-Z_][a-zA-Z0-9_]*\})", + "Переменная" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^(?:&&|\|\||[;&])", + "ОператорСвязыванияКоманд" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^\s", + "ПробельныйСимвол" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[^'"";&\$|\\\s]+", + "СтрокаБезСлужебныхСимволов" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[&\$|]", + "СлужебныеСимволы" + )); Возврат Спецификация; @@ -297,13 +312,4 @@ КонецПроцедуры -Функция ТокенРегулярноеВыражение(Паттерн, ТипТокена) - - РегулярноеВыражение = Новый РегулярноеВыражение(Паттерн); - РегулярноеВыражение.Многострочный = Ложь; - - Возврат Новый СпецификацияТокенРегулярноеВыражение(РегулярноеВыражение, ТипТокена); - -КонецФункции - #КонецОбласти \ No newline at end of file diff --git a/src/internal/Классы/ПереводПрограммногоКода.os b/src/internal/Классы/ПереводПрограммногоКода.os index d163bce..85e585e 100644 --- a/src/internal/Классы/ПереводПрограммногоКода.os +++ b/src/internal/Классы/ПереводПрограммногоКода.os @@ -59,29 +59,47 @@ Спецификация.Добавить(Новый СпецификацияТокенСимвол("""", "ДвойнаяКавычка")); Спецификация.Добавить(Новый СпецификацияТокенСимвол(";", "ТочкаСЗапятой")); Спецификация.Добавить(Новый СпецификацияТокенСимвол(Символы.ПС, "ПереносСтроки")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^\/\/+", "Комментарий")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^Новый\s+[a-zA-Zа-яА-Я]+", "НовыйОбъект")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[a-zA-Zа-яА-Я_\d]+\s*=", "ОперацияПрисваивания")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[a-zA-Zа-яА-Я_\d]+\s*(\.\s*[a-zA-Zа-яА-Я_\d]+)+\s*\(", "ВызовМетодаОбъекта")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[a-zA-Zа-яА-Я_\d]+\s*(\.\s*[a-zA-Zа-яА-Я_\d]+)+", "ОбращениеКОбъекту")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[a-zA-Zа-яА-Я_\d]+\s*\(", "ВызовФункцииПроцедуры")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^\b(Истина|True|Ложь|False|Если|If|Тогда|Then|Иначе|Else|ИначеЕсли|ElseIf|КонецЕсли|EndIf|Не|Not)\b", "Оператор")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^[a-zA-Zа-яА-Я_\d]+(\.[a-zA-Zа-яА-Я_\d]+)*", "ИмяОбъекта")); - Спецификация.Добавить(ТокенРегулярноеВыражение("^.", "ЛюбойСимвол")); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^\/\/+", + "Комментарий" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^Новый\s+[a-zA-Zа-яА-Я]+", + "НовыйОбъект" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[a-zA-Zа-яА-Я_\d]+\s*=", + "ОперацияПрисваивания" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[a-zA-Zа-яА-Я_\d]+\s*(\.\s*[a-zA-Zа-яА-Я_\d]+)+\s*\(", + "ВызовМетодаОбъекта" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[a-zA-Zа-яА-Я_\d]+\s*(\.\s*[a-zA-Zа-яА-Я_\d]+)+", + "ОбращениеКОбъекту" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[a-zA-Zа-яА-Я_\d]+\s*\(", + "ВызовФункцииПроцедуры" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^\b(Истина|True|Ложь|False|Если|If|Тогда|Then|Иначе|Else|ИначеЕсли|ElseIf|КонецЕсли|EndIf|Не|Not)\b", + "Оператор" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^[a-zA-Zа-яА-Я_\d]+(\.[a-zA-Zа-яА-Я_\d]+)*", + "ИмяОбъекта" + )); + Спецификация.Добавить(ОбщийНаборИнструментов.ТокенРегулярноеВыражение( + "^.", + "ЛюбойСимвол" + )); Возврат Спецификация; КонецФункции -Функция ТокенРегулярноеВыражение(Паттерн, ТипТокена) - - РегулярноеВыражение = Новый РегулярноеВыражение(Паттерн); - РегулярноеВыражение.Многострочный = Ложь; - - Возврат Новый СпецификацияТокенРегулярноеВыражение(РегулярноеВыражение, ТипТокена); - -КонецФункции - Процедура ОбработатьТокен(Токен, ТекущееСостояние) ТипТокена = Токен.ТипТокена(); diff --git a/src/internal/Модули/ИнициализацияМультиязычности.os b/src/internal/Модули/ИнициализацияМультиязычности.os index 90f8523..d111e99 100644 --- a/src/internal/Модули/ИнициализацияМультиязычности.os +++ b/src/internal/Модули/ИнициализацияМультиязычности.os @@ -1,6 +1,3 @@ #Использовать i18n -ПутьКРесурсам = Новый Файл(ОбъединитьПути(ТекущийСценарий().Каталог, "../../locales")).ПолноеИмя; - -Мультиязычность.УстановитьЛокальПоУмолчанию("ru"); -МенеджерРесурсовЛокализации.ДобавитьКаталог(ПутьКРесурсам); \ No newline at end of file +МенеджерРесурсовЛокализации.ДобавитьКаталог(ОбъединитьПути(ТекущийСценарий().Каталог, "../../locales")); \ No newline at end of file diff --git a/src/internal/Модули/ОбщийНаборИнструментов.os b/src/internal/Модули/ОбщийНаборИнструментов.os index 78e02c4..338e86e 100644 --- a/src/internal/Модули/ОбщийНаборИнструментов.os +++ b/src/internal/Модули/ОбщийНаборИнструментов.os @@ -1,3 +1,5 @@ +#Использовать tokenizer + #Область ПрограммныйИнтерфейс Процедура ДополнитьМассив(МассивПриемник, МассивИсточник) Экспорт @@ -124,4 +126,13 @@ Возврат Схема = ПротоколыURL.FTP Или Схема = ПротоколыURL.FTPS; КонецФункции +Функция ТокенРегулярноеВыражение(Паттерн, ТипТокена) Экспорт + + РегулярноеВыражение = Новый РегулярноеВыражение(Паттерн); + РегулярноеВыражение.Многострочный = Ложь; + + Возврат Новый СпецификацияТокенРегулярноеВыражение(РегулярноеВыражение, ТипТокена); + +КонецФункции + #КонецОбласти \ No newline at end of file