詞法分析
1 試驗(yàn)?zāi)康?
設(shè)計(jì),編制并調(diào)試一個(gè)此法分析程序,加深對(duì)此法分原理的理解.
2 試驗(yàn)要求
1)待分析的簡(jiǎn)單語(yǔ)言的詞法
* 關(guān)鍵字:
begin if then while do end
所有關(guān)鍵字都是小寫.
2)運(yùn)算符和界符:
: = + * - / < <= <> > >= = ( ) #
3)其他單詞是標(biāo)識(shí)符(ID)和整數(shù)型常數(shù)(NUM),通過一下正規(guī)式定義:
ID=letter (letter|digit)*
NUM=digit digit*
4)空格由空白,制表符和換行符組成,空格一般用來(lái)分隔ID,NUM,運(yùn)算符,界符和關(guān)鍵字,此法分析階段通常被忽略.
3 各種單詞符號(hào)對(duì)應(yīng)的種別碼如表所示
標(biāo)簽:
begin
分
then
whi
上傳時(shí)間:
2017-01-08
上傳用戶:dongqiangqiang
電子琴
高音依次為1,2,3,4,5,6,7
中音依次為q,w,e,r,t,y,u
低音依次為a,s,d,f,g,h,j
標(biāo)簽:
電子琴
低音
上傳時(shí)間:
2017-01-14
上傳用戶:fnhhs
void Knight(int i , int j)
{
// printf("%d %dn",i,j)
if (board[i][j] != 0 || i < 0 || i >= Size || j < 0 || j >= Size )
{
return
}
step++
board[i][j]=step
if (step == Size*Size)
{
showboard()
system("PAUSE")
return
}
//DFS
Knight(i-2,j-1) //left
Knight(i-2,j+1)
Knight(i+2,j-1) //right
Knight(i+2,j+1)
Knight(i-1,j-2) //up
Knight(i+1,j-2)
Knight(i+1,j+2) //down
Knight(i-1,j+2)
//
board[i][j]=0
step--
}
標(biāo)簽:
int
Knight
printf
board
上傳時(shí)間:
2014-01-17
上傳用戶:cxl274287265