コード例 #1
0
ファイル: repositoryxl.cpp プロジェクト: AAthresh/quantlib
 shared_ptr<CallingRange> RepositoryXL::getCallingRange() {
     string callerName = FunctionCall::instance().callerName();
     if (callerName == "VBA") {
         // Called from VBA - check whether the corresponding calling range
         // object exists and create it if not.
         RangeMap::const_iterator i = callingRanges_.find(callerName);
         if (i == callingRanges_.end()) {
             shared_ptr<CallingRange> callingRange(new CallingRange);
             callingRanges_[callingRange->key()] = callingRange;
             return callingRange;
         } else {
             return i->second;
         }
         // Called from a worksheet formula
     } else if (callerName.empty()) {
         // Calling range not yet named - create a new CallingRange object
         shared_ptr<CallingRange> callingRange(new CallingRange);
         callingRanges_[callingRange->key()] = callingRange;
         return callingRange;
     } else {
         // Calling range already named - return associated CallingRange object
         RangeMap::const_iterator i = callingRanges_.find(callerName);
         OH_REQUIRE(i != callingRanges_.end(), "No calling range named " << callerName);
         return i->second;
     }
 }
コード例 #2
0
ファイル: SuppressHelper.cpp プロジェクト: GeekMin/oclint
bool rangeBasedShouldSuppress(int beginLine, clang::ASTContext &context, oclint::RuleBase *rule)
{
    std::string filePath = getMainFilePath(context);
    auto commentRangesIt = rangeMapping.find(filePath);
    RangeSet commentRanges;
    if (commentRangesIt == rangeMapping.end())
    {
        DeclAnnotationRangeCollector annotationCollector;
        commentRanges = annotationCollector.collect(context, rule);
        rangeMapping[filePath] = commentRanges;
    }
    else
    {
        commentRanges = commentRangesIt->second;
    }

    for (const auto& range : commentRanges)
    {
        if (beginLine >= range.first && beginLine <= range.second)
        {
            return true;
        }
    }

    return false;
}