Number | 238
|
Category | errata
|
Synopsis | A.1.4, A.7.3: Should range_expression be constant_range_expression?
|
State | lrmdraft
|
Class | errata-discuss
|
Arrival-Date | Dec 31 2002
|
Originator | Shalom.Bresticker@motorola.com
|
Release | 2001b: 12.1 (Syntax 12-1), 12.3.1 (Syntax 12-5), 14.2.2 (Syntax 14-3), A.1.4, A.7.3
|
Environment |
#123 SV-BC19-45,47 |
Description |
There are a few BNFs which offer as indexing alternatives either [ constant_expression ] or [ range_expression ]. Specifically, port_reference ::= (A.1.4, Syntax 12-1, 12-5) port_identifier | port_identifier [ constant_expression ] | port_identifier [ range_expression ] specify_input_terminal_descriptor ::= (A.7.3, Syntax 14-3) input_identifier | input_identifier [ constant_expression ] | input_identifier [ range_expression ] specify_output_terminal_descriptor ::= (A.7.3, Syntax 14-3) output_identifier | output_identifier [ constant_expression ] | output_identifier [ range_expression ] My immediate question is: range_expression includes expression, which is not restricted to be a constant. constant_expression is therefore a proper subset of range_expression. Either range_expression should have been constant_range_expression or constant_expression should have been expression. A related issue that will soon be filed comes from SV-BC19-45 and 19-47 which points out that constant_range_expression includes constant_expression and range_expression includes expression, so why do non-terminals such as net_lvalue and primary and variable_lvalue and the 3 above, which use constant_range_expression or range_expression, need constant_expression or expression as well? This also seems to be related to issue #123. |
Fix |
REPLACE: port_reference ::= (A.1.4, Syntax 12-1, 12-5) port_identifier | port_identifier [ constant_expression ] | port_identifier [ range_expression ] specify_input_terminal_descriptor ::= (A.7.3, Syntax 14-3) input_identifier | input_identifier [ constant_expression ] | input_identifier [ range_expression ] specify_output_terminal_descriptor ::= (A.7.3, Syntax 14-3) output_identifier | output_identifier [ constant_expression ] | output_identifier [ range_expression ] WITH: port_reference ::= (A.1.4, Syntax 12-1, 12-5) port_identifier [ [ constant_range_expression ] ] specify_input_terminal_descriptor ::= (A.7.3, Syntax 14-3) input_identifier [ [ constant_range_expression ] ] specify_output_terminal_descriptor ::= (A.7.3, Syntax 14-3) output_identifier [ [ constant_range_expression ] ] |
Audit-Trail |
|
Unformatted |
|
Hosted by Boyd Technology