📄 funclist.cpp
字号:
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 + -