57#ifndef GUM_PRM_O3PRM_O3CLASS_FACTORY_H
58# define GUM_PRM_O3PRM_O3CLASS_FACTORY_H
73 template <
typename GUM_SCALAR >
201 const std::string& s);
234# ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
Implementation for the O3ClassFactory class.
Headers for the O3NameSolver class.
This class is used contain and manipulate gum::ParseError.
<agrum/PRM/classElementContainer.h>
Abstract class representing an element of PRM class.
A PRMClass is an object of a PRM representing a fragment of a Bayesian network which can be instantia...
Factory which builds a PRM<GUM_SCALAR>.
PRMParameter is a member of a Class in a PRM.
This is a decoration of the DiscreteVariable class.
This class represents a Probabilistic Relational PRMSystem<GUM_SCALAR>.
The O3Aggregate is part of the AST of the O3PRM language.
The O3Attribute is part of the AST of the O3PRM language.
Builds gum::prm::Class from gum::prm::o3prm::O3Class.
bool _checkAndAddNodesToDag_()
bool _checkRemoteParent_(const PRMClassElementContainer< GUM_SCALAR > &c, const O3Label &prnt)
O3NameSolver< GUM_SCALAR > * _solver_
bool _checkLabelsNumber_(const O3RuleCPT &attr, const O3RuleCPT::O3Rule &rule)
bool _checkAggTypeLegality_(O3Class &o3class, O3Aggregate &agg)
void _addReferenceSlots_(O3Class &c)
bool _checkImplementation_(O3Class &c, O3Label &i, HashTable< std::string, O3Attribute * > &attrMap, HashTable< std::string, O3Aggregate * > &aggMap, HashTable< std::string, O3ReferenceSlot * > &refMap)
bool _checkRawCPT_(const PRMClass< GUM_SCALAR > &c, O3RawCPT &attr)
void buildReferenceSlots()
void _declareAggregates_(O3Class &c)
const PRMClassElement< GUM_SCALAR > * _resolveSlotChain_(const PRMClassElementContainer< GUM_SCALAR > &c, const O3Label &chain)
void buildImplementations()
HashTable< std::string, gum::NodeId > _nameMap_
O3ClassFactory(PRM< GUM_SCALAR > &prm, O3PRM &o3_prm, O3NameSolver< GUM_SCALAR > &solver, ErrorsContainer &errors)
bool _checkAggParameters_(O3Class &o3class, O3Aggregate &agg, const PRMType *t)
bool _checkLocalParent_(const PRMClass< GUM_SCALAR > &c, const O3Label &prnt)
void _addParamsToForms_(const HashTable< std::string, const PRMParameter< GUM_SCALAR > * > &scope, O3RuleCPT::O3Rule &rule)
bool _checkAggregateForDeclaration_(O3Class &o3class, O3Aggregate &agg)
bool _checkRuleCPT_(const PRMClass< GUM_SCALAR > &c, O3RuleCPT &attr)
std::vector< O3Class * > _o3Classes_
void _addParameters_(PRMFactory< GUM_SCALAR > &factory, O3Class &c)
bool _checkAttributeForDeclaration_(O3Class &o3_c, O3Attribute &attr)
bool _checkParameterValue_(O3Aggregate &agg, const gum::prm::PRMType &t)
const PRMType * _checkAggParents_(O3Class &o3class, O3Aggregate &agg)
void _completeAttribute_(PRMFactory< GUM_SCALAR > &factory, O3Class &c)
bool _checkSlotChainLink_(const PRMClassElementContainer< GUM_SCALAR > &c, const O3Label &chain, const std::string &s)
void completeAttributes()
bool _checkAndAddArcsToDag_()
bool _checkLabelsValues_(const PRMClass< GUM_SCALAR > &c, const O3RuleCPT &attr, const O3RuleCPT::O3Rule &rule)
void _declareAttribute_(O3Class &c)
ErrorsContainer * _errors_
void _completeAggregates_(PRMFactory< GUM_SCALAR > &factory, O3Class &c)
bool _checkImplementation_(O3Class &c)
void completeAggregates()
bool _checkAttributeForCompletion_(const O3Class &o3_c, O3Attribute &attr)
bool _checkReferenceSlot_(O3Class &c, O3ReferenceSlot &ref)
bool _checkParent_(const PRMClass< GUM_SCALAR > &c, const O3Label &prnt)
bool _checkParametersNumber_(O3Aggregate &agg, Size n)
PRM< GUM_SCALAR > * _prm_
void _setO3ClassCreationOrder_()
bool _checkAggregateForCompletion_(O3Class &o3class, O3Aggregate &agg)
O3ClassFactory< GUM_SCALAR > & operator=(const O3ClassFactory< GUM_SCALAR > &src)
HashTable< std::string, O3Class * > _classMap_
HashTable< NodeId, O3Class * > _nodeMap_
bool _checkRuleCPTSumsTo1_(const PRMClass< GUM_SCALAR > &c, const O3RuleCPT &attr, const O3RuleCPT::O3Rule &rule)
The O3Class is part of the AST of the O3PRM language.
The O3Label is part of the AST of the O3PRM language.
Resolves names for the different O3PRM factories.
The O3PRM is part of the AST of the O3PRM language.
The O3RawCPT is part of the AST of the O3PRM language.
The O3ReferenceSlot is part of the AST of the O3PRM language.
The O3RuleCPT is part of the AST of the O3PRM language.
std::pair< O3LabelList, O3FormulaList > O3Rule
std::size_t Size
In aGrUM, hashed values are unsigned long int.
namespace for all probabilistic relational models entities
gum is the global namespace for all aGrUM entities