The Gaudi Framework  v36r1 (3e2fb5a8)
Analyzer.cpp File Reference
#include "Analyzer.h"
#include "Catalog.h"
#include "GaudiKernel/Environment.h"
#include "IncludedFiles.h"
#include "Messages.h"
#include "Node.h"
#include "Parser.h"
#include "PragmaOptions.h"
#include "PropertyName.h"
#include "PropertyValue.h"
#include "Units.h"
#include <fmt/format.h>
#include <iostream>
#include <memory>
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

◆ Unreference()

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

Definition at line 358 of file Analyzer.cpp.

358  {
359  bool unreference_result = true;
360  for ( auto& client : catalog ) {
361  for ( auto& current : client.second ) {
362  if ( current.IsReference() ) {
363  gp::PropertyValue& value = current.property_value();
364  const std::vector<std::string>& names = value.Vector();
365  gp::Property* property = catalog.Find( names[0], names[1] );
366  if ( !property ) {
367  messages->AddError( value.position(), "Could not unreference " + current.ValueAsString() );
368  unreference_result = false;
369  } else {
370  value = property->property_value();
371  }
372  }
373  }
374  }
375  return unreference_result;
376 }
Gaudi::Parsers::Property
Definition: Property.h:27
std::vector< std::string >
Gaudi::Parsers::PropertyValue
Definition: PropertyValue.h:29
Gaudi::Parsers::Messages::AddError
void AddError(std::string_view error)
Definition: Messages.h:39
Gaudi::Parsers::PropertyValue::position
const Position & position() const
Definition: PropertyValue.h:42
Gaudi::Parsers::PropertyValue::Vector
VectorOfStrings & Vector()
Definition: PropertyValue.h:47