Everything in Rust
Beginner
用剖析表達文法 PEG 實作一套程式語言 parser
IB301 14:30 ~ 15:10 Mandarin剖析表達文法 PEG(Parsing Expression Grammar) 相對於一般較常見的 Lex/Yacc 的 LL, LR 系列的 parser,有著更簡易直覺的規則,比 Regular Expression 的定義更為清楚明瞭,可以在短時間內快速設定一套語言的語法和對應的 parser。
演講內容預計先介紹 PEG 的剖析語法的規則,並和傳統的 CFG 作簡單的相互比較;接著會介紹 Rust PEG parser 的實作套件 pest,並用它來寫一款語法極簡的語言 simple language 的 parser,來看看 Pest 用在實作上有多簡潔。
最後會藉由個人試著實作 C language PEG parser 的經驗,再次比較 PEG 和 CFG 兩種不同的語言定義,並點出 PEG 可能的缺點與極限。
參考內容:
剖析表達文法 PEG 介紹:https://yodalee.blogspot.com/2018/05/peg.html
用 Rust 實作一款簡單的語言: https://yodalee.blogspot.com/2018/06/simple-lang.html
用 PEG 實作一款簡單語言的 parser: https://yodalee.blogspot.com/2018/05/rust-pest-peg-simple.html
Collaborative note: https://hackmd.io/@coscup/SJl50Gx4r