int expression(bool* fsys, int* ptx, int lev,int index)
{
enum symbol addop; /* 用于保存正負號 */
bool nxtlev[symnum];
if(sym==plus || sym==minus) /* 開頭的正負號,此時當前運算式被看作一個正的或負的項 */
{
addop = sym; /* 保存開頭的正負號 */
getsymdo;
memcpy(nxtlev, fsys, sizeof(bool)*symnum);
nxtlev[plus] = true;
nxtlev[minus] = true;
termdo(nxtlev, ptx, lev); /* 處理項 */
if (addop == minus)
{
gendo(opr,0,1); /* 如果開頭為負號生成取負指令 */
}
}
else /* 此時運算式被看作項的加減 */
{
memcpy(nxtlev, fsys, sizeof(bool)*symnum);
nxtlev[plus] = true;
nxtlev[minus] = true;
termdo(nxtlev, ptx, lev); /* 處理項 */
}
while (sym==plus || sym==minus)
{
addop = sym;
getsymdo;
memcpy(nxtlev, fsys, sizeof(bool)*symnum);
nxtlev[plus] = true;
nxtlev[minus] = true;
termdo(nxtlev, ptx, lev); /* 處理項 */
if (addop == plus)
{
gendo(opr, 0, 2); /* 生成加法指令 */
}
else
{
gendo(opr, 0, 3); /* 生成減法指令 */
}
}
return 0;
}我想問問這個index引數有啥用啊
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/179344.html
標籤:其它技術問題
