學習C#無詞尾符號經(jīng)驗談
C#的文法符號
一個C#程序由一個或多個源文件組成。一個源文件是一個統(tǒng)一字符編碼的字符的有序序列。源文件通常和文件系統(tǒng)中的文件有一一對應關系,但是這個對應關系并不需要。
C#的詞匯和句子的文法散布在整個文章中。詞匯文法定義如能把字符組合為形式標記;句子的文法定義了如何把標記組合為C#程序。
文法生成包括無詞尾符號和有詞尾符號。在文法生成當中,C#無詞尾符號用意大利體表示,而有詞尾符號用定寬字體。每一個C#無詞尾符號定義為一系列產(chǎn)品(production)。這一系列產(chǎn)品的***行是無詞尾符號的名稱,接下來是一個冒號。對于一個產(chǎn)品,每個連續(xù)的鋸齒狀的行的右手邊同左手邊類似是C#無詞尾符號。
例子:nonsense,terminal1,terminal2
定義了一個名為nonsense 的無詞尾符號,有兩個產(chǎn)品,一個在右手邊是terminal1,一個在左手邊是 terminal2.
選項通常列為單獨的一行,雖然有時有很多選項,短語“one of”會在選項前面。這里有一個對把每個選項都列在單獨一行的簡單縮寫的方法。
例子
letter: one ofA B C a b c
如identifier opt ,一個寫在下方的前綴 “opt”用來作為簡寫來指明一個可選的符號。例子
whole:
first-part second-partopt last-par t
是下面的縮寫:
whole:
fir st-part last-part
fir st-part second-part last-part
【編輯推薦】