g[e]:要求輸入乙個語句,判斷這個語句是不是屬於這個文法的。如果是則輸出「right」,如果不是,則輸出「error」。e→ebaa
a→a|bacb
b→ded|ac
c→e|dc
#include
#define len 100
using namespace std;
int i;
voide(
);voida(
);voidb(
);voidc(
);bool flag=true;
char str[len]
;int
main()
else
continue;}
return0;
}voide(
)}else
}voida(
)}else
}voidb(
)}else
if(str[i]
=='a'
)else
}voidc(
)else
}
測試輸入:eadeaaedeaebd
edeaeaadabacae
測試輸出:right編譯原理 詞法分析器
1 從源程式檔案中讀入字元。2 統計行數和列數用於錯誤單詞的定位。3 刪除空格類字元,包括回車 製表符空格。4 按拼寫單詞,並用 內碼,屬性 二元式表示。屬性值 token 的機內表示 5 如果發現錯誤則報告出錯 6 根據需要是否填寫識別符號表供以後各階段使用 int tag 0 設立標誌 一開始本...
編譯原理實驗(三) 遞迴下降子程式
對文法中的每個非終結符 語法成分 編寫乙個子程式,而子程式的 結構由相應非終結符的產生式右部所決定 文法 g e e e t t t t f f f e i 消除左遞迴 g e e te e te t ft t ft f e i 可以通過g e 文法構造遞迴下降分析器 文法g e 無左遞迴,e t ...
編譯原理語法分析器
採用至少一種句法分析技術 ll 1 slr 1 lr 1 或lalr 1 對類高階語言中的基本語句進行句法分析。闡述句法分析系統所要完成的功能。1 能識別以下幾類語句 宣告語句 包括變數宣告 陣列宣告 記錄宣告和過程宣告 表示式及賦值語句 包括陣列元素的引用和賦值 分支語句 if then else...