詞法文法和句法文法用文法產生式來表示每個文法產生式定義一個非結束符號和它可能的擴展(由非結束符或結束符組成的序列)在文法產生式中非結束符號顯示為斜體而結束符號顯示為等寬字體
文法產生式的第一行是該產生式所定義的非結束符號的名稱後跟一個冒號每個後續的縮進行列出一個可能的擴展它是以非結束符或結束符組成的序列的形式給出的例如產生式
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
From:http://tw.wingwit.com/Article/program/net/201311/12460.html