[sv-ec] randsequence grammar issues

From: Ryan, Ray <Ray_Ryan@mentorg.com>
Date: Tue Apr 20 2004 - 18:27:08 PDT

In section 12.6 and A.6.12:

Issue 1:
The randsequence grammar references 'production_identifier' and
'production_name'.
Neither of these is defined. The single term 'production_indentifier' should
be used (replacing 'production_name'). The following production should be
added to A.9.3

    production_identifier ::= identifier

Issue 2:
The following productions define the grammar for a case statement within a
randsequence:

    rs_case ::= case ( expression ) rs_case_item { rs_case_item } endcase
    rs_case_item ::=
          expression { , expression } : production_item
        | default [ : ] production_item
    production_item := production_identifier [ ( list_of_arguments ) ]

Note that an individual 'rs_case_item' can optionally end with a
'list_of_arguments'
enclosed within parenthesis. A following 'rs_case_item' can begin with an
expression,
which can also consist of a variable enclosed within parenthesis. This
complicates
implementation of the parser. To facilate implementation, it would be much
easier
(straight-forward) if 'rs_case_item's were terminate by a semi-colon.
That is, change the 'rs_case_item' production to:
    rs_case_item ::=
          expression { , expression } : production_item ;
        | default [ : ] production_item ;

The example in 12.16.3 would then look like:
        randsequence()
                SELECT : case ( device & 7 )
                        0 : NETWORK;
                        1, 2 : DISK;
                        default : MEMORY;
                endcase ;
                ...
        endsequence

Issue 3: Minor wording problem.
In 12.16.1, second paragraph, second sentence reads:
  "Weight expression must evaluate to integral non-negative values."
It should be:
  "The weight expression must evaluate to an integral non-negative value."

- Ray
Received on Tue Apr 20 18:27:23 2004

This archive was generated by hypermail 2.1.8 : Tue Apr 20 2004 - 18:29:29 PDT