×
lex & yacc 第二版 (修訂版)
作者: John R. Levine, Tony Mason, Doug Brown
譯者:林偉豪
書號: A020
出版日: 1999/03/01
ISBN:9789578247093
附件: 無
定價: 680
電子書: 未出版
購買紙本書
內容特色
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 的範例程式碼
習題

第五章 解析SQL
SQL簡介
句法檢查程式
解析器
嵌入式SQL
習題

第六章 lex的規格
lex規格的結構
BEGIN
有一些問題(Bugs)
字元翻譯
參考前後文
替換
ECHO
引入檔案
從字串讀取資料
Input()
內部表格(%N)
lex函示庫
行數與yylineno
文字區塊
如何在一個程式中使用多個字彙分析器
output()
lex 產生的字彙分析器的可攜性
常規表示法
REJECT
yylex()
開始狀態
unput()
yyinput()、yyoutput() 與 yyunput()
yyleng
yyless()
yylex()
yymore()
yytext
yywrap()

第七章 yacc的語法
yacc語法的結構
動作程式碼
分歧性與衝突
yacc的錯誤
結束記號
error token與錯誤修護
%ident宣言
繼承屬性($0)
字彙回饋
文字區塊
文字token
yacc解析器的可攜性
優先順序、關連鍵與運算原宣告
遞回規則
規則
特殊字元
%start宣言
符號值
Token
%type宣言
%union宣言
其他變形與多重語法
y.output檔
yacc函示庫
YYABORT
YYACCEPT
YYBACKUP
yyclearin
yydebug與YYDEBUG
yyerrok
YYERROR
yyerror()
yyparse
YYRECOVERING()

第八章 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解析器程式碼」
「名詞解釋」
「參考書目」
lex & yacc 第二版 (修訂版) 分享
  • 作者: John R. Levine, Tony Mason, Doug Brown
  • 書號:A020
  • ISBN:9789578247093
  • 出版日:1999/03/01
  • 定價:$ 680
  • 電子書:已出版
  • 購買紙本書

    內容特色
    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 的範例程式碼
    習題

    第五章 解析SQL
    SQL簡介
    句法檢查程式
    解析器
    嵌入式SQL
    習題

    第六章 lex的規格
    lex規格的結構
    BEGIN
    有一些問題(Bugs)
    字元翻譯
    參考前後文
    替換
    ECHO
    引入檔案
    從字串讀取資料
    Input()
    內部表格(%N)
    lex函示庫
    行數與yylineno
    文字區塊
    如何在一個程式中使用多個字彙分析器
    output()
    lex 產生的字彙分析器的可攜性
    常規表示法
    REJECT
    yylex()
    開始狀態
    unput()
    yyinput()、yyoutput() 與 yyunput()
    yyleng
    yyless()
    yylex()
    yymore()
    yytext
    yywrap()

    第七章 yacc的語法
    yacc語法的結構
    動作程式碼
    分歧性與衝突
    yacc的錯誤
    結束記號
    error token與錯誤修護
    %ident宣言
    繼承屬性($0)
    字彙回饋
    文字區塊
    文字token
    yacc解析器的可攜性
    優先順序、關連鍵與運算原宣告
    遞回規則
    規則
    特殊字元
    %start宣言
    符號值
    Token
    %type宣言
    %union宣言
    其他變形與多重語法
    y.output檔
    yacc函示庫
    YYABORT
    YYACCEPT
    YYBACKUP
    yyclearin
    yydebug與YYDEBUG
    yyerrok
    YYERROR
    yyerror()
    yyparse
    YYRECOVERING()

    第八章 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解析器程式碼」
    「名詞解釋」
    「參考書目」