< >
lex與yacc 是設計編譯程式與解譯程式設計者的常用工具。只要是在輸入中搜尋樣式(pattern),或是需要在命令列中處理輸入的程式,都會用到lex 和yacc 。和傳統UNIX其他工具一樣,lex和yacc 的功能強大,操作變化多端,包含許多抽象的用法,本書利用lex與yacc 產生許多範例,甚至包括一個SQL 語言的解析程式。同時,本書包含所有常用的版本如 AT&T lex & yacc, Berkey/Gnu flex, Gnu bison, MKS lex & yacc, Abraxas PCYACC ...等等。
出版序序譯序第一章lex 與yacc一個最簡單的lex 程式利用lex 認識英文單字語法執行lex與yacc比較lex與自己寫的字彙分析器習題第二章lex常規表示法計算字數的程式解析命令列C的程式碼分析器本章摘要習題第三章yacc語法解析時的移動與簡化一個yacc解析器字彙分析器數學式與其分歧性變數與token型態符號表函數與保留字用make來產生解析器摘要習題第四章 選單產生器的語言MGL簡介MGL的設計螢幕處理結束部分的處理MGL 的範例程式碼習題第五章 解析SQLSQL簡介句法檢查程式解析器嵌入式SQL習題第六章 lex的規格lex規格的結構BEGIN有一些問題(Bugs)字元翻譯參考前後文替換ECHO引入檔案從字串讀取資料Input() 內部表格(%N)lex函示庫行數與yylineno文字區塊如何在一個程式中使用多個字彙分析器output()lex 產生的字彙分析器的可攜性常規表示法REJECTyylex()開始狀態unput()yyinput()、yyoutput() 與 yyunput()yylengyyless()yylex()yymore()yytextyywrap()第七章 yacc的語法yacc語法的結構動作程式碼分歧性與衝突yacc的錯誤結束記號error token與錯誤修護%ident宣言繼承屬性($0)字彙回饋文字區塊文字tokenyacc解析器的可攜性優先順序、關連鍵與運算原宣告遞回規則規則特殊字元%start宣言符號值Token%type宣言%union宣言其他變形與多重語法y.output檔yacc函示庫YYABORTYYACCEPTYYBACKUPyyclearinyydebug與YYDEBUGyyerrokYYERRORyyerror()yyparseYYRECOVERING()第八章 yacc的分歧性與衝突指標模型與衝突一般衝突的情形如何解決衝突摘要習題第九章 錯誤訊息與回復產生錯誤訊息錯誤回復習題附錄A 「AT&T版的lex」附錄B 「AT&T版的yacc」附錄C 「Berkeley版的yacc」附錄D 「GNU bison」附錄E 「flex」附錄F 「MKS版的lex與yacc」附錄G 「Abraxas版的lex與yacc」附錄H 「POSIX標準的lex與yacc」附錄I 「MGL編譯器程式碼」附錄J 「SQL解析器程式碼」「名詞解釋」「參考書目」
sed & awk 程式設計 第二版 精通 vi 與 vim 第七版 Python的Unix.Linux系統管理應用
購買紙本書