词法文法和句法文法用文法产生式来表示每个文法产生式定义一个非结束符号和它可能的扩展(由非结束符或结束符组成的序列)在文法产生式中非结束符号显示为斜体而结束符号显示为等宽字体
文法产生式的第一行是该产生式所定义的非结束符号的名称后跟一个冒号每个后续的缩进行列出一个可能的扩展它是以非结束符或结束符组成的序列的形式给出的例如产生式
whilestatement(while 语句)
while ( booleanexpression ) embeddedstatement(while ( 布尔表达式 ) 嵌入语句)
定义了一个 while 语句它是这样构成的由标记 while 开始后跟标记(布尔表达式标记)和嵌入的语句
当有不止一个可能的非结束符号扩展时列出这些可能的扩展(每个扩展单独占一行)例如产生式
statementlist(语句列表)
statement(语句)
statementlist statement(语句列表 语句)
定义一个语句列表它或仅含有一个语句或由一个语句列表和随后跟着的一个语句组成换言之定义是递归的语句列表由一个或多个语句组成
一个符号若以下标可选作其后缀就表明该符号是可选的产生式
block(块)
{ statementlistopt }({ 语句列表可选 })
是以下产生式的简短形式
block(块)
{ }
{ statementlist }({ 语句列表 })
它定义了一个块此块由一个用{和}标记括起来的可选语句列表组成
可选项通常在单独的行上列出但是当有许多可选项时可以在单行上给定的扩展列表之前加上短语下列之一这只是在单独一行上列出每个可选项的简短形式例如产生式
realtypesuffix one of(实数类型后缀下列之一)
F f D d M m
是以下产生式的简短形式
realtypesuffix(实数类型后缀)
F
f
D
d
M
m