iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
自我挑戰組

Lex & Yacc 學習筆記 系列

從0開始學習Lex&Yacc這個好用的編譯器設計工具。
本系列的範例主要使用C++搭配Lex&Yacc,適合已有C++程式基礎,但沒有接觸過Lex&Yacc的人。

鐵人鍊成 | 共 30 篇文章 | 3 人訂閱 訂閱系列文 RSS系列文
DAY 21

[Day21] Yacc - 多型別字串的運用 (Union)

本篇內容 介紹Union語法 介紹YYSTYPE的進階應用 範例:簡易計算機6 前言 在之前所有的範例中,都只有讀取字串或是整數。字串是預設的型別,整數則是...

2023-09-21 ‧ 由 BarleyTea 分享
DAY 22

[Day22] Yacc - Error Handling

本篇內容 複習 yyerror 介紹 YYABORT 範例 - 簡易計算機7 介紹 我們在 [Day7] Lex - Error Handling 的時候,...

2023-09-22 ‧ 由 BarleyTea 分享
DAY 23

[Day23] Lex 進階 - State 其他用法

本篇內容 介紹 State 的共用語法 範例 - DNA字母統計2 State 的共用語法 我們在 [Day4] Lex - State 中,有介紹 Sta...

2023-09-23 ‧ 由 BarleyTea 分享
DAY 24

[Day24] Lex 進階 - yywrap 應用

本篇內容 介紹讀取多份檔案的程式架構 範例 - 文字計數器 介紹 我們在先前的範例中,程式在讀取完單一檔案便結束了。如果要讀取多份檔案的話,程式就要不斷的呼...

2023-09-24 ‧ 由 BarleyTea 分享
DAY 25

[Day25] Yacc 進階 - 空白規則

本篇內容 介紹Yacc的空白規則 範例 - 陣列讀取 介紹 我們在此之前已經介紹Yacc當中的基本規則、OR規則與遞迴規則。今天則是要來看空白規則。 空白規...

2023-09-25 ‧ 由 BarleyTea 分享
DAY 26

[Day26] Yacc 進階 - Embedded Actions

本篇內容 介紹Embedded Actions 範例:比大小 Embedded Actions: 邊讀取邊執行 在Yacc語法中,可以允許在規則定義之間插入...

2023-09-26 ‧ 由 BarleyTea 分享
DAY 27

[Day27] Yacc 進階 - 使用外部變數

本篇內容 在C++主程式中定義變數,並使用於parser 範例:陣列讀取2 介紹 我們在之前的例子中,主程式在讀取完資料後就結束了。如果要繼續做後續的部分,...

2023-09-27 ‧ 由 BarleyTea 分享
DAY 28

[Day28] Yacc - Command Line輸入

本篇內容 如何將 terminal input 導入 parser 範例:即時計算機 介紹 我們在之前所有的範例中,都是把文本寫在檔案內,再由 parser...

2023-09-28 ‧ 由 BarleyTea 分享
DAY 29

[Day29] Yacc - Yacc Debug

本篇內容 介紹 Yacc 的 debug 工具 Debug 工具介紹 YYDEBUG 我們在 [Day18] Yacc - Ambiguity and Co...

2023-09-29 ‧ 由 BarleyTea 分享
DAY 30

[Day30] 完賽心得

完賽心得 終於來到鐵人賽的最後一天了。每次在網路上尋找疑難雜症的解答時,都會看到不少鐵人賽的文章。每當我在文章中找到想要的資訊時,除了默默感謝大神的無私分享之外...

2023-09-30 ‧ 由 BarleyTea 分享