1 out of 2 rated this helpful - Rate this topic

2.2.1 Grammar notation

Visual Studio .NET 2003

The lexical and syntactic grammars are presented using grammar productions. Each grammar production defines a non-terminal symbol and the possible expansions of that non-terminal symbol into sequences of non-terminal or terminal symbols. In grammar productions, non-terminal symbols are shown in italic type, and terminal symbols are shown in a fixed-width font.

The first line of a grammar production is the name of the non-terminal symbol being defined, followed by a colon. Each successive indented line contains a possible expansion of the non-terminal given as a sequence of non-terminal or terminal symbols. For example, the production:

while-statement:
while   (   boolean-expression   )   embedded-statement

defines a while-statement to consist of the token while, followed by the token "(", followed by a boolean-expression, followed by the token ")", followed by an embedded-statement.

When there is more than one possible expansion of a non-terminal symbol, the alternatives are listed on separate lines. For example, the production:

statement-list:
statement
statement-list   statement

defines a statement-list to either consist of a statement or consist of a statement-list followed by a statement. In other words, the definition is recursive and specifies that a statement list consists of one or more statements.

A subscripted suffix "opt" is used to indicate an optional symbol. The production:

block:
{   statement-listopt   }

is shorthand for:

block:
{   }
{   statement-list   }

and defines a block to consist of an optional statement-list enclosed in "{" and "}" tokens.

Alternatives are normally listed on separate lines, though in cases where there are many alternatives, the phrase "one of" may precede a list of expansions given on a single line. This is simply shorthand for listing each of the alternatives on a separate line. For example, the production:

real-type-suffix: one of
F f D d M m

is shorthand for:

real-type-suffix:
F
f
D
d
M
m
Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.