本文整理汇总了C++中CodeGen::ProcessVar方法的典型用法代码示例。如果您正苦于以下问题:C++ CodeGen::ProcessVar方法的具体用法?C++ CodeGen::ProcessVar怎么用?C++ CodeGen::ProcessVar使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CodeGen
的用法示例。
在下文中一共展示了CodeGen::ProcessVar方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VarList
void Parser::VarList()
{
ExprRec var, index;
/* Listen to the first variable */
Variable(var, index);
code.ProcessVar(var, index); /*** CODE ***/
code.Listen(var, index); /*** CODE ***/
/* Listen for the next variables */
VarListTail(var, index);
}
示例2: ForAssign
void Parser::ForAssign()
{
/* Variable to be assigned a value */
ExprRec var, index;
Variable(var, index);
code.ProcessVar(var, index);
/* Equal sign '=' */
Match(ASSIGN_OP);
/* Value/Expression to assign to the variable */
ExprRec result;
Expression(result);
code.ForAssign(var, index, result);
}
示例3: AssignStmt
void Parser::AssignStmt()
{
/* Variable to be assigned a value */
ExprRec var, index;
Variable(var, index);
code.ProcessVar(var, index);
/* Equal sign '=' */
Match(ASSIGN_OP);
/* Value/Expression to assign to the variable */
ExprRec result;
AssignTail(result);
code.Assign(var, index, result);
Match(SEMICOLON);
}
示例4: VarListTail
void Parser::VarListTail(ExprRec& var, ExprRec& index) {
switch (NextToken()) {
case COMMA:
Match(COMMA);
Variable(var, index);
code.ProcessVar(var, index); /*** CODE ***/
code.Listen(var, index); /*** CODE ***/
/* Recursion for other variables */
VarListTail(var, index);
break;
case SEMICOLON:
break;
default:
SyntaxError(NextToken(), "VarListTail");
}
}
示例5: Primary
void Parser::Primary(ExprRec& result) {
ExprRec index;
switch (NextToken()) {
case FALSE_SYM:
case TRUE_SYM:
Literal();
result.var_type = BOOL;
code.ProcessLit(result); /*** CODE ***/
break;
case INT_LIT:
Literal();
result.var_type = INT;
code.ProcessLit(result); /*** CODE ***/
break;
case FLOAT_LIT:
Literal();
result.var_type = FLOAT;
code.ProcessLit(result); /*** CODE ***/
break;
case CHEESE_LIT:
Literal();
result.var_type = CHEESE;
code.ProcessLit(result); /*** CODE ***/
break;
case ID:
Variable(result, index);
/* var_type is retrieved from symbol table */
code.ProcessVar(result, index); /*** CODE ***/
break;
case LBANANA:
Match(LBANANA);
Expression(result);
Match(RBANANA);
break;
default:
SyntaxError(NextToken(), "Unknown Primary Symbol");
}
}