1樓:匿名使用者
嘿嘿,這個我做過哦。是編譯原理的東西。
不過現在沒有程式,沒帶來,給你一個參考的:雖然不是完全符合你的要求。不過其中很多函式你是要用到的,比如詞法分析部分,其實你的要求就是進行詞法分析的,無非你用scanf(),你用詞法分析,分析出scanf()語句,再進行內部引數分析,就ok了;
祝你成功哦
for迴圈語句翻譯 遞迴下降法 輸出三地址碼 /////////////
#define max 100
#include
#include
#include
char str[max];
char ch;
int turn;
char strtoken[max];
int kind;
int n=0;//存放strtoken元素的個數
struct word//結構體 存放單詞
; //record[x]=new word;
word *record[12];//放所有識別出來的單詞,分別存放他們的編號以及字串,x是其下標
////////////////////詞法分析///////////////////////
int buffer()//載入
break;
} return(i);
} bool isletter(char ch)///////////判斷是否是字母
bool isdigit(char ch)//////////判斷是否是數字
char getchar(int i)///////讀取字元
char getbc(char ch)////判斷是不是空格或者換行,如果是,直接讀取下一個字元直道不再空白為止
else
return(ch);
} void concat()/////////////連線,即為strtoken賦值
int reserve()/////以單詞為單位查詢保留字,是則返回編碼,不是則返回0,用來區分標誌符和保留字
void clear()
/////////////*語法遞迴分析*/////////////////
int a(int * c,int & q)
else
cout<<"," clear(); x++; } else if(isdigit(ch)) ch=null; turn=turn-1; kind=7; ////////////// record[x]=new word; record[x]->sort=kind; //////////////// cout<<"("; for(int i=0;iword[i]=strtoken[i]; cout } cout<<"," clear();x++; } else if(ch=='=') cout } /////////語法分析/////// int j=0; ///////////////////制導翻譯////////////////// if(!s(ana,j)) cout<<"語法出錯!" cout i=0; while(record[3]->word[i]!='\0') cout cout i=0; while(record[1]->word[i]!='\0') cout i=0; while(record[5]->word[i]!='\0') cout cout i=0; while(record[7]->word[i]!='\0') cout cout<<" goto 105" cout i=0; while(record[11]->word[i]!='\0') cout cout<<"106 goto 102"< cout<<"107 end"< 2樓:匿名使用者 主函式我在用訊息發給你,不過訊息能發的內容太少了。我就多分幾次發 * 程式名:詞法分析器 * * 功能:從program.txt讀入一段完整c++**,根據原有的關鍵字表(keyword)、 * * 算符表(operator)、界符表(seperator)以及新建的識別符號表對每個詞 * * 進行分類,找出每個詞的詞性及在對應表中的位置。對關鍵字,只輸出一次 * * (即後面再出現相同的關鍵字時,不在重新輸出)。識別符號表為identifier.txt, * * 對於數字常量,直接輸出,並標記為constant。每個詞的詞性、位置均輸出在 * * result.txt裡。 識別符號先存放在陣列內,等對所有詞進行判斷之後才輸出到檔案中 * * 這樣的話,可以比較判斷是否有相同的識別符號。 * * * * * 大體思路:用get()函式從檔案中一次讀入一個字元,對該字元進行判斷。分情 * * 況討論,對大部分的情況,都必須預先讀取下一位來對該位進行判斷才可以。個 * * 別情況甚至得預先讀取兩位來判斷。 * #include #include #include #include using namespace std; //關鍵字表 string keyword[63]=; //關鍵字表 int used[42]; //判斷關鍵字是否已經使用過 //算符表 string operator[23]=; //界符表 string seperator[17]=", "#", "\"", ":", "\'", ">>", "<<","::"}; int iskeyword(char *a) //是否為關鍵字,是的話返回關鍵字的下標加1。不是的話返回0 int isoperator(char *a) //是否為操作符,是的話返回關鍵字的下標加1。不是的話返回0 int isseperator(char *a) //是否為分隔符,是的話返回關鍵字的下標加1。不是的話返回0 3樓:匿名使用者 哥們,哪學校的 我們剛交完作業,或許可以幫你,哈哈 誰能給一個用j**a編寫的簡單的詞法分析器,語法分析器.能對c語 4樓:九尾 這個網上沒有這個東西,語法分析器都是用自己本身的語言寫的,而且又不是開源的。。。 要麼花錢找人寫一個,要麼自己寫,,, 程式 該程式的主要目的是要判斷輸入的使用者名稱是否合法,所以我們首先編寫判斷使用者名稱的程式 雙擊 確定 按鈕,新增如下的程式 黑體部分為系統自動生成的 楷體為註釋 private sub command1 click 判斷是否輸入了使用者名稱 if text1.text then 如果text1為... 這道題簡單 因為正常的判題系統1秒可以跑10的7次方 所以,分兩種情況 1 當 n 10 6時,暴力求解,即 double sum 0 for int i 2 i n i 2 2 當n 10 6時,用尤拉公式,即 利用 尤拉公式 可以查閱相關書籍 1 1 2 1 3 1 n ln n c,c為尤拉常... 隱匿望默唸 步驟如下 clcclear all s 9 8 4 2 7 10 6 1 5 3 要排序的數列ls length s for i 1 ls 1 for j 1 ls i if s j s j 1 t s j s j s j 1 s j 1 t endend ends 輸出排序後結果 拓展...用vb編寫簡單的直板手機程式,急求答案,謝謝
編寫程式,求1 6的前n項和,編寫程式,求1 2 1 4 1 6 的前n項和
急求幫助,matlab編寫程式起泡法對數由小到大排序