当前位置: 首页>>代码示例>>C++>>正文


C++ AstInterface::CreateVarRef方法代码示例

本文整理汇总了C++中AstInterface::CreateVarRef方法的典型用法代码示例。如果您正苦于以下问题:C++ AstInterface::CreateVarRef方法的具体用法?C++ AstInterface::CreateVarRef怎么用?C++ AstInterface::CreateVarRef使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AstInterface的用法示例。


在下文中一共展示了AstInterface::CreateVarRef方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: paramMap

static bool 
AliasAnnotAnal(AstInterface& fa, 
               OperatorAnnotCollection <OperatorAliasDescriptor>& aliasInfo,
               const AstNodePtr& fc, const AstNodePtr& result, 
               CollectObject< pair<AstNodePtr, int> >& collectalias)
{
  AstInterface::AstNodeList args;
  OperatorAliasDescriptor desc; 
  if (!aliasInfo.known_operator( fa, fc, &args, &desc, false) )
    return false;
  ReplaceParams paramMap( desc.get_param_decl().get_params(), args);
  paramMap.add("result", result);
  int index = 0;
  for (OperatorAliasDescriptor::const_iterator p1 = desc.begin();
       p1 != desc.end(); ++p1, ++index) {
    const NameGroup& cur = *p1;
    for (NameGroup::const_iterator p2 = cur.begin(); 
         p2 != cur.end(); ++p2) {
      string varname = *p2;
      AstNodePtr arg = paramMap.find(varname).get_ast();
      if (arg != AST_NULL) {
        collectalias( pair<AstNodePtr, int>(arg, index));
      }
      else {
        AstNodePtr var = fa.CreateVarRef(varname);
        collectalias( pair<AstNodePtr, int>(var, index));
      }
    }
  }
  return true;
}
开发者ID:Federico2014,项目名称:edg4x-rose,代码行数:31,代码来源:OperatorAnnotation.C

示例2: paramMap

void OperatorSideEffectDescriptor::
get_side_effect( AstInterface& fa,
                 AstInterface::AstNodeList& args, CollectObject< AstNodePtr >& collect)
{
  ReplaceParams paramMap( get_param_decl().get_params(), args);
  for (OperatorSideEffectDescriptor::const_iterator p = begin(); p != end(); ++p) {
      string varname = *p;
      AstNodePtr arg = paramMap.find(varname).get_ast();
      if (arg != AST_NULL) {
        collect( arg);
      }
      else {
        AstNodePtr var = fa.CreateVarRef(varname);
        collect( var);
      }
  }
}
开发者ID:Federico2014,项目名称:edg4x-rose,代码行数:17,代码来源:OperatorDescriptors.C

示例3: CodeGen

AstNodePtr  SymbolicVar :: CodeGen( AstInterface &fa) const
{
  return fa.CreateVarRef(varname, scope);
}
开发者ID:Federico2014,项目名称:edg4x-rose,代码行数:4,代码来源:SymbolicVal.C


注:本文中的AstInterface::CreateVarRef方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。