實驗專案一指導上詞法分析程式的設計與實現

2021-03-04 06:32:03 字數 2170 閱讀 7149

//屬性字,結構為二元組(類別,值)

typedef struct attrib_words;

//列舉型別定義的示例

/*typedef enum symbol symbol; */

//怎樣建屬性值表,怎樣查表?

// (10, '+'), (11, "for"), (2, "variable一般變數")

//基本功能宣告

/*函式1:讀程式原始檔,提取文字檔案中的資訊,結果放入字串緩衝區

*/ void readsourcefile();

//函式2:分詞模組,從位置begin_position開始,從緩衝區內取出乙個詞

//引數end_position返回結束位置,可作為下一次取詞的開始位置

string gettoken( string strline, int begin_position, int &end_position );

//函式3:詞法分析主程式

//返回:識別符號表,即所有的自定義變數與函式都放入同乙個表內

//token統一的中間表示形式

void word_scanner( string strbuffer );

//判斷是不是空格、回車、換行符

bool isblankchar(char ch);

//判斷是不是字母

bool isletter(char ch);

//判斷是不是數字

bool isdigital(char ch);

//判斷是不是下劃線

bool isunline(char ch);

/*這個函式用來除去字串中連續的空格和換行

第乙個引數為目標字串,第二個引數為開始位置//

返回值為連續的空格和換行後的第乙個有效字元在字串的位置

*/ int deletenull(string str,int i);

//查表函式

/*判斷位置i當前所指的字元是否為乙個分界符,是的話返回真,反之假

*/ bool isboundary(string str,int i);

/*判斷位置i當前所指的字元是否為乙個運算子,是的話返回真,反之假

*/ bool isoperation(string str,int i);

/*此函式判斷傳遞的引數是否為關鍵字,是的話,返回真,反之返回假

*/ bool iskeywords(string str);

#endif

//word_scanner.cpp 部分內容示例

#include "stdafx.h"

#include "word_scanner.h"

//全域性變數,字串緩衝區陣列,每行**的字串為陣列中乙個元素

vector < string > filebuffer;

//基本功能

//判斷是不是空格、回車、換行符

bool isblankchar(char ch)

//判斷是不是字母

bool isletter(char ch)

//判斷是不是數字

bool isdigital(char ch)

//判斷是不是下劃線

bool isunline(char ch)

/*提取文字檔案中的資訊,結果放入字串緩衝區

*/ void readsourcefile()

cout< string buffer;

while (getline(infile,buffer))

infile.close();

}//查表函式

//為了簡化**,表可以用靜態陣列實現

/*判斷i當前所指的字元是否為乙個分界符,是的話返回真,反之假

*/ bool isboundary(string str,int i) /*

判斷i當前所指的字元是否為乙個運算子,是的話返回真,反之假

*/ bool isoperation(string str,int i) /*

此函式判斷傳遞的引數是否為關鍵字,是的話,返回真,反之返回假

*/ bool iskeywords(string str)

//測試程式

#include "stdafx.h"

#include "word_scanner.h"

using namespace std;

void main()

實踐一指導材料Flash製作小鳥飛翔動畫

實驗一指導材料 認識幀與節奏的關係小鳥飛翔動畫 實踐題目 flash的幀與節奏的關係 實踐目的 了解flash的幀概念 記錄物件的最小載體 了解幀與節奏的關係 了解幀與場景的關係。實踐器材 硬體 多 計算機 軟體 flash 8.0 實踐內容 1課時內完成 一 素材的準備 1 小鳥鳴叫聲音 2 一組...

實驗五實驗六指導書

實驗五 matlab實現dft matlab為計算資料的離散快速傅時葉變換,提供了一系列豐富的數學函式,主要有fft ifft fft2 ifft2和czt等。當所處理的資料的長度為2的冪次時,採用基 2演算法進行計算,計算速度會顯著增加。所以,要盡可能使所要處理的資料長度為2冪次或者用添零的方式來...

實驗二指導書

實驗二離散時間訊號的matlab實現 表示方法和基本運算 一 實驗目的 離散時間訊號的表示方法及其基本運算。二 實驗內容 1.訊號表示 matlab中的主要資料型別是二維或多維的實矩陣或復矩陣。數字訊號處理過程中所用到的基本資料物件 例如 一維訊號或序列,多通道訊號,二維訊號等等 都可以用矩陣來表示...