C語言 編譯原理實驗一 預處理,詞法分析器的設計

2021-10-10 16:02:22 字數 3078 閱讀 9788

預處理**:

#include

#include

intmain()

else

fclose

(p);

str[i]

='\0'

;for

(i=0

;i<

strlen

(str)

;i++

) i--;}

//單行注釋

else

if(str[i]

=='/'

&&str[i+1]

=='*'

) i+=1

;}//多行注釋

else

if(str[i]

==' '

&&str[i+1]

==' '

) i--;if

(str1[j-1]

!=' '

) str1[j++]=

' ';

}//多個空格,去除空格

else

if(str[i]

=='\n'

)//換行處理,

else

if(str[i]==9

)if(str1[j-1]

!=' '

) str1[j++]=

' ';

i--;}

//\處理

else str1[j++

]= str[i]

;//其他字元處理

} str1[j]

='\0';if

((p =

fopen

("c:\\users\\lenovo\\desktop\\test2.txt"

,"w"))

==null

)else

else

printf

("儲存成功!");

}fclose

(p);

}return0;

}

詞法分析器的設計:

#include

#include

inttransfer

(int x)

}return y;

}int

main()

;char str[

1000

],str1[

1000

],c;

int syn,num;

int k;

char token[

200];if

((p=

fopen

("c:\\users\\lenovo\\desktop\\test2.txt"

,"rt"))

==null

)//fgets(str,1000,p);

while

((c=

getc

(p))

!=eof

)fclose

(p);

str[i]

='\0'

;//printf("%s\n",str);

for(i=

0; str[i]

!='\0';)

token[j]

='\0'

;for

( k=

1; k<

27; k++)if

(k<25)

syn = k;

else

if(k==25)

syn =39;

else

if(k==26)

syn =40;

else syn =25;

}//關鍵字和標示符處理

else

if(str[i]

>=

'0'&&str[i]

<=

'9')if(

(str[i]

>=

'a'&&str[i]

<=

'z')

||(str[i]

>=

'a'&&str[i]

<=

'z'))}

else syn =26;

}//數字在此處處理

else

else

if(str[i]

=='<'

&&str[i+1]

=='>'

)else

if(str[i]

=='<'

&&str[i+1]

=='='

)else

if(str[i]

=='>'

&&str[i+1]

=='='

)else

if(str[i]

=='+'

&&str[i+1]

=='+'

)else

if(str[i]

=='-'

&&str[i+1]

=='-'

)else

if(str[i]

==' '

)//空格處理

else':

syn =46;

break

;case

'%':

syn =47;

break

;case

'"':

syn=48;

break

;case

',':

syn=51;

break

;default

: syn =-1

;break;}

token[j++

]= str[i++];

}}token[j]

='\0';if

(num!=-1

)else

if(syn!=-1

&&syn !=-2

&&syn!=-3

)else

if(syn==-1

)else

if(syn ==-3

)}return0;

}

編譯原理實驗一 TINY語言的詞法分析

實驗一 tiny語言的詞法分析 一 實驗目的 評價依據,描述是否準確到位 構造tiny語言的詞法分析器 掃瞄器 要求利用第三方的lex工具進行構造。實驗結果 構造出的掃瞄器,能夠讀入教材樣例中給出的tiny語言的示例 分解成token輸出。二 實驗設計 評價依據實驗方案設計是否合理 一 tiny語言...

編譯原理 詞法分析實驗

實驗一 詞法分析 一 實驗目的 通過設計編制除錯乙個具體的詞法分析程式,加深對詞法分析原理的理解。並掌握在對程式語言源程式進行掃瞄過程中將其分解為各類單詞的詞法分析方法。編制乙個讀單詞過程,從輸入的源程式中,識別出各個具有獨立意義的單詞,即基本保留字 識別符號 常數 運算子 分隔符五大類。並依次輸出...

C語言編譯預處理

title date br description c語言編譯預處理 2019 11 06 14 35 32 0800 預處理 c語言 c語言預處理是對源 進行初步轉換 碼農有道 c源程式 編譯預處理 編譯 優化程式 匯程式設計序 鏈結程式 可執行檔案其中編譯預處理階段,讀取c源程式,對其中的預處理...