Analyzer.cpp File Reference
#include <iostream>
#include <memory>
#include <boost/format.hpp>
#include "Analyzer.h"
#include "Parser.h"
#include "Messages.h"
#include "Catalog.h"
#include "Units.h"
#include "PragmaOptions.h"
#include "Node.h"
#include "IncludedFiles.h"
#include "PropertyName.h"
#include "PropertyValue.h"
#include "GaudiKernel/Environment.h"
Include dependency graph for Analyzer.cpp:

Go to the source code of this file.

Functions

bool Unreference (gp::Catalog &catalog, gp::Messages *messages)
 

Function Documentation

bool Unreference ( gp::Catalog &  catalog,
gp::Messages *  messages 
)

Definition at line 394 of file Analyzer.cpp.

394  {
395  bool unreference_result = true;
396  for(auto& client : catalog) {
397  for (auto& current : client.second ) {
398  if (current.IsReference()) {
399  gp::PropertyValue& value = current.property_value();
400  const std::vector<std::string>& names = value.Vector();
401  gp::Property* property = catalog.Find(names[0], names[1]);
402  if (!property) {
403  messages->AddError(value.position(),
404  "Could not unreference " + current.ValueAsString());
405  unreference_result = false;
406  }else{
407  value = property->property_value();
408  }
409  }
410  }
411  }
412  return unreference_result;
413 }
Gaudi::Details::PropertyBase * property(const std::string &name) const
Gaudi::Details::PropertyBase Property
backward compatibility hack for old Property base class
Definition: PropertyFwd.h:28