From be92ef21044c76992186e0fa19a1a562a5a748e3 Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Sun, 14 Jan 2024 14:03:47 +0100 Subject: [PATCH] #3023 --- Localization/DefaultLang.resources | Bin 101625 -> 101686 bytes TestSuite/errors/err0535.pas | 6 ++++++ .../TreeConversion/syntax_tree_visitor.cs | 2 ++ bin/Lng/Eng/SemanticErrors_ib.dat | 1 + bin/Lng/Rus/SemanticErrors_ib.dat | 1 + bin/Lng/Ukr/SemanticErrors_ib.dat | 1 + bin/Lng/zh_CN/SemanticErrors_ib.dat | 1 + 7 files changed, 12 insertions(+) create mode 100644 TestSuite/errors/err0535.pas diff --git a/Localization/DefaultLang.resources b/Localization/DefaultLang.resources index 69518271be235d38b8f23c1032064d091a96a724..814fc980c385db790b948ed63d3cea77eb2d6cb0 100644 GIT binary patch delta 83 zcmV-Z0IdJ{nFh9+29V$ZQnBG-d^fMPEZfPEJo$UqVG+MNLptSv|8de delta 23 fcmdlsi|yx3wh0dyMK?Z7tZA;V-CkeIxSbyWi0%sA diff --git a/TestSuite/errors/err0535.pas b/TestSuite/errors/err0535.pas new file mode 100644 index 000000000..b414bd794 --- /dev/null +++ b/TestSuite/errors/err0535.pas @@ -0,0 +1,6 @@ +//!Имя библиотеки не может быть пустым +procedure p1; external ''; + +begin + +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 14fead5d6..e7bcfc734 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -18297,6 +18297,8 @@ namespace PascalABCCompiler.TreeConverter } else AddError(get_location(_external_directive.modulename), "STRING_CONSTANT_OR_IDENTIFIER_EXPECTED"); + if (string.IsNullOrEmpty(module_name)) + AddError(get_location(_external_directive.modulename), "DLLNAME_CANNOT_BE_EMPTY"); if (_external_directive.name == null) { name = context.converted_func_stack.top().name; diff --git a/bin/Lng/Eng/SemanticErrors_ib.dat b/bin/Lng/Eng/SemanticErrors_ib.dat index 372fa4c9f..d1761f114 100644 --- a/bin/Lng/Eng/SemanticErrors_ib.dat +++ b/bin/Lng/Eng/SemanticErrors_ib.dat @@ -63,6 +63,7 @@ EXTENSION_CONSTRUCTOR_NOT_ALLOWED=Cannot declare extensions-constructors CLASS_MEMBER_{0}_EXPECTED='{0}' must be method or constructor DESTRUCTOR_MUST_HAVE_NAME=Destructor must have name STRING_CONSTANT_EXPECTED=String constant expected +DLLNAME_CANNOT_BE_EMPTY=Library name cannot be empty STRING_CONSTANT_OR_IDENTIFIER_EXPECTED=String constant or identifier expected FUNCTION_MUST_HAVE_DLLIMPORT_ATTRIBUTE=DllImport attribute expected EXPECTED_ATTRIBUTE_INITIALIZER=Attribute initializer expected diff --git a/bin/Lng/Rus/SemanticErrors_ib.dat b/bin/Lng/Rus/SemanticErrors_ib.dat index d960a405c..472d9d8a2 100644 --- a/bin/Lng/Rus/SemanticErrors_ib.dat +++ b/bin/Lng/Rus/SemanticErrors_ib.dat @@ -63,6 +63,7 @@ EXTENSION_CONSTRUCTOR_NOT_ALLOWED=Определение extensions-констр CLASS_MEMBER_{0}_EXPECTED={0} должен быть методом или конструктором DESTRUCTOR_MUST_HAVE_NAME=Деструктор должен иметь имя STRING_CONSTANT_EXPECTED=Ожидалась строковая константа +DLLNAME_CANNOT_BE_EMPTY=Имя библиотеки не может быть пустым STRING_CONSTANT_OR_IDENTIFIER_EXPECTED=Ожидались строковая константа или идентификатор FUNCTION_MUST_HAVE_DLLIMPORT_ATTRIBUTE=Подпрограмма должна иметь атрибут DllImport EXPECTED_ATTRIBUTE_INITIALIZER=Ожидался инициализатор атрибута diff --git a/bin/Lng/Ukr/SemanticErrors_ib.dat b/bin/Lng/Ukr/SemanticErrors_ib.dat index a754177d3..45aa78a93 100644 --- a/bin/Lng/Ukr/SemanticErrors_ib.dat +++ b/bin/Lng/Ukr/SemanticErrors_ib.dat @@ -170,6 +170,7 @@ NON_PUBLIC_RECORD_CONSTRUCTORS_NOT_ALLOWED=Записи могут иметь т EXIT_BREAK_CONTINUE_IN_FINALLY_BLOCK=Использование exit, break и continue в блоке finally недопустимо ANONYMOUS_DELEGATES_WITH_GENERIC_PARAMS_NOT_ALLOWED=Нельзя вывести тип анонимного делегата с генерик-параметрами. Укажите тип переменной явно. CANNOT_IMPLEMENT_METHODS_IN_OTHER_MODULE=Нельзя реализовывать метод из другого модуля +DLLNAME_CANNOT_BE_EMPTY=Имя библиотеки не может быть пустым %PREFIX%=COMPILATIONERROR_ UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}' diff --git a/bin/Lng/zh_CN/SemanticErrors_ib.dat b/bin/Lng/zh_CN/SemanticErrors_ib.dat index e1dd65b63..9790cfc0a 100644 --- a/bin/Lng/zh_CN/SemanticErrors_ib.dat +++ b/bin/Lng/zh_CN/SemanticErrors_ib.dat @@ -178,6 +178,7 @@ NON_PUBLIC_RECORD_CONSTRUCTORS_NOT_ALLOWED=记录不能有非公共的默认构 EXIT_BREAK_CONTINUE_IN_FINALLY_BLOCK=finally 中不允许退出、中断和继续 ANONYMOUS_DELEGATES_WITH_GENERIC_PARAMS_NOT_ALLOWED=无法推断具有泛型参数的匿名委托的类型。 显式声明变量类型。 CANNOT_IMPLEMENT_METHODS_IN_OTHER_MODULE=Can not implement methods in other module +DLLNAME_CANNOT_BE_EMPTY=Library name cannot be empty %PREFIX%=COMPILATIONERROR_ UNIT_MODULE_EXPECTED_LIBRARY_FOUND=需要单元,找到库 ASSEMBLY_{0}_READING_ERROR=读取程序集 '{0}' 时出错