BNF 鋱可喏 新浪部落格

2021-10-10 12:12:32 字數 1118 閱讀 4337

bnf:

以形式化的符號來描述給定程式語言的語法規則。

比如:c語言的宣告語句可以用bnf這樣描述:   

《宣告語句》 ::= 《型別》《識別符號》; | 《型別》《識別符號》[《數字》];   

這一句中《宣告語句》這個非終結符被定義成了兩種形式(上面用|隔開的兩部分),同時在這裡引入了三個終結符: 分號; 左方括號[,右方括號 ]。   

《型別》 ::= 《簡單型別》 | 《指標型別》 | 《自定義型別》   

《指標型別》 ::= 《簡單型別》 * | 《自定義型別》 *   

《簡單型別》 ::= int|char|double|float|long|short|void   

《自定義型別》 ::= enum《識別符號》|struct《識別符號》|union《識別符號》|《識別符號》  

到這裡就基本上把《型別》定義清楚了。  

《數字》 ::= 0x《十六進製制數字串》 | 0《八進位制數字串》 | 《十進位制數字串》   

《十六進製制數字串》 ::= 《十六進製制數字》 | 《十六進製制數字串》《十六進製制數字》   

《八進位制數字串》 ::= 《八進位制數字》 | 《八進位制數字串》《八進位制數字》   

《十進位制數字串》 ::= 《十進位制數字》 | 《十進位制數字串》《十進位制數字》   

《十六進製制數字》 ::= 《十進位制數字》 | a | b | c | d | e | f   

《十進位制數字》 ::= 《八進位制數字》 | 8 | 9   

《八進位制數字》 ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7   

到這裡就把《數字》定義清楚了   

《識別符號》 ::= 《字母》 | 《識別符號》 《字母數字串》   

《字母數字串》 ::= 《字母》|《十進位制數字》|《字母數字串》《字母》|《字母數字串》《十進位制數字》   

《字母》 ::= _ | 《大寫字母》 | 《小寫字母》   

《小寫字母》 ::= a|b|c|d|e|f|g|h|i|j ……    

《大寫字母》 ::= a|b|c|d|e|f|g|h|i|j ……   

到此為止整個宣告語句就定義完了(就是說已經沒有非終結符了)。

MakeFile使用 鋱可喏 新浪部落格

make 命令執行時,需要乙個 makefile 檔案,以告訴 make 命令如何去編譯和鏈結程式。以下是關於 makefile 使用的幾點總結。l 所有目標檔案的挨個值 l 所有依賴目標的集合。例子 main.out main.o line1.o line2.o g o main.out main...

幀動畫 鋱可喏 新浪部落格

幀動畫稱為drawable animation或者frame animation。l將動畫需要的靜態幀放在res drawable目錄下。l 在res anim目錄下新建resource type為 drawable 並且rootelement為animation list的xml檔案 main 1...

socket網路程式設計 鋱可喏 新浪部落格

作為bsd unix 的程序通訊 機制,取後一種意思。通常也稱作 套接字 用於描述 ip位址 和埠,是乙個通訊鏈的控制代碼。在 internet 上的主機 一般執行了多個服務軟體,同時提供幾種服務。每種服務都開啟乙個 socket 並繫結到乙個埠上,不同的埠對應於不同的服務。socket 正如其英文...