編譯原理 遞迴下降分析法 c程式部分的分析

2022-06-02 06:18:10 字數 1621 閱讀 3555

實驗三 語法分析程式實驗

專業 商軟2班   姓名 黃仲浩  學號 201506110166

一、實驗目的

編制乙個部分文法分析程式。

二、實驗內容和要求

輸入:源程式字串

輸出:正確或者錯誤

三、實驗方法、步驟及結果測試

源程式名:遞迴下降分析.c

可執行程式名:遞迴下降分析.c

原理分析及流程圖

#include#include

char token[30];//

儲存輸入的字元

char sym;//

記錄下乙個字元

char s;//

輸入字元的傳遞

static

int p=0 ;//

下乙個字元的下標

void

s();

void

t();

void

u();

void scaner();//

下乙個字元

void error();//

錯誤結束

//以此文法為基礎作此程式

//s->a|^|(t)

//t->su

//u->,su|$

intmain()

while(token[i]!='#'

); scaner();

s();

if(sym=='#'

) printf(

"success!\n");

else

printf(

"fail!\n");

return0;

}void

scaner()

void

error()

void

s()}

void

t()void

u()

else

if(sym!=')'

) error();

}

主要程式段及其解釋:s().t().u()//只是分析c語言的部分scaner()//進行下乙個字元的記錄

error()//結束的標誌

執行結果及分析

四、實驗總結

此程式只是以部分為主做出來,是為了慢慢地做好全部c語言的分析。我會慢慢以此思考ll(1)文法來進行最終的文法改寫分析。

遞迴下降分析法

4 遞迴下降分析法 遞迴下降分析法是確定的自上而下分析法,這種分析法要求文法是 ll 1 文法。它的基本思想是,對文法中的每個非終結符編寫乙個函式 或子程式 每個函式 或子程式 的功能是識別由該非終結符所表示的語法成分。由於描述語言的文法常常是遞迴定義的,因此相應的這組函式 或子程式 必然以相互遞迴...

(原創)自頂向下分析法 遞迴下降分析程式構造

題目 自頂向下分析法 遞迴下降分析程式構造 開發環境 vc6.0 include include 全域性變數 char exp 30 gra 30 prod 30 chexp int expsize 0,grasize 0,step 0 函式宣告 1 e tg 2 g tg tg 3 t fs 4 ...

軟體構造實驗三 遞迴下降分析分析法

實驗目的 1 掌握自上而下語法分析的要求與特點。2 掌握遞迴下降語法分析的基本原理和方法。3 掌握相應資料結構的設計方法。實驗內容 用遞迴下降法編寫乙個語法分析程式,使之與詞法分析器結合,能夠根據語言的上下文無關文法,識別輸入的單詞序列是否文法的句子。實驗要求 對下列文法,用遞迴下降分析法對任意輸入...