DC-WG: Latest DCDL Syntax

David Barton (dlb@wash.inmet.com)
Tue, 9 Feb 1999 12:09:30 -0500

I enclose below the latest version of the DCDL syntax. This reflects
comments from the common subcommittee of 2/9/99.

Dave Barton <*>
dlb@averstar.com )0(
http://www.averstar.com/~dlb
----------------------------------------------------------------
This is a definition of the DCDL syntax. The syntactic conventions
are the same as those used for the VHDL syntax description:

1) Sequencing is shown by juxtaposition.

2) Alternation is shown by a bar "|"

3) Grouping is shown by parentheses.

4) Optional constructs are encased in brackets.

5) Constructs in braces are repeated zero or more times.

Since I cannot do bolding, keywords are identified by enclosing them
in quotation marks (with normal escaped characters as necessary).

constraint ::= FUNCTION_identifier { parameter }

parameter ::= named_parameter | positional parameter

named_parameter ::= PARAMETER_iden positional_parameter

positional_parameter ::= value | positional_parameter_list

positional_parameter_list ::= "{" { value } "}"

value ::= ARGUMENT_identifier | number | quoted_string

number ::= ["-"] num [ "." num ]

quoted_string ::= "\"" {symb} "\""

In the above, FUNCTION_identifier and ARGUMENT_identifier both
correspond to the following regular expression:

identifier = [a-zA-Z][a-zA-Z0-9_]*

A PARAMETER_identifier corresponds to the following regular
expression:

PARAMETER_iden = -[a-zA-Z][a-zA-Z0-9_]*

The num terminal corresponds to the following regular expression:

num = [0-9]*

A symb can be any character, with normal escaped characters as
necessary: "\"" means a single quotation mark, "\\" is a single
backslash, "\n" for carriage return, and so on.

Whitespace consists of spaces, tab characters, vertical tabs, and
carriage returns. Any adjacent non-operators (identifiers,
PARAMETER_idens, and numbers) must be separated by whitespace.