aGrUM  0.14.2
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 396 of file O3prm.cpp.

References gum::prm::o3prm::O3RealType::name().

396  {
397  GUM_CONSTRUCTOR(O3PRM);
398  // Creating the boolean type
399  auto name = O3Label(O3Position(), "boolean");
400  auto f = O3Label(O3Position(), "false");
401  auto t = O3Label(O3Position(), "true");
402  auto labels = O3Type::LabelMap();
403  labels.push_back(O3Type::LabelPair(f, O3Label()));
404  labels.push_back(O3Type::LabelPair(t, O3Label()));
405  auto boolean = std::unique_ptr< O3Type >(new O3Type());
406  boolean->name() = std::move(name);
407  boolean->labels() = std::move(labels);
408  __types.push_back(std::move(boolean));
409  }
O3TypeList __types
Definition: O3prm.h:930
std::vector< LabelPair > LabelMap
Definition: O3prm.h:205
std::pair< O3Label, O3Label > LabelPair
Definition: O3prm.h:204
+ Here is the call graph for this function:

◆ O3PRM() [2/3]

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

Definition at line 411 of file O3prm.cpp.

References __classes, __imports, __int_types, __interfaces, __real_types, __systems, __types, and gum::prm::o3prm::O3RealType::O3RealType().

411  {
412  GUM_CONS_CPY(O3PRM);
413  for (const auto& t : src.__types) {
414  __types.emplace_back(new O3Type(*t));
415  }
416  for (const auto& t : src.__int_types) {
417  __int_types.emplace_back(new O3IntType(*t));
418  }
419  for (const auto& t : src.__real_types) {
420  __real_types.emplace_back(new O3RealType(*t));
421  }
422  for (const auto& i : src.__interfaces) {
423  __interfaces.emplace_back(new O3Interface(*i));
424  }
425  for (const auto& c : src.__classes) {
426  __classes.emplace_back(new O3Class(*c));
427  }
428  for (const auto& s : src.__systems) {
429  __systems.emplace_back(new O3System(*s));
430  }
431  for (const auto& i : src.__imports) {
432  __imports.emplace_back(new O3Import(*i));
433  }
434  }
O3SystemList __systems
Definition: O3prm.h:935
O3ClassList __classes
Definition: O3prm.h:934
O3RealTypeList __real_types
Definition: O3prm.h:932
O3IntTypeList __int_types
Definition: O3prm.h:931
O3TypeList __types
Definition: O3prm.h:930
O3InterfaceList __interfaces
Definition: O3prm.h:933
O3ImportList __imports
Definition: O3prm.h:936
+ Here is the call graph for this function:

◆ O3PRM() [3/3]

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

Definition at line 436 of file O3prm.cpp.

436  :
437  __types(std::move(src.__types)), __int_types(std::move(src.__int_types)),
438  __real_types(std::move(src.__real_types)),
439  __interfaces(std::move(src.__interfaces)),
440  __classes(std::move(src.__classes)), __systems(std::move(src.__systems)),
441  __imports(std::move(src.__imports)) {
442  GUM_CONS_MOV(O3PRM);
443  }
O3SystemList __systems
Definition: O3prm.h:935
O3ClassList __classes
Definition: O3prm.h:934
O3RealTypeList __real_types
Definition: O3prm.h:932
O3IntTypeList __int_types
Definition: O3prm.h:931
O3TypeList __types
Definition: O3prm.h:930
O3InterfaceList __interfaces
Definition: O3prm.h:933
O3ImportList __imports
Definition: O3prm.h:936

◆ ~O3PRM()

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

Definition at line 445 of file O3prm.cpp.

445 { GUM_DESTRUCTOR(O3PRM); }

Member Function Documentation

◆ classes() [1/2]

◆ classes() [2/2]

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

Definition at line 503 of file O3prm.cpp.

References __classes.

503 { return __classes; }
O3ClassList __classes
Definition: O3prm.h:934

◆ imports() [1/2]

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

Definition at line 509 of file O3prm.cpp.

References __imports.

509 { return __imports; }
O3ImportList __imports
Definition: O3prm.h:936

◆ imports() [2/2]

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

Definition at line 511 of file O3prm.cpp.

References __imports.

511 { return __imports; }
O3ImportList __imports
Definition: O3prm.h:936

◆ int_types() [1/2]

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

Definition at line 488 of file O3prm.cpp.

References __int_types.

Referenced by gum::prm::o3prm::O3TypeFactory< GUM_SCALAR >::__checkDepreactedO3Types(), gum::prm::o3prm::O3TypeFactory< GUM_SCALAR >::__checkO3IntTypes(), and gum::prm::o3prm::O3TypeFactory< GUM_SCALAR >::__checkO3RealTypes().

488 { return __int_types; }
O3IntTypeList __int_types
Definition: O3prm.h:931
+ Here is the caller graph for this function:

◆ int_types() [2/2]

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

Definition at line 489 of file O3prm.cpp.

References __int_types.

489 { return __int_types; }
O3IntTypeList __int_types
Definition: O3prm.h:931

◆ interfaces() [1/2]

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

◆ interfaces() [2/2]

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

Definition at line 497 of file O3prm.cpp.

References __interfaces.

497  {
498  return __interfaces;
499  }
O3InterfaceList __interfaces
Definition: O3prm.h:933

◆ operator=() [1/2]

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

Definition at line 447 of file O3prm.cpp.

References __classes, __imports, __int_types, __interfaces, __real_types, __systems, and __types.

447  {
448  if (this == &src) { return *this; }
449  for (const auto& t : src.__types) {
450  __types.emplace_back(new O3Type(*t));
451  }
452  for (const auto& t : src.__int_types) {
453  __int_types.emplace_back(new O3IntType(*t));
454  }
455  for (const auto& t : src.__real_types) {
456  __real_types.emplace_back(new O3RealType(*t));
457  }
458  for (const auto& i : src.__interfaces) {
459  __interfaces.emplace_back(new O3Interface(*i));
460  }
461  for (const auto& c : src.__classes) {
462  __classes.emplace_back(new O3Class(*c));
463  }
464  for (const auto& s : src.__systems) {
465  __systems.emplace_back(new O3System(*s));
466  }
467  for (const auto& i : src.__imports) {
468  __imports.emplace_back(new O3Import(*i));
469  }
470  return *this;
471  }
O3SystemList __systems
Definition: O3prm.h:935
O3ClassList __classes
Definition: O3prm.h:934
O3RealTypeList __real_types
Definition: O3prm.h:932
O3IntTypeList __int_types
Definition: O3prm.h:931
O3TypeList __types
Definition: O3prm.h:930
O3InterfaceList __interfaces
Definition: O3prm.h:933
O3ImportList __imports
Definition: O3prm.h:936

◆ operator=() [2/2]

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

Definition at line 473 of file O3prm.cpp.

References __classes, __imports, __int_types, __interfaces, __real_types, __systems, and __types.

473  {
474  if (this == &src) { return *this; }
475  __types = std::move(src.__types);
476  __int_types = std::move(src.__int_types);
477  __real_types = std::move(src.__real_types);
478  __interfaces = std::move(src.__interfaces);
479  __classes = std::move(src.__classes);
480  __systems = std::move(src.__systems);
481  __imports = std::move(src.__imports);
482  return *this;
483  }
O3SystemList __systems
Definition: O3prm.h:935
O3ClassList __classes
Definition: O3prm.h:934
O3RealTypeList __real_types
Definition: O3prm.h:932
O3IntTypeList __int_types
Definition: O3prm.h:931
O3TypeList __types
Definition: O3prm.h:930
O3InterfaceList __interfaces
Definition: O3prm.h:933
O3ImportList __imports
Definition: O3prm.h:936

◆ real_types() [1/2]

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

Definition at line 491 of file O3prm.cpp.

References __real_types.

Referenced by gum::prm::o3prm::O3TypeFactory< GUM_SCALAR >::__checkDepreactedO3Types(), and gum::prm::o3prm::O3TypeFactory< GUM_SCALAR >::__checkO3RealTypes().

491 { return __real_types; }
O3RealTypeList __real_types
Definition: O3prm.h:932
+ Here is the caller graph for this function:

◆ real_types() [2/2]

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

Definition at line 492 of file O3prm.cpp.

References __real_types.

492  {
493  return __real_types;
494  }
O3RealTypeList __real_types
Definition: O3prm.h:932

◆ systems() [1/2]

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

Definition at line 505 of file O3prm.cpp.

References __systems.

Referenced by gum::prm::o3prm::O3SystemFactory< GUM_SCALAR >::build().

505 { return __systems; }
O3SystemList __systems
Definition: O3prm.h:935
+ Here is the caller graph for this function:

◆ systems() [2/2]

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

Definition at line 507 of file O3prm.cpp.

References __systems.

507 { return __systems; }
O3SystemList __systems
Definition: O3prm.h:935

◆ types() [1/2]

◆ types() [2/2]

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

Definition at line 486 of file O3prm.cpp.

References __types.

486 { 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.

Referenced by classes(), O3PRM(), and operator=().

◆ __imports

O3ImportList gum::prm::o3prm::O3PRM::__imports
private

Definition at line 936 of file O3prm.h.

Referenced by imports(), O3PRM(), and operator=().

◆ __int_types

O3IntTypeList gum::prm::o3prm::O3PRM::__int_types
private

Definition at line 931 of file O3prm.h.

Referenced by int_types(), O3PRM(), and operator=().

◆ __interfaces

O3InterfaceList gum::prm::o3prm::O3PRM::__interfaces
private

Definition at line 933 of file O3prm.h.

Referenced by interfaces(), O3PRM(), and operator=().

◆ __real_types

O3RealTypeList gum::prm::o3prm::O3PRM::__real_types
private

Definition at line 932 of file O3prm.h.

Referenced by O3PRM(), operator=(), and real_types().

◆ __systems

O3SystemList gum::prm::o3prm::O3PRM::__systems
private

Definition at line 935 of file O3prm.h.

Referenced by O3PRM(), operator=(), and systems().

◆ __types

O3TypeList gum::prm::o3prm::O3PRM::__types
private

Definition at line 930 of file O3prm.h.

Referenced by O3PRM(), operator=(), and types().


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