TWiki
>
P1076 Web
>
Vhdl2019CollectedRequirements
>
RecordMemberAttribute
>
TopLCS2016_069a
>
TopLCS2016_069b
(2017-01-13,
BrentHahoe
)
(raw view)
E
dit
A
ttach
---+!! Language Change Specification for Record Introspection & Indexing ----+!! Secondary LCS: This LCS details changes for an attribute to provide introspection of record types. %TOC% | <sticky><b>LCS Number:</b></sticky> | LCS-2016-069b | | <sticky><b>Version:</b></sticky> | 1 | | <sticky><b>Date:</b></sticky> | 13-Jan-17 | | <sticky><b>Status:</b></sticky> | Draft | | <sticky><b>Author:</b></sticky> | [[Main.BrentHahoe][Brent Hayhoe]] | | <sticky><b>Email:</b></sticky> | %USERINFO{"BrentHahoe" format="$emails"}% | | <sticky><b>Source Doc:</b></sticky> | [[RecordMemberAttribute][Record Introspection & Indexing]] | | <sticky><b>Summary:</b></sticky> | Definition of attributes for use with introspection of record types | | <sticky><b>Related LCS:</b></sticky> | [[TopLCS2016_069a][LCS-2016-069a]] | ---++ Voting Results: Cast your votes here * Yes: 1. %USERSIG{BrentHahoe - 2017-01-13}% - Version 1 * No: 1. %USERSIG{LievenLemiengre - 2017-01-09}% - Version 1 * Abstain: ---++ Details of Language Change: Key: * LRM text is shown between single quotes <sticky>%BLACK%'... P1076 LRM quoted text ...'%ENDCOLOR%</sticky> * Existing LRM text is shown in <sticky>%BLACK%<b>BLACK</b> coloured font%ENDCOLOR%</sticky> * Additional LRM text is shown in <sticky>%RED%<b>RED</b> coloured font%ENDCOLOR%</sticky> * Deleted LRM text is shown in <sticky>%RED%<strike><b>RED</b> with strike-through</strike>%ENDCOLOR%</sticky> * In order to try and emphasize text in italic font: * Italic font in existing LRM text is shown in <sticky>%GRAY%<i><b>GRAY</b> italic font</i>%BLACK%</sticky> * Italic font in new LRM text is shown in <sticky>%ORANGE%<i><b>ORANGE</b> italic font</i>%ENDCOLOR%</sticky> * Italic font in deleted LRM text is shown in <sticky>%ORANGE%<strike><i><b>ORANGE</b> with strike-through</i></strike>%ENDCOLOR%</sticky> * Editing instructions are shown in <sticky>%GREEN%<b>GREEN</b> coloured font%ENDCOLOR%</sticky> ---+++ LRM 16.2.3 Predefined attributes of arrays ---++++!! page 243 top %GREEN% Edit: Replace the LRM 16.2.3 title with: <b>16.2.3 Predefined attributes of%RED%<strike> arrays</strike> composites</b> ----- %GREEN% Edit: Insert new title after LRM 3.2.3 title: %RED% <b>16.2.3.1 Predefined attributes of arrays</b> ---++++!! page 245 top %GREEN% Edit: Insert new title before LRM 3.2.4 title: %RED% <b>16.2.3.2 Predefined attributes of records</b> %RED% An implicit enumeration type E is declared whenever a record type R is declared, such that each enumeration literal E'POS(n-1) is an identifier identical to the simple name of the nth element of the record type R'NAME(n-1). | %RED% R'RECORDS | %RED% Kind: | %RED% Type. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype. | | %RED% | %RED% Result: | %RED% The implicit enumeration type E. | | %RED% R'NAME [(N)] | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype. | | %RED% | %RED% Parameter: | %RED% A locally static expression of type universal_integer, the value of which shall not exceed the length of E. If omitted, it defaults to 1. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% E'POS(N). | | %RED% R'LEFTOF [(L)] | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Parameter: | %RED% An enumeration literal of type E. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% E'LEFTOF(L). | | %RED% | %RED% Restrictions: | %RED% An error occurs if Lequals E'LEFT or if L does not belong to the range E'LOW to E'HIGH. | | %RED% R'RIGHTOF [(L)] | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Parameter: | %RED% An enumeration literal of type E. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% E'RIGHTOF(L). | | %RED% | %RED% Restrictions: | %RED% An error occurs if Lequals E'RIGHT or if L does not belong to the range E'LOW to E'HIGH. | | %RED% R'HIGH | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% E'HIGH. | | %RED% R'LOW | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% E'LOW. | | %RED% R'RANGE  | %RED% Kind: | %RED% Range. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% The range R'LEFT to R'RIGHT. | | %RED% R'REVERSE_RANGE | %RED% Kind: | %RED% Range. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Result type: \ | %RED% Implicit type E. | | %RED% | %RED% Result: | %RED% The range R'RIGHT downto R'LEFT. | | %RED% R'LENGTH | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Result type: \ | %RED% universal_integer. | | %RED% | %RED% Result: | %RED% Number of values in the Nth index range; i.e., if the Nth index range of A is a null range, then the result is 0. Otherwise, the result is the value of T'POS(R'HIGH(N)) – T'POS(R'LOW(N)) + 1, where T is the subtype of the Nth index of A. | | %RED% R'ASCENDING [(N)] \ | %RED% Kind: | %RED% Function. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype with element index ranges that are defined by a constraint. | | %RED% | %RED% Parameter: | %RED% A locally static expression of type universal integer, the value of which shall be greater than zero and shall not exceed the dimensionality of A. If omitted, it defaults to 1. | | %RED% | %RED% Result type: \ | %RED% Type BOOLEAN. | | %RED% | %RED% Result: | %RED% TRUE if the Nth index range of A is defined with an ascending range; FALSE otherwise. | | %RED% R'ELEMENT | %RED% Kind: | %RED% Subtype. | | %RED% | %RED% Prefix: | %RED% Any prefix R that is appropriate for a record object, or an alias thereof, or that denotes a record subtype. | | %RED% | %RED% Result: | %RED% If A is an array subtype, the result is the element subtype of A. If A is an array object, the result is the fully constrained element subtype that is the element subtype of A, together with constraints defining any index ranges that are determined by application of the rules of 5.3.2.2. (If A is an alias for an array object, then the result is determined by the declaration of A, not that of the object.) | ---+ Comments This proposal is based on the idea that these attributes can be used within a for-loop. The iterator of a for-loop is not locally static so it's unusable as an argument of an attribute. So, you can add these attributes but you will not achieve your usecase. -- %BUBBLESIG{LievenLemiengre - 2017-01-09}% Is this the same for arrays as well? -- %BUBBLESIG{BrentHahoe - 2017-01-10}% %COMMENT%
E
dit
|
A
ttach
|
P
rint version
|
H
istory
: r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r1 - 2017-01-13 - 01:08:12 -
BrentHahoe
P1076
Log In
or
Register
P1076 Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
Webs
Main
P1076
Ballots
LCS2016_080
P10761
P1647
P16661
P1685
P1734
P1735
P1778
P1800
P1801
Sandbox
TWiki
VIP
VerilogAMS
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback