aGrUM  0.20.2
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 896 of file O3prm.h.

Member Typedef Documentation

◆ O3ClassList

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

Definition at line 902 of file O3prm.h.

◆ O3ImportList

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

Definition at line 904 of file O3prm.h.

◆ O3InterfaceList

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

Definition at line 901 of file O3prm.h.

◆ O3IntTypeList

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

Definition at line 899 of file O3prm.h.

◆ O3RealTypeList

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

Definition at line 900 of file O3prm.h.

◆ O3SystemList

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

Definition at line 903 of file O3prm.h.

◆ O3TypeList

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

Definition at line 898 of file O3prm.h.

Constructor & Destructor Documentation

◆ O3PRM() [1/3]

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

Definition at line 397 of file O3prm.cpp.

397  {
398  GUM_CONSTRUCTOR(O3PRM);
399  // Creating the boolean type
400  auto name = O3Label(O3Position(), "boolean");
401  auto f = O3Label(O3Position(), "false");
402  auto t = O3Label(O3Position(), "true");
403  auto labels = O3Type::LabelMap();
404  labels.push_back(O3Type::LabelPair(f, O3Label()));
405  labels.push_back(O3Type::LabelPair(t, O3Label()));
406  auto boolean = std::unique_ptr< O3Type >(new O3Type());
407  boolean->name() = std::move(name);
408  boolean->labels() = std::move(labels);
409  types__.push_back(std::move(boolean));
410  }
std::vector< LabelPair > LabelMap
Definition: O3prm.h:206
std::pair< O3Label, O3Label > LabelPair
Definition: O3prm.h:205
O3TypeList types__
Definition: O3prm.h:936

◆ O3PRM() [2/3]

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

Definition at line 412 of file O3prm.cpp.

412  {
413  GUM_CONS_CPY(O3PRM);
414  for (const auto& t: src.types__) {
415  types__.emplace_back(new O3Type(*t));
416  }
417  for (const auto& t: src.int_types__) {
418  int_types__.emplace_back(new O3IntType(*t));
419  }
420  for (const auto& t: src.real_types__) {
421  real_types__.emplace_back(new O3RealType(*t));
422  }
423  for (const auto& i: src.interfaces__) {
424  interfaces__.emplace_back(new O3Interface(*i));
425  }
426  for (const auto& c: src.classes__) {
427  classes__.emplace_back(new O3Class(*c));
428  }
429  for (const auto& s: src.systems__) {
430  systems__.emplace_back(new O3System(*s));
431  }
432  for (const auto& i: src.imports__) {
433  imports__.emplace_back(new O3Import(*i));
434  }
435  }
O3IntTypeList int_types__
Definition: O3prm.h:937
O3ImportList imports__
Definition: O3prm.h:942
O3InterfaceList interfaces__
Definition: O3prm.h:939
O3TypeList types__
Definition: O3prm.h:936
O3RealTypeList real_types__
Definition: O3prm.h:938
O3ClassList classes__
Definition: O3prm.h:940
O3SystemList systems__
Definition: O3prm.h:941

◆ O3PRM() [3/3]

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

Definition at line 437 of file O3prm.cpp.

437  :
438  types__(std::move(src.types__)), int_types__(std::move(src.int_types__)),
439  real_types__(std::move(src.real_types__)),
440  interfaces__(std::move(src.interfaces__)),
441  classes__(std::move(src.classes__)), systems__(std::move(src.systems__)),
442  imports__(std::move(src.imports__)) {
443  GUM_CONS_MOV(O3PRM);
444  }
O3IntTypeList int_types__
Definition: O3prm.h:937
O3ImportList imports__
Definition: O3prm.h:942
O3InterfaceList interfaces__
Definition: O3prm.h:939
O3TypeList types__
Definition: O3prm.h:936
O3RealTypeList real_types__
Definition: O3prm.h:938
O3ClassList classes__
Definition: O3prm.h:940
O3SystemList systems__
Definition: O3prm.h:941

◆ ~O3PRM()

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

Definition at line 446 of file O3prm.cpp.

446 { GUM_DESTRUCTOR(O3PRM); }

Member Function Documentation

◆ classes() [1/2]

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

Definition at line 502 of file O3prm.cpp.

502 { return classes__; }
O3ClassList classes__
Definition: O3prm.h:940

◆ classes() [2/2]

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

Definition at line 504 of file O3prm.cpp.

504 { return classes__; }
O3ClassList classes__
Definition: O3prm.h:940

◆ imports() [1/2]

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

Definition at line 510 of file O3prm.cpp.

510 { return imports__; }
O3ImportList imports__
Definition: O3prm.h:942

◆ imports() [2/2]

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

Definition at line 512 of file O3prm.cpp.

512 { return imports__; }
O3ImportList imports__
Definition: O3prm.h:942

◆ int_types() [1/2]

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

Definition at line 489 of file O3prm.cpp.

489 { return int_types__; }
O3IntTypeList int_types__
Definition: O3prm.h:937

◆ int_types() [2/2]

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

Definition at line 490 of file O3prm.cpp.

490 { return int_types__; }
O3IntTypeList int_types__
Definition: O3prm.h:937

◆ interfaces() [1/2]

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

Definition at line 497 of file O3prm.cpp.

497 { return interfaces__; }
O3InterfaceList interfaces__
Definition: O3prm.h:939

◆ interfaces() [2/2]

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

Definition at line 498 of file O3prm.cpp.

498  {
499  return interfaces__;
500  }
O3InterfaceList interfaces__
Definition: O3prm.h:939

◆ operator=() [1/2]

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

Definition at line 448 of file O3prm.cpp.

448  {
449  if (this == &src) { return *this; }
450  for (const auto& t: src.types__) {
451  types__.emplace_back(new O3Type(*t));
452  }
453  for (const auto& t: src.int_types__) {
454  int_types__.emplace_back(new O3IntType(*t));
455  }
456  for (const auto& t: src.real_types__) {
457  real_types__.emplace_back(new O3RealType(*t));
458  }
459  for (const auto& i: src.interfaces__) {
460  interfaces__.emplace_back(new O3Interface(*i));
461  }
462  for (const auto& c: src.classes__) {
463  classes__.emplace_back(new O3Class(*c));
464  }
465  for (const auto& s: src.systems__) {
466  systems__.emplace_back(new O3System(*s));
467  }
468  for (const auto& i: src.imports__) {
469  imports__.emplace_back(new O3Import(*i));
470  }
471  return *this;
472  }
O3IntTypeList int_types__
Definition: O3prm.h:937
O3ImportList imports__
Definition: O3prm.h:942
O3InterfaceList interfaces__
Definition: O3prm.h:939
O3TypeList types__
Definition: O3prm.h:936
O3RealTypeList real_types__
Definition: O3prm.h:938
O3ClassList classes__
Definition: O3prm.h:940
O3SystemList systems__
Definition: O3prm.h:941

◆ operator=() [2/2]

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

Definition at line 474 of file O3prm.cpp.

474  {
475  if (this == &src) { return *this; }
476  types__ = std::move(src.types__);
477  int_types__ = std::move(src.int_types__);
478  real_types__ = std::move(src.real_types__);
479  interfaces__ = std::move(src.interfaces__);
480  classes__ = std::move(src.classes__);
481  systems__ = std::move(src.systems__);
482  imports__ = std::move(src.imports__);
483  return *this;
484  }
O3IntTypeList int_types__
Definition: O3prm.h:937
O3ImportList imports__
Definition: O3prm.h:942
O3InterfaceList interfaces__
Definition: O3prm.h:939
O3TypeList types__
Definition: O3prm.h:936
O3RealTypeList real_types__
Definition: O3prm.h:938
O3ClassList classes__
Definition: O3prm.h:940
O3SystemList systems__
Definition: O3prm.h:941

◆ real_types() [1/2]

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

Definition at line 492 of file O3prm.cpp.

492 { return real_types__; }
O3RealTypeList real_types__
Definition: O3prm.h:938

◆ real_types() [2/2]

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

Definition at line 493 of file O3prm.cpp.

493  {
494  return real_types__;
495  }
O3RealTypeList real_types__
Definition: O3prm.h:938

◆ systems() [1/2]

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

Definition at line 506 of file O3prm.cpp.

506 { return systems__; }
O3SystemList systems__
Definition: O3prm.h:941

◆ systems() [2/2]

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

Definition at line 508 of file O3prm.cpp.

508 { return systems__; }
O3SystemList systems__
Definition: O3prm.h:941

◆ types() [1/2]

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

Definition at line 486 of file O3prm.cpp.

486 { return types__; }
O3TypeList types__
Definition: O3prm.h:936

◆ types() [2/2]

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

Definition at line 487 of file O3prm.cpp.

487 { return types__; }
O3TypeList types__
Definition: O3prm.h:936

Member Data Documentation

◆ classes__

O3ClassList gum::prm::o3prm::O3PRM::classes__
private

Definition at line 940 of file O3prm.h.

◆ imports__

O3ImportList gum::prm::o3prm::O3PRM::imports__
private

Definition at line 942 of file O3prm.h.

◆ int_types__

O3IntTypeList gum::prm::o3prm::O3PRM::int_types__
private

Definition at line 937 of file O3prm.h.

◆ interfaces__

O3InterfaceList gum::prm::o3prm::O3PRM::interfaces__
private

Definition at line 939 of file O3prm.h.

◆ real_types__

O3RealTypeList gum::prm::o3prm::O3PRM::real_types__
private

Definition at line 938 of file O3prm.h.

◆ systems__

O3SystemList gum::prm::o3prm::O3PRM::systems__
private

Definition at line 941 of file O3prm.h.

◆ types__

O3TypeList gum::prm::o3prm::O3PRM::types__
private

Definition at line 936 of file O3prm.h.


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