60 if (
this == &src) {
return *
this; }
68 if (
this == &src) {
return *
this; }
69 __file = std::move(src.__file);
70 __line = std::move(src.__line);
104 if (
this == &src) {
return *
this; }
111 if (
this == &src) {
return *
this; }
112 __pos = std::move(src.__pos);
113 __value = std::move(src.__value);
143 if (
this == &src) {
return *
this; }
150 if (
this == &src) {
return *
this; }
151 __pos = std::move(src.__pos);
152 __value = std::move(src.__value);
186 if (
this == &src) {
return *
this; }
193 if (
this == &src) {
return *
this; }
194 __pos = std::move(src.__pos);
225 if (
this == &src) {
return *
this; }
232 if (
this == &src) {
return *
this; }
233 __pos = std::move(src.__pos);
234 __label = std::move(src.__label);
263 if (
this == &src) {
return *
this; }
273 if (
this == &src) {
return *
this; }
274 __pos = std::move(src.__pos);
275 __name = std::move(src.__name);
315 if (
this == &src) {
return *
this; }
325 if (
this == &src) {
return *
this; }
326 __pos = std::move(src.__pos);
327 __name = std::move(src.__name);
328 __start = std::move(src.__start);
329 __end = std::move(src.__end);
367 if (
this == &src) {
return *
this; }
377 if (
this == &src) {
return *
this; }
379 __pos = std::move(src.__pos);
380 __name = std::move(src.__name);
399 GUM_CONSTRUCTOR(
O3PRM);
407 auto boolean = std::unique_ptr< O3Type >(
new O3Type());
408 boolean->name() = std::move(
name);
409 boolean->labels() = std::move(labels);
410 __types.push_back(std::move(
boolean));
415 for (
const auto& t : src.
__types) {
416 __types.emplace_back(
new O3Type(*t));
419 __int_types.emplace_back(
new O3IntType(*t));
422 __real_types.emplace_back(
new O3RealType(*t));
428 __classes.emplace_back(
new O3Class(*c));
431 __systems.emplace_back(
new O3System(*s));
434 __imports.emplace_back(
new O3Import(*i));
439 __types(
std::move(src.__types)), __int_types(
std::move(src.__int_types)),
440 __real_types(
std::move(src.__real_types)),
441 __interfaces(
std::move(src.__interfaces)),
442 __classes(
std::move(src.__classes)), __systems(
std::move(src.__systems)),
443 __imports(
std::move(src.__imports)) {
450 if (
this == &src) {
return *
this; }
451 for (
const auto& t : src.
__types) {
476 if (
this == &src) {
return *
this; }
477 __types = std::move(src.__types);
544 if (
this == &src) {
return *
this; }
552 if (
this == &src) {
return *
this; }
553 __type = std::move(src.__type);
554 __name = std::move(src.__name);
576 __elts = std::unique_ptr< O3InterfaceElementList >(copy);
589 if (
this == &src) {
return *
this; }
594 __elts = std::unique_ptr< O3InterfaceElementList >(copy);
599 if (
this == &src) {
return *
this; }
600 __pos = std::move(src.__pos);
601 __name = std::move(src.__name);
603 __elts = std::move(src.__elts);
629 __name(name), __parents(parents) {
647 if (
this == &src) {
return *
this; }
655 if (
this == &src) {
return *
this; }
656 __type = std::move(src.__type);
657 __name = std::move(src.__name);
701 if (
this == &src) {
return *
this; }
709 if (
this == &src) {
return *
this; }
721 return std::unique_ptr< O3Attribute >(
copy);
751 if (
this == &src) {
return *
this; }
759 if (
this == &src) {
return *
this; }
762 __rules = std::move(src.__rules);
771 return std::unique_ptr< O3Attribute >(
copy);
778 __interfaces = std::unique_ptr< O3LabelList >(i);
781 __params = std::unique_ptr< O3ParameterList >(p);
784 __refs = std::unique_ptr< O3ReferenceSlotList >(r);
787 __attrs = std::unique_ptr< O3AttributeList >(e);
790 __aggs = std::unique_ptr< O3AggregateList >(a);
794 __pos(src.__pos),
__name(src.
__name), __superLabel(src.__superLabel) {
800 __params = std::unique_ptr< O3ParameterList >(p);
803 __refs = std::unique_ptr< O3ReferenceSlotList >(r);
806 __attrs = std::unique_ptr< O3AttributeList >(e);
808 __attrs->push_back(elt->copy());
812 __aggs = std::unique_ptr< O3AggregateList >(a);
827 if (
this == &src) {
return *
this; }
836 __params = std::unique_ptr< O3ParameterList >(p);
839 __refs = std::unique_ptr< O3ReferenceSlotList >(r);
842 __attrs = std::unique_ptr< O3AttributeList >(e);
844 __attrs->push_back(elt->copy());
848 __aggs = std::unique_ptr< O3AggregateList >(a);
853 if (
this == &src) {
return *
this; }
854 __pos = std::move(src.__pos);
855 __name = std::move(src.__name);
859 __refs = std::move(src.__refs);
860 __attrs = std::move(src.__attrs);
861 __aggs = std::move(src.__aggs);
936 if (
this == &src) {
return *
this; }
945 if (
this == &src) {
return *
this; }
946 __type = std::move(src.__type);
947 __pos = std::move(src.__pos);
948 __name = std::move(src.__name);
949 __value = std::move(src.__value);
971 __name(name), __isArray(isArray) {
989 if (
this == &src) {
return *
this; }
997 if (
this == &src) {
return *
this; }
998 __type = std::move(src.__type);
999 __name = std::move(src.__name);
1014 __variableType(), __aggregateType(),
__name(), __parents(),
1037 if (
this == &src) {
return *
this; }
1047 if (
this == &src) {
return *
this; }
1050 __name = std::move(src.__name);
1083 __leftInstance(src.__leftInstance), __leftIndex(src.__leftIndex),
1084 __leftReference(src.__leftReference),
1085 __rightInstance(src.__rightInstance), __rightIndex(src.__rightIndex) {
1101 if (
this == &src) {
return *
this; }
1111 if (
this == &src) {
return *
this; }
1165 if (
this == &src) {
return *
this; }
1175 if (
this == &src) {
return *
this; }
1206 __type(src.__type), __name(src.__name), __size(src.__size),
1207 __parameters(src.__parameters) {
1221 if (
this == &src) {
return *
this; }
1230 if (
this == &src) {
return *
this; }
1231 __type = std::move(src.__type);
1232 __name = std::move(src.__name);
1233 __size = std::move(src.__size);
1262 __assigments(src.__assigments), __increments(src.__increments) {
1276 if (
this == &src) {
return *
this; }
1285 if (
this == &src) {
return *
this; }
1286 __name = std::move(src.__name);
1341 if (
this == &src) {
return *
this; }
1350 if (
this == &src) {
return *
this; }
1351 __name = std::move(src.__name);
1352 __value = std::move(src.__value);
1382 if (
this == &src) {
return *
this; }
1388 if (
this == &src) {
return *
this; }
1389 __import = std::move(src.__import);
std::vector< std::unique_ptr< O3RealType > > O3RealTypeList
virtual O3RuleCPT & operator=(const O3RuleCPT &src)
O3ReferenceSlot & operator=(const O3ReferenceSlot &src)
std::vector< O3ReferenceSlot > O3ReferenceSlotList
O3IncrementList & increments()
virtual O3LabelList & parents()
O3Position & operator=(const O3Position &src)
std::unique_ptr< O3ParameterList > __params
std::vector< O3InstanceParameter > O3InstanceParameterList
O3IncrementList __increments
The O3Increment is part of the AST of the O3PRM language.
virtual O3RuleList & rules()
std::vector< O3Increment > O3IncrementList
The O3InstanceParameter is part of the AST of the O3PRM language.
O3Label & leftReference()
O3Increment & operator=(const O3Increment &src)
The O3Parameter is part of the AST of the O3PRM language.
std::vector< O3Label > O3LabelList
O3PRM & operator=(const O3PRM &src)
The O3IntType is part of the AST of the O3PRM language.
O3ReferenceSlotList & referenceSlots()
std::unique_ptr< O3ReferenceSlotList > __refs
O3RealTypeList & real_types()
O3Interface & operator=(const O3Interface &src)
std::vector< std::unique_ptr< O3Attribute > > O3AttributeList
std::unique_ptr< O3LabelList > __interfaces
std::vector< std::unique_ptr< O3Import > > O3ImportList
The O3Aggregate is part of the AST of the O3PRM language.
O3AggregateList & aggregates()
std::ostream & operator<<(std::ostream &o, const O3Label &src)
std::vector< std::unique_ptr< O3IntType > > O3IntTypeList
The O3RealType is part of the AST of the O3PRM language.
std::unique_ptr< O3AttributeList > __attrs
O3InstanceParameterList & parameters()
std::vector< O3Label > O3LabelList
The O3Type is part of the AST of the O3PRM language.
O3Label & rightInstance()
O3RealType & operator=(const O3RealType &src)
O3InstanceList & instances()
O3Assignment & operator=(const O3Assignment &src)
The O3Label is part of the AST of the O3PRM language.
The O3Attribute is part of the AST of the O3PRM language.
virtual O3FormulaList & values()
std::unique_ptr< O3FormulaList > __values
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
O3RealTypeList __real_types
The O3Import is part of the AST of the O3PRM language.
O3LabelList & parameters()
O3ParameterList & parameters()
std::vector< O3Label > O3LabelList
virtual std::unique_ptr< O3Attribute > copy() const
virtual O3Attribute & operator=(const O3Attribute &src)
std::vector< O3Formula > O3FormulaList
O3IntTypeList __int_types
O3Parameter & operator=(const O3Parameter &src)
std::vector< std::unique_ptr< O3Interface > > O3InterfaceList
The O3RuleCPT is part of the AST of the O3PRM language.
std::vector< O3Float > & values()
The O3Position is part of the AST of the O3PRM language.
std::unique_ptr< O3AggregateList > __aggs
std::vector< O3Float > __values
std::unique_ptr< O3RuleList > __rules
std::vector< std::unique_ptr< O3Class > > O3ClassList
The O3Class is part of the AST of the O3PRM language.
std::vector< O3Rule > O3RuleList
virtual O3RawCPT & operator=(const O3RawCPT &src)
O3Integer & operator=(const O3Integer &src)
The O3Instance is part of the AST of the O3PRM language.
O3IntType & operator=(const O3IntType &src)
std::unique_ptr< O3InterfaceElementList > __elts
The O3ReferenceSlot is part of the AST of the O3PRM language.
std::vector< LabelPair > LabelMap
O3AssignmentList & assignments()
O3IntTypeList & int_types()
O3InstanceParameterList __parameters
O3Label & rightInstance()
O3Instance & operator=(const O3Instance &src)
std::vector< O3Aggregate > O3AggregateList
std::vector< O3Parameter > O3ParameterList
O3Aggregate & operator=(const O3Aggregate &src)
std::pair< O3Label, O3Label > LabelPair
The O3System is part of the AST of the O3PRM language.
std::vector< std::unique_ptr< O3Type > > O3TypeList
O3AttributeList & attributes()
virtual std::unique_ptr< O3Attribute > copy() const
O3InterfaceList __interfaces
O3InterfaceList & interfaces()
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
O3InterfaceElementList & elements()
The O3Float is part of the AST of the O3PRM language.
The O3RawCPT is part of the AST of the O3PRM language.
std::vector< O3Label > O3LabelList
O3InterfaceElement & operator=(const O3InterfaceElement &src)
O3Import & operator=(const O3Import &src)
The O3Assignment is part of the AST of the O3PRM language.
O3Label & aggregateType()
std::vector< O3InterfaceElement > O3InterfaceElementList
O3LabelList & interfaces()
O3Float & operator=(const O3Float &src)
The O3Integer is part of the AST of the O3PRM language.
std::vector< O3Instance > O3InstanceList
The O3InterfaceElement is part of the AST of the O3PRM language.
The O3PRM is part of the AST of the O3PRM language.
O3Label & operator=(const O3Label &src)
O3Label & leftReference()
O3Type & operator=(const O3Type &src)
O3InstanceList __instances
O3Class & operator=(const O3Class &src)
The O3Interface is part of the AST of the O3PRM language.
O3AssignmentList __assigments
std::vector< std::unique_ptr< O3System > > O3SystemList
std::vector< O3Assignment > O3AssignmentList
O3InstanceParameter & operator=(const O3InstanceParameter &src)
O3System & operator=(const O3System &src)