This commit is contained in:
Бондарев Иван 2018-08-27 21:09:54 +02:00
parent 051b867a4d
commit ea4e70e540
8 changed files with 1337 additions and 1308 deletions

View file

@ -2,7 +2,7 @@
// This CSharp output file generated by Gardens Point LEX
// Version: 1.1.3.301
// Machine: IVAN-PC
// DateTime: 26.08.2018 14:17:42
// DateTime: 27.08.2018 21:05:56
// UserName: Ivan
// GPLEX input file <ABCPascal.lex>
// GPLEX frame file <embedded resource>

View file

@ -3639,6 +3639,10 @@ attribute_variable
{
$$ = new attribute(null, $1 as named_type_reference, $2 as expression_list, @$);
}
| template_type optional_expr_list_with_bracket
{
$$ = new attribute(null, $1 as named_type_reference, $2 as expression_list, @$);
}
;
dotted_identifier

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,12 @@
type
TMyAttribute<T> = class(System.Attribute)
end;
ByteAttribute = TMyAttribute<byte>;
[ByteAttribute()]
TClass = class
end;
begin
end.

View file

@ -11596,6 +11596,8 @@ namespace PascalABCCompiler.TreeConverter
}
else
AddError(get_location(attr.qualifier), "ATTRIBUTE_QUALIFIER_MUST_BE_FIRST");
if (tn.is_generic_type_instance || tn.is_generic_type_definition)
AddError(get_location(attr), "ATTRIBUTE_CANNOT_BE_GENERIC");
check_for_usage_attribute(ctn, targets, tn.name, get_location(attr), qualifier);
attribute_converted = false;

View file

@ -141,6 +141,7 @@ ABSTRACT_CLASS_CANNOT_BE_SEALED=Abstract classes can not be sealed
EXPRESSION_EXPECTED=Expression expected
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Can not declare class attributes in class predefintions
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Generic-records can not have attribute LayoutKind.&Explicit
ATTRIBUTE_CANNOT_BE_GENERIC=Attributes cannot be generic
%PREFIX%=COMPILATIONERROR_
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Unit expected, library found
ASSEMBLY_{0}_READING_ERROR=Error by reading assembly '{0}'

View file

@ -136,6 +136,7 @@ ABSTRACT_CLASS_CANNOT_BE_SEALED=Абстрактный класс не може
EXPRESSION_EXPECTED=Ожидалось выражение
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Недопустимо определять атрибуты класса в его предописании
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Генерик-записи не могут иметь атрибут LayoutKind.&Explicit
ATTRIBUTE_CANNOT_BE_GENERIC=Атрибуты не могут быть генерик-классами
%PREFIX%=COMPILATIONERROR_
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Ожидался модуль, а встречена библиотека
ASSEMBLY_{0}_READING_ERROR=Ошибка при чтении сборки '{0}'

View file

@ -134,6 +134,7 @@ ABSTRACT_CLASS_CANNOT_BE_SEALED=Абстрактный класс не може
EXPRESSION_EXPECTED=Ожидалось выражение
CLASS_ATTRIBUTE_NOT_ALLOWED_IN_CLASS_PREDEFINTIONS=Недопустимо определять атрибуты класса в его предописании
GENERIC_RECORDS_CANNOT_HAVE_EXPLICIT_LAYOUT=Генерик-записи не могут иметь атрибут LayoutKind.&Explicit
ATTRIBUTE_CANNOT_BE_GENERIC=Атрибуты не могут быть генерик-классами
%PREFIX%=COMPILATIONERROR_
UNIT_MODULE_EXPECTED_LIBRARY_FOUND=Очікувався модуль, а зустріли бібліотеку
ASSEMBLY_{0}_READING_ERROR=Помилка при читанні збірки '{0}'