Tiny語法分析器(遞歸下降分析法實現)


遞歸規約規則是這樣的

program→stmt-sequence

stmt-sequence→stmt-sequence;statement|statement

statement→if-stmt|repate-stmt|assign-stmt|read-stmt|write-stmt|var-stmt

var-stmt→var identifier-assign-name := type

identifier-assign-name→name

if-stmt→if exp then stmt-sequence ;

            |if exp then stmt-sequence else stmt-sequence ;

reapet-stmt→repeat stmt-sequence until exp

assign-stmt→identifier := exp

read-stmt→read indetifier

write-stmt→write exp

exp→simple-exp comparison simple-exp |simple-exp

comparison→<|=

simple-exp→simple-exp addop term | term

addop→+|-

term→term mulop factor | factor

mulop → *|/

factor→ (exp)|number | identifier

因為源碼分了好幾個文件,不太好貼出來了,所以決定上傳到Github上,

項目地址:https://github.com/INnoVationes/TinyCompiler

文件內容:ExplLexicalAnalyzer  :詞法分析器

ExplParsing :語法分析器

GLOBALS: 一些全局變量,包括語法樹結構等

Util:打印語法樹,處理變量等內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM