⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 funclist.cpp

📁 这可是我的倾情制作
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	PrintProduct(TempProduct->Position);
}

//
//57@postfixexpression@ @primaryexpression@$
//
void Func57()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType		TempSymbol;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*================Begin Before Pop====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	TempSymbol = ::G_TempStackNode->Place;
	TempSymbol->Type = ::G_TempStackNode->Type;
	/*================End Before Pop====================*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	/*================Begin After Push====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	::G_TempStackNode->Place = TempSymbol;
	::G_TempStackNode->Type = TempSymbol->Type;
	/*================End After Push====================*/
	PrintProduct(TempProduct->Position);
}

void Func58()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func59()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func60()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

//---------------------------------------------------+
//61@argumentexpressionlist@ @assignmentexpression@$ |
//---------------------------------------------------+
//62@argumentexpressionlist@ @argumentexpressionlist@ , @assignmentexpression@$
void Func61()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType		TempSymbol;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*=============Begin Before Pop===============*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	TempSymbol = ::G_TempStackNode->Place;
	::PushParam(::G_TempParamHead,TempSymbol);
	::G_TempParamLength ++;
	/*=============End Before Pop===============*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	/*=============Begin After Push===============*/
	/*=============End After Push===============*/
	PrintProduct(TempProduct->Position);
}

//61@argumentexpressionlist@ @assignmentexpression@$
//-----------------------------------------------------------------------------+
//62@argumentexpressionlist@ @argumentexpressionlist@ , @assignmentexpression@$|
//-----------------------------------------------------------------------------+
void Func62()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType		TempSymbol;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*=============Begin Before Pop===============*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	TempSymbol = ::G_TempStackNode->Place;
	::PushParam(::G_TempParamHead,TempSymbol);
	::G_TempParamLength ++;
	/*=============End Before Pop===============*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

//63@argumentexpressionlist@ $ 
//do nothing here!!
void Func63()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType tempSymbol,tempSymbolouter,TempSymbol,TempSymbolVar;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*=============Begin Before Pop===============*/
	/*=============End Before Pop===============*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	/*=============Begin After Push=============*/
	/*=============End After Push===============*/
	PrintProduct(TempProduct->Position);
}


//
//64@unaryexpression@ @postfixexpression@$
//
void Func64()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType		TempSymbol;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*================Begin Before Pop====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	TempSymbol = ::G_TempStackNode->Place;
	TempSymbol->Type = ::G_TempStackNode->Type;
	/*================End Before Pop====================*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	/*================Begin After Push====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	::G_TempStackNode->Place = TempSymbol;
	::G_TempStackNode->Type = TempSymbol->Type;
	/*================End After Push====================*/
	PrintProduct(TempProduct->Position);
}

void Func65()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func66()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func67()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func68()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func69()
{int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}

void Func70()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*Deal with current state*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	PrintProduct(TempProduct->Position);
}


//
//71@multiplicativeexpression@ @unaryexpression@$
//
void Func71()
{
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType		TempSymbol;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*================Begin Before Pop====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	TempSymbol = ::G_TempStackNode->Place;
	if(TempSymbol->Type != TINT || TempSymbol->Type != TFLOAT )//|| ::G_TempStackNode->Place->Type != TINT || ::G_TempStackNode->Place->Type != TFLOAT)
	{
		printf("\nError(Semantics):In Muliplte Expression, element's type must be TINT or TFLOAT!\n");
		printf("Result %3d\n",TempSymbol->Type);
		::InstrToString(TempSymbol->Type);
		getch();
		return;
	}
	TempSymbol = ::G_TempStackNode->Place;
	TempSymbol->Type = ::G_TempStackNode->Type;
	/*================End Before Pop====================*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	/*================Begin After Push====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	::G_TempStackNode->Place = TempSymbol;
	::G_TempStackNode->Type = TempSymbol->Type;
	/*================End After Push====================*/
	PrintProduct(TempProduct->Position);
}
//
//72@multiplicativeexpression@ @multiplicativeexpression@*@unaryexpression@$
//
void Func72()
{ 
	int TopState;pGotoNodeType	TempGotoNode;
    pProductItemType	TempProduct;
	pSymbolType		TempSymbol,TempSymbolVar;

	TempProduct = G_ProductSet.Product[::G_CurProductNum];
	/*================Begin Before Pop====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	TempSymbol = ::G_TempStackNode->Place;	
	::G_TempStackNode = ::GetStackNode(2,::StateTokenStack);
	if(TempSymbol->Type != TINT || TempSymbol->Type != TFLOAT || ::G_TempStackNode->Place->Type != TINT || ::G_TempStackNode->Place->Type != TFLOAT)
	{
		printf("\nError(Semantics):In Muliplte Expression, element's type must be TINT or TFLOAT!\n");
		getch();
		return;
	}
	TempSymbolVar = ::GenerateTempVar();
	::SetSymbolInfo(TempSymbolVar,TINT,TCOMMON,::CurSymbolTable->MemOffset,NULL);
	/*Redefine its type based on toppest type of this expression*/
	if(TempSymbol->Type<::G_TempStackNode->Place->Type)
		TempSymbolVar->Type = G_TempStackNode->Place->Type;
	else 
		TempSymbolVar->Type = TempSymbol->Type;		
	::CurSymbolTable->MemOffset += 2;

	::AddFourNode(::G_InstrumentList,IMUL,::G_TempStackNode->Place->pInfo,TempSymbol->pInfo,TempSymbolVar->pInfo);
	/*================End Before Pop====================*/
	if(TempProduct->TokenList[0]!=KONG)
		MyPopStack(TempProduct->Length,StateTokenStack);
	TopState = GetTopState(StateTokenStack);
	TempGotoNode = FindGotoNode(TopState,TempProduct->HeadToken);
	Push(TempProduct->HeadToken,TempGotoNode->ParaNum,StateTokenStack);
	/*================Begin After Push====================*/
	::G_TempStackNode = ::GetStackNode(0,::StateTokenStack);
	::G_TempStackNode->Place = TempSymbolVar;
	::G_TempStackNode->Type = TempSymbolVar->Type;
	/*================End After Push====================*/
	PrintProduct(TempProduct->Position);
}
//

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -