aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
gum::prm::o3prm::O3PRM Class Reference

The O3PRM is part of the AST of the O3PRM language. More...

#include <agrum/PRM/o3prm/O3prm.h>

Public Member Functions

 O3PRM ()
 
 O3PRM (const O3PRM &src)
 
 O3PRM (O3PRM &&src)
 
 ~O3PRM ()
 
O3PRMoperator= (const O3PRM &src)
 
O3PRMoperator= (O3PRM &&src)
 
O3TypeListtypes ()
 
const O3TypeListtypes () const
 
O3IntTypeListint_types ()
 
const O3IntTypeListint_types () const
 
O3RealTypeListreal_types ()
 
const O3RealTypeListreal_types () const
 
O3InterfaceListinterfaces ()
 
const O3InterfaceListinterfaces () const
 
O3ClassListclasses ()
 
const O3ClassListclasses () const
 
O3SystemListsystems ()
 
const O3SystemListsystems () const
 
O3ImportListimports ()
 
const O3ImportListimports () const
 

Public Types

using O3TypeList = std::vector< std::unique_ptr< O3Type > >
 
using O3IntTypeList = std::vector< std::unique_ptr< O3IntType > >
 
using O3RealTypeList = std::vector< std::unique_ptr< O3RealType > >
 
using O3InterfaceList = std::vector< std::unique_ptr< O3Interface > >
 
using O3ClassList = std::vector< std::unique_ptr< O3Class > >
 
using O3SystemList = std::vector< std::unique_ptr< O3System > >
 
using O3ImportList = std::vector< std::unique_ptr< O3Import > >
 

Detailed Description

The O3PRM is part of the AST of the O3PRM language.

Definition at line 890 of file O3prm.h.

Member Typedef Documentation

◆ O3ClassList

using gum::prm::o3prm::O3PRM::O3ClassList = std::vector< std::unique_ptr< O3Class > >

Definition at line 896 of file O3prm.h.

◆ O3ImportList

using gum::prm::o3prm::O3PRM::O3ImportList = std::vector< std::unique_ptr< O3Import > >

Definition at line 898 of file O3prm.h.

◆ O3InterfaceList

using gum::prm::o3prm::O3PRM::O3InterfaceList = std::vector< std::unique_ptr< O3Interface > >

Definition at line 895 of file O3prm.h.

◆ O3IntTypeList

using gum::prm::o3prm::O3PRM::O3IntTypeList = std::vector< std::unique_ptr< O3IntType > >

Definition at line 893 of file O3prm.h.

◆ O3RealTypeList

using gum::prm::o3prm::O3PRM::O3RealTypeList = std::vector< std::unique_ptr< O3RealType > >

Definition at line 894 of file O3prm.h.

◆ O3SystemList

using gum::prm::o3prm::O3PRM::O3SystemList = std::vector< std::unique_ptr< O3System > >

Definition at line 897 of file O3prm.h.

◆ O3TypeList

using gum::prm::o3prm::O3PRM::O3TypeList = std::vector< std::unique_ptr< O3Type > >

Definition at line 892 of file O3prm.h.

Constructor & Destructor Documentation

◆ O3PRM() [1/3]

gum::prm::o3prm::O3PRM::O3PRM ( )

Definition at line 427 of file O3prm.cpp.

427  {
428  GUM_CONSTRUCTOR(O3PRM);
429  // Creating the boolean type
430  auto name = O3Label(O3Position(), "boolean");
431  auto f = O3Label(O3Position(), "false");
432  auto t = O3Label(O3Position(), "true");
433  auto labels = O3Type::LabelMap();
434  labels.push_back(O3Type::LabelPair(f, O3Label()));
435  labels.push_back(O3Type::LabelPair(t, O3Label()));
436  auto boolean = std::unique_ptr< O3Type >(new O3Type());
437  boolean->name() = std::move(name);
438  boolean->labels() = std::move(labels);
439  _types_.push_back(std::move(boolean));
440  }
O3TypeList _types_
Definition: O3prm.h:930
std::vector< LabelPair > LabelMap
Definition: O3prm.h:206
std::pair< O3Label, O3Label > LabelPair
Definition: O3prm.h:205

◆ O3PRM() [2/3]

gum::prm::o3prm::O3PRM::O3PRM ( const O3PRM src)

Definition at line 442 of file O3prm.cpp.

442  {
443  GUM_CONS_CPY(O3PRM);
444  for (const auto& t: src._types_) {
445  _types_.emplace_back(new O3Type(*t));
446  }
447  for (const auto& t: src._int_types_) {
448  _int_types_.emplace_back(new O3IntType(*t));
449  }
450  for (const auto& t: src._real_types_) {
451  _real_types_.emplace_back(new O3RealType(*t));
452  }
453  for (const auto& i: src._interfaces_) {
454  _interfaces_.emplace_back(new O3Interface(*i));
455  }
456  for (const auto& c: src._classes_) {
457  _classes_.emplace_back(new O3Class(*c));
458  }
459  for (const auto& s: src._systems_) {
460  _systems_.emplace_back(new O3System(*s));
461  }
462  for (const auto& i: src._imports_) {
463  _imports_.emplace_back(new O3Import(*i));
464  }
465  }
O3TypeList _types_
Definition: O3prm.h:930
O3IntTypeList _int_types_
Definition: O3prm.h:931
O3InterfaceList _interfaces_
Definition: O3prm.h:933
O3SystemList _systems_
Definition: O3prm.h:935
O3ImportList _imports_
Definition: O3prm.h:936
O3ClassList _classes_
Definition: O3prm.h:934
O3RealTypeList _real_types_
Definition: O3prm.h:932

◆ O3PRM() [3/3]

gum::prm::o3prm::O3PRM::O3PRM ( O3PRM &&  src)

Definition at line 467 of file O3prm.cpp.

467  :
468  _types_(std::move(src._types_)), _int_types_(std::move(src._int_types_)),
469  _real_types_(std::move(src._real_types_)), _interfaces_(std::move(src._interfaces_)),
470  _classes_(std::move(src._classes_)), _systems_(std::move(src._systems_)),
471  _imports_(std::move(src._imports_)) {
472  GUM_CONS_MOV(O3PRM);
473  }
O3TypeList _types_
Definition: O3prm.h:930
O3IntTypeList _int_types_
Definition: O3prm.h:931
O3InterfaceList _interfaces_
Definition: O3prm.h:933
O3SystemList _systems_
Definition: O3prm.h:935
O3ImportList _imports_
Definition: O3prm.h:936
O3ClassList _classes_
Definition: O3prm.h:934
O3RealTypeList _real_types_
Definition: O3prm.h:932

◆ ~O3PRM()

gum::prm::o3prm::O3PRM::~O3PRM ( )

Definition at line 475 of file O3prm.cpp.

475  {
476  GUM_DESTRUCTOR(O3PRM);
477  ;
478  }

Member Function Documentation

◆ classes() [1/2]

O3PRM::O3ClassList & gum::prm::o3prm::O3PRM::classes ( )

Definition at line 530 of file O3prm.cpp.

530 { return _classes_; }
O3ClassList _classes_
Definition: O3prm.h:934

◆ classes() [2/2]

const O3PRM::O3ClassList & gum::prm::o3prm::O3PRM::classes ( ) const

Definition at line 532 of file O3prm.cpp.

532 { return _classes_; }
O3ClassList _classes_
Definition: O3prm.h:934

◆ imports() [1/2]

O3PRM::O3ImportList & gum::prm::o3prm::O3PRM::imports ( )

Definition at line 538 of file O3prm.cpp.

538 { return _imports_; }
O3ImportList _imports_
Definition: O3prm.h:936

◆ imports() [2/2]

const O3PRM::O3ImportList & gum::prm::o3prm::O3PRM::imports ( ) const

Definition at line 540 of file O3prm.cpp.

540 { return _imports_; }
O3ImportList _imports_
Definition: O3prm.h:936

◆ int_types() [1/2]

O3PRM::O3IntTypeList & gum::prm::o3prm::O3PRM::int_types ( )

Definition at line 521 of file O3prm.cpp.

521 { return _int_types_; }
O3IntTypeList _int_types_
Definition: O3prm.h:931

◆ int_types() [2/2]

const O3PRM::O3IntTypeList & gum::prm::o3prm::O3PRM::int_types ( ) const

Definition at line 522 of file O3prm.cpp.

522 { return _int_types_; }
O3IntTypeList _int_types_
Definition: O3prm.h:931

◆ interfaces() [1/2]

O3PRM::O3InterfaceList & gum::prm::o3prm::O3PRM::interfaces ( )

Definition at line 527 of file O3prm.cpp.

527 { return _interfaces_; }
O3InterfaceList _interfaces_
Definition: O3prm.h:933

◆ interfaces() [2/2]

const O3PRM::O3InterfaceList & gum::prm::o3prm::O3PRM::interfaces ( ) const

Definition at line 528 of file O3prm.cpp.

528 { return _interfaces_; }
O3InterfaceList _interfaces_
Definition: O3prm.h:933

◆ operator=() [1/2]

O3PRM & gum::prm::o3prm::O3PRM::operator= ( const O3PRM src)

Definition at line 480 of file O3prm.cpp.

480  {
481  if (this == &src) { return *this; }
482  for (const auto& t: src._types_) {
483  _types_.emplace_back(new O3Type(*t));
484  }
485  for (const auto& t: src._int_types_) {
486  _int_types_.emplace_back(new O3IntType(*t));
487  }
488  for (const auto& t: src._real_types_) {
489  _real_types_.emplace_back(new O3RealType(*t));
490  }
491  for (const auto& i: src._interfaces_) {
492  _interfaces_.emplace_back(new O3Interface(*i));
493  }
494  for (const auto& c: src._classes_) {
495  _classes_.emplace_back(new O3Class(*c));
496  }
497  for (const auto& s: src._systems_) {
498  _systems_.emplace_back(new O3System(*s));
499  }
500  for (const auto& i: src._imports_) {
501  _imports_.emplace_back(new O3Import(*i));
502  }
503  return *this;
504  }
O3TypeList _types_
Definition: O3prm.h:930
O3IntTypeList _int_types_
Definition: O3prm.h:931
O3InterfaceList _interfaces_
Definition: O3prm.h:933
O3SystemList _systems_
Definition: O3prm.h:935
O3ImportList _imports_
Definition: O3prm.h:936
O3ClassList _classes_
Definition: O3prm.h:934
O3RealTypeList _real_types_
Definition: O3prm.h:932

◆ operator=() [2/2]

O3PRM & gum::prm::o3prm::O3PRM::operator= ( O3PRM &&  src)

Definition at line 506 of file O3prm.cpp.

506  {
507  if (this == &src) { return *this; }
508  _types_ = std::move(src._types_);
509  _int_types_ = std::move(src._int_types_);
510  _real_types_ = std::move(src._real_types_);
511  _interfaces_ = std::move(src._interfaces_);
512  _classes_ = std::move(src._classes_);
513  _systems_ = std::move(src._systems_);
514  _imports_ = std::move(src._imports_);
515  return *this;
516  }
O3TypeList _types_
Definition: O3prm.h:930
O3IntTypeList _int_types_
Definition: O3prm.h:931
O3InterfaceList _interfaces_
Definition: O3prm.h:933
O3SystemList _systems_
Definition: O3prm.h:935
O3ImportList _imports_
Definition: O3prm.h:936
O3ClassList _classes_
Definition: O3prm.h:934
O3RealTypeList _real_types_
Definition: O3prm.h:932

◆ real_types() [1/2]

O3PRM::O3RealTypeList & gum::prm::o3prm::O3PRM::real_types ( )

Definition at line 524 of file O3prm.cpp.

524 { return _real_types_; }
O3RealTypeList _real_types_
Definition: O3prm.h:932

◆ real_types() [2/2]

const O3PRM::O3RealTypeList & gum::prm::o3prm::O3PRM::real_types ( ) const

Definition at line 525 of file O3prm.cpp.

525 { return _real_types_; }
O3RealTypeList _real_types_
Definition: O3prm.h:932

◆ systems() [1/2]

O3PRM::O3SystemList & gum::prm::o3prm::O3PRM::systems ( )

Definition at line 534 of file O3prm.cpp.

534 { return _systems_; }
O3SystemList _systems_
Definition: O3prm.h:935

◆ systems() [2/2]

const O3PRM::O3SystemList & gum::prm::o3prm::O3PRM::systems ( ) const

Definition at line 536 of file O3prm.cpp.

536 { return _systems_; }
O3SystemList _systems_
Definition: O3prm.h:935

◆ types() [1/2]

O3PRM::O3TypeList & gum::prm::o3prm::O3PRM::types ( )

Definition at line 518 of file O3prm.cpp.

518 { return _types_; }
O3TypeList _types_
Definition: O3prm.h:930

◆ types() [2/2]

const O3PRM::O3TypeList & gum::prm::o3prm::O3PRM::types ( ) const

Definition at line 519 of file O3prm.cpp.

519 { return _types_; }
O3TypeList _types_
Definition: O3prm.h:930

Member Data Documentation

◆ _classes_

O3ClassList gum::prm::o3prm::O3PRM::_classes_
private

Definition at line 934 of file O3prm.h.

◆ _imports_

O3ImportList gum::prm::o3prm::O3PRM::_imports_
private

Definition at line 936 of file O3prm.h.

◆ _int_types_

O3IntTypeList gum::prm::o3prm::O3PRM::_int_types_
private

Definition at line 931 of file O3prm.h.

◆ _interfaces_

O3InterfaceList gum::prm::o3prm::O3PRM::_interfaces_
private

Definition at line 933 of file O3prm.h.

◆ _real_types_

O3RealTypeList gum::prm::o3prm::O3PRM::_real_types_
private

Definition at line 932 of file O3prm.h.

◆ _systems_

O3SystemList gum::prm::o3prm::O3PRM::_systems_
private

Definition at line 935 of file O3prm.h.

◆ _types_

O3TypeList gum::prm::o3prm::O3PRM::_types_
private

Definition at line 930 of file O3prm.h.


The documentation for this class was generated from the following files: