詞法文法和句法文法用文法產生式來表示。每個文法產生式定義一個非結束符號和它可能的擴展(由非結束符或結束符組成的序列)。在文法產生式中,非結束符號顯示為斜體,而結束符號顯示為等寬字體。
文法產生式的第一行是該產生式所定義的非結束符號的名稱,後跟一個冒號。每個後續的縮進行列出一個可能的擴展,它是以非結束符或結束符組成的序列的形式給出的。例如,產生式:
while-statement:(while 語句:)
while ( boolean-expression ) embedded-statement(while ( 布爾表達式 ) 嵌入語句)
定義了一個 while 語句,它是這樣構成的:由標記 while 開始,後跟標記“(”、布爾表達式、標記“)”和嵌入的語句。
當有不止一個可能的非結束符號擴展時,列出這些可能的擴展(每個擴展單獨占一行)。例如,產生式:
statement-list:(語句列表:)
statement(語句)
statement-list statement(語句列表 語句)
定義一個語句列表,它或僅含有一個語句,或由一個語句列表和隨後跟著的一個語句組成。換言之,定義是遞歸的,語句列表由一個或多個語句組成。
一個符號若以下標“可選”作其後綴,就表明該符號是可選的。產生式:
block:(塊:)
{ statement-listopt }({ 語句列表可選 })
是以下產生式的簡短形式:
block:(塊:)
{ }
{ statement-list }({ 語句列表 })
它定義了一個塊,此塊由一個用“{”和“}”標記括起來的可選語句列表組成。
可選項通常在單獨的行上列出,但是當有許多可選項時,可以在單行上給定的擴展列表之前加上短語“下列之一”。這只是在單獨一行上列出每個可選項的簡短形式。例如,產生式:
real-type-suffix: one of(實數類型後綴:下列之一)
F f D d M m
是以下產生式的簡短形式:
real-type-suffix:(實數類型後綴:)
F
f
D
d
M
m