aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
O3prm.cpp
Go to the documentation of this file.
1
/**
2
*
3
* Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN(@LIP6) & Christophe GONZALES(@AMU)
4
* info_at_agrum_dot_org
5
*
6
* This library is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, either version 3 of the License, or
9
* (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public License
17
* along with this library. If not, see <http://www.gnu.org/licenses/>.
18
*
19
*/
20
21
22
/**
23
* @file
24
* @brief Implementation for the AST of the O3PRM language.
25
*
26
* @author Christophe GONZALES(@AMU) and Pierre-Henri WUILLEMIN(@LIP6)
27
* @author Lionel TORTI
28
*/
29
30
#
include
<
agrum
/
PRM
/
o3prm
/
O3prm
.
h
>
31
32
namespace
gum
{
33
namespace
prm
{
34
namespace
o3prm
{
35
36
O3Position
::
O3Position
() :
_file_
(
""
),
_line_
(0),
_column_
(0) {
GUM_CONSTRUCTOR
(
O3Position
); }
37
38
O3Position
::
O3Position
(
const
std
::
string
&
file
,
int
line
,
int
column
) :
39
_file_
(
file
),
_line_
(
line
),
_column_
(
column
) {
40
GUM_CONSTRUCTOR
(
O3Position
);
41
}
42
43
O3Position
::
O3Position
(
const
O3Position
&
src
) :
44
_file_
(
src
.
_file_
),
_line_
(
src
.
_line_
),
_column_
(
src
.
_column_
) {
45
GUM_CONS_CPY
(
O3Position
);
46
}
47
48
O3Position
::
O3Position
(
O3Position
&&
src
) :
49
_file_
(
std
::
move
(
src
.
_file_
)),
_line_
(
std
::
move
(
src
.
_line_
)),
50
_column_
(
std
::
move
(
src
.
_column_
)) {
51
GUM_CONS_MOV
(
O3Position
);
52
}
53
54
O3Position
::~
O3Position
() {
55
GUM_DESTRUCTOR
(
O3Position
);
56
;
57
}
58
59
O3Position
&
O3Position
::
operator
=(
const
O3Position
&
src
) {
60
if
(
this
== &
src
) {
return
*
this
; }
61
_file_
=
src
.
_file_
;
62
_line_
=
src
.
_line_
;
63
_column_
=
src
.
_column_
;
64
return
*
this
;
65
}
66
67
O3Position
&
O3Position
::
operator
=(
O3Position
&&
src
) {
68
if
(
this
== &
src
) {
return
*
this
; }
69
_file_
=
std
::
move
(
src
.
_file_
);
70
_line_
=
std
::
move
(
src
.
_line_
);
71
_column_
=
std
::
move
(
src
.
_column_
);
72
return
*
this
;
73
}
74
75
std
::
string
&
O3Position
::
file
() {
return
_file_
; }
76
const
std
::
string
&
O3Position
::
file
()
const
{
return
_file_
; }
77
78
int
&
O3Position
::
line
() {
return
_line_
; }
79
int
O3Position
::
line
()
const
{
return
_line_
; }
80
81
int
&
O3Position
::
column
() {
return
_column_
; }
82
int
O3Position
::
column
()
const
{
return
_column_
; }
83
84
O3Integer
::
O3Integer
() :
_pos_
(),
_value_
(0) {
85
GUM_CONSTRUCTOR
(
O3Integer
);
86
;
87
}
88
89
O3Integer
::
O3Integer
(
const
O3Position
&
pos
,
int
value
) :
_pos_
(
pos
),
_value_
(
value
) {
90
GUM_CONSTRUCTOR
(
O3Integer
);
91
}
92
93
O3Integer
::
O3Integer
(
const
O3Integer
&
src
) :
_pos_
(
src
.
_pos_
),
_value_
(
src
.
_value_
) {
94
GUM_CONS_CPY
(
O3Integer
);
95
}
96
97
O3Integer
::
O3Integer
(
O3Integer
&&
src
) :
98
_pos_
(
std
::
move
(
src
.
_pos_
)),
_value_
(
std
::
move
(
src
.
_value_
)) {
99
GUM_CONS_MOV
(
O3Integer
);
100
}
101
102
O3Integer
::~
O3Integer
() {
103
GUM_DESTRUCTOR
(
O3Integer
);
104
;
105
}
106
107
O3Integer
&
O3Integer
::
operator
=(
const
O3Integer
&
src
) {
108
if
(
this
== &
src
) {
return
*
this
; }
109
_pos_
=
src
.
_pos_
;
110
_value_
=
src
.
_value_
;
111
return
*
this
;
112
}
113
114
O3Integer
&
O3Integer
::
operator
=(
O3Integer
&&
src
) {
115
if
(
this
== &
src
) {
return
*
this
; }
116
_pos_
=
std
::
move
(
src
.
_pos_
);
117
_value_
=
std
::
move
(
src
.
_value_
);
118
return
*
this
;
119
}
120
121
const
O3Position
&
O3Integer
::
position
()
const
{
return
_pos_
; }
122
O3Position
&
O3Integer
::
position
() {
return
_pos_
; }
123
124
int
O3Integer
::
value
()
const
{
return
_value_
; }
125
int
&
O3Integer
::
value
() {
return
_value_
; }
126
127
O3Float
::
O3Float
() {
128
GUM_CONSTRUCTOR
(
O3Float
);
129
;
130
}
131
132
O3Float
::
O3Float
(
const
O3Position
&
pos
,
float
value
) :
_pos_
(
pos
),
_value_
(
value
) {
133
GUM_CONSTRUCTOR
(
O3Float
);
134
}
135
136
O3Float
::
O3Float
(
const
O3Float
&
src
) :
_pos_
(
src
.
_pos_
),
_value_
(
src
.
_value_
) {
137
GUM_CONS_CPY
(
O3Float
);
138
}
139
140
O3Float
::
O3Float
(
O3Float
&&
src
) :
141
_pos_
(
std
::
move
(
src
.
_pos_
)),
_value_
(
std
::
move
(
src
.
_value_
)) {
142
GUM_CONS_MOV
(
O3Float
);
143
}
144
145
O3Float
::~
O3Float
() {
146
GUM_DESTRUCTOR
(
O3Float
);
147
;
148
}
149
150
O3Float
&
O3Float
::
operator
=(
const
O3Float
&
src
) {
151
if
(
this
== &
src
) {
return
*
this
; }
152
_pos_
=
src
.
_pos_
;
153
_value_
=
src
.
_value_
;
154
return
*
this
;
155
}
156
157
O3Float
&
O3Float
::
operator
=(
O3Float
&&
src
) {
158
if
(
this
== &
src
) {
return
*
this
; }
159
_pos_
=
std
::
move
(
src
.
_pos_
);
160
_value_
=
std
::
move
(
src
.
_value_
);
161
return
*
this
;
162
}
163
164
const
O3Position
&
O3Float
::
position
()
const
{
return
_pos_
; }
165
O3Position
&
O3Float
::
position
() {
return
_pos_
; }
166
167
float
O3Float
::
value
()
const
{
return
_value_
; }
168
float
&
O3Float
::
value
() {
return
_value_
; }
169
170
O3Formula
::
O3Formula
() :
_pos_
(),
_formula_
(
std
::
unique_ptr
<
Formula
>(
new
Formula
(
""
))) {
171
GUM_CONSTRUCTOR
(
O3Formula
);
172
}
173
174
O3Formula
::
O3Formula
(
const
O3Position
&
pos
,
const
Formula
&
formula
) :
175
_pos_
(
pos
),
_formula_
(
std
::
unique_ptr
<
Formula
>(
new
Formula
(
formula
))) {
176
GUM_CONSTRUCTOR
(
O3Formula
);
177
}
178
179
O3Formula
::
O3Formula
(
const
O3Formula
&
src
) :
180
_pos_
(
src
.
_pos_
),
_formula_
(
std
::
unique_ptr
<
Formula
>(
new
Formula
(
src
.
formula
()))) {
181
GUM_CONS_CPY
(
O3Formula
);
182
}
183
184
O3Formula
::
O3Formula
(
O3Formula
&&
src
) :
185
_pos_
(
std
::
move
(
src
.
_pos_
)),
_formula_
(
std
::
move
(
src
.
_formula_
)) {
186
GUM_CONS_MOV
(
O3Formula
);
187
}
188
189
O3Formula
::~
O3Formula
() {
190
GUM_DESTRUCTOR
(
O3Formula
);
191
;
192
}
193
194
O3Formula
&
O3Formula
::
operator
=(
const
O3Formula
&
src
) {
195
if
(
this
== &
src
) {
return
*
this
; }
196
_pos_
=
src
.
_pos_
;
197
_formula_
=
std
::
unique_ptr
<
Formula
>(
new
Formula
(
src
.
formula
()));
198
return
*
this
;
199
}
200
201
O3Formula
&
O3Formula
::
operator
=(
O3Formula
&&
src
) {
202
if
(
this
== &
src
) {
return
*
this
; }
203
_pos_
=
std
::
move
(
src
.
_pos_
);
204
_formula_
=
std
::
move
(
src
.
_formula_
);
205
return
*
this
;
206
}
207
208
const
O3Position
&
O3Formula
::
position
()
const
{
return
_pos_
; }
209
O3Position
&
O3Formula
::
position
() {
return
_pos_
; }
210
211
const
Formula
&
O3Formula
::
formula
()
const
{
return
*
_formula_
; }
212
Formula
&
O3Formula
::
formula
() {
return
*
_formula_
; }
213
214
O3Label
::
O3Label
() :
_pos_
(),
_label_
() {
215
GUM_CONSTRUCTOR
(
O3Label
);
216
;
217
}
218
219
O3Label
::
O3Label
(
const
O3Position
&
pos
,
const
std
::
string
&
label
) :
220
_pos_
(
pos
),
_label_
(
label
) {
221
GUM_CONSTRUCTOR
(
O3Label
);
222
}
223
224
O3Label
::
O3Label
(
const
O3Label
&
src
) :
_pos_
(
src
.
_pos_
),
_label_
(
src
.
_label_
) {
225
GUM_CONS_CPY
(
O3Label
);
226
}
227
228
O3Label
::
O3Label
(
O3Label
&&
src
) :
229
_pos_
(
std
::
move
(
src
.
_pos_
)),
_label_
(
std
::
move
(
src
.
_label_
)) {
230
GUM_CONS_MOV
(
O3Label
);
231
}
232
233
O3Label
::~
O3Label
() {
234
GUM_DESTRUCTOR
(
O3Label
);
235
;
236
}
237
238
O3Label
&
O3Label
::
operator
=(
const
O3Label
&
src
) {
239
if
(
this
== &
src
) {
return
*
this
; }
240
_pos_
=
src
.
_pos_
;
241
_label_
=
src
.
_label_
;
242
return
*
this
;
243
}
244
245
O3Label
&
O3Label
::
operator
=(
O3Label
&&
src
) {
246
if
(
this
== &
src
) {
return
*
this
; }
247
_pos_
=
std
::
move
(
src
.
_pos_
);
248
_label_
=
std
::
move
(
src
.
_label_
);
249
return
*
this
;
250
}
251
252
const
O3Position
&
O3Label
::
position
()
const
{
return
_pos_
; }
253
O3Position
&
O3Label
::
position
() {
return
_pos_
; }
254
255
const
std
::
string
&
O3Label
::
label
()
const
{
return
_label_
; }
256
std
::
string
&
O3Label
::
label
() {
return
_label_
; }
257
258
O3Type
::
O3Type
() :
_dep_flag_
(
false
) {
259
GUM_CONSTRUCTOR
(
O3Type
);
260
;
261
}
262
263
O3Type
::
O3Type
(
const
O3Type
&
src
) :
264
_pos_
(
src
.
_pos_
),
_name_
(
src
.
_name_
),
_superLabel_
(
src
.
_superLabel_
),
265
_labels_
(
src
.
_labels_
),
_dep_flag_
(
src
.
_dep_flag_
) {
266
GUM_CONS_CPY
(
O3Type
);
267
}
268
269
O3Type
::
O3Type
(
O3Type
&&
src
) :
270
_pos_
(
std
::
move
(
src
.
_pos_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
271
_superLabel_
(
std
::
move
(
src
.
_superLabel_
)),
_labels_
(
std
::
move
(
src
.
_labels_
)),
272
_dep_flag_
(
std
::
move
(
src
.
_dep_flag_
)) {
273
GUM_CONS_MOV
(
O3Type
);
274
}
275
276
O3Type
::~
O3Type
() {
277
GUM_DESTRUCTOR
(
O3Type
);
278
;
279
}
280
281
O3Type
&
O3Type
::
operator
=(
const
O3Type
&
src
) {
282
if
(
this
== &
src
) {
return
*
this
; }
283
_pos_
=
src
.
_pos_
;
284
_name_
=
src
.
_name_
;
285
_superLabel_
=
src
.
_superLabel_
;
286
_labels_
=
src
.
_labels_
;
287
_dep_flag_
=
src
.
_dep_flag_
;
288
return
*
this
;
289
}
290
291
O3Type
&
O3Type
::
operator
=(
O3Type
&&
src
) {
292
if
(
this
== &
src
) {
return
*
this
; }
293
_pos_
=
std
::
move
(
src
.
_pos_
);
294
_name_
=
std
::
move
(
src
.
_name_
);
295
_superLabel_
=
std
::
move
(
src
.
_superLabel_
);
296
_labels_
=
std
::
move
(
src
.
_labels_
);
297
_dep_flag_
=
std
::
move
(
src
.
_dep_flag_
);
298
return
*
this
;
299
}
300
301
O3Label
&
O3Type
::
name
() {
return
_name_
; }
302
const
O3Label
&
O3Type
::
name
()
const
{
return
_name_
; }
303
304
O3Label
&
O3Type
::
superLabel
() {
return
_superLabel_
; }
305
const
O3Label
&
O3Type
::
superLabel
()
const
{
return
_superLabel_
; }
306
307
O3Type
::
LabelMap
&
O3Type
::
labels
() {
return
_labels_
; }
308
const
O3Type
::
LabelMap
&
O3Type
::
labels
()
const
{
return
_labels_
; }
309
310
O3Position
&
O3Type
::
position
() {
return
_pos_
; }
311
const
O3Position
&
O3Type
::
position
()
const
{
return
_pos_
; }
312
313
bool
&
O3Type
::
deprecated
() {
return
_dep_flag_
; }
314
const
bool
&
O3Type
::
deprecated
()
const
{
return
_dep_flag_
; }
315
316
O3IntType
::
O3IntType
() :
_dep_flag_
(
false
) {
317
GUM_CONSTRUCTOR
(
O3IntType
);
318
;
319
}
320
321
O3IntType
::
O3IntType
(
const
O3IntType
&
src
) :
322
_pos_
(
src
.
_pos_
),
_name_
(
src
.
_name_
),
_start_
(
src
.
_start_
),
_end_
(
src
.
_end_
),
323
_dep_flag_
(
src
.
_dep_flag_
) {
324
GUM_CONS_CPY
(
O3IntType
);
325
}
326
327
O3IntType
::
O3IntType
(
O3IntType
&&
src
) :
328
_pos_
(
std
::
move
(
src
.
_pos_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
329
_start_
(
std
::
move
(
src
.
_start_
)),
_end_
(
std
::
move
(
src
.
_end_
)),
330
_dep_flag_
(
std
::
move
(
src
.
_dep_flag_
)) {
331
GUM_CONS_MOV
(
O3IntType
);
332
}
333
334
O3IntType
::~
O3IntType
() {
335
GUM_DESTRUCTOR
(
O3IntType
);
336
;
337
}
338
339
O3IntType
&
O3IntType
::
operator
=(
const
O3IntType
&
src
) {
340
if
(
this
== &
src
) {
return
*
this
; }
341
_pos_
=
src
.
_pos_
;
342
_name_
=
src
.
_name_
;
343
_start_
=
src
.
_start_
;
344
_end_
=
src
.
_end_
;
345
_dep_flag_
=
src
.
_dep_flag_
;
346
return
*
this
;
347
}
348
349
O3IntType
&
O3IntType
::
operator
=(
O3IntType
&&
src
) {
350
if
(
this
== &
src
) {
return
*
this
; }
351
_pos_
=
std
::
move
(
src
.
_pos_
);
352
_name_
=
std
::
move
(
src
.
_name_
);
353
_start_
=
std
::
move
(
src
.
_start_
);
354
_end_
=
std
::
move
(
src
.
_end_
);
355
_dep_flag_
=
std
::
move
(
src
.
_dep_flag_
);
356
return
*
this
;
357
}
358
359
O3Label
&
O3IntType
::
name
() {
return
_name_
; }
360
const
O3Label
&
O3IntType
::
name
()
const
{
return
_name_
; }
361
362
O3Integer
&
O3IntType
::
start
() {
return
_start_
; }
363
const
O3Integer
&
O3IntType
::
start
()
const
{
return
_start_
; }
364
365
O3Integer
&
O3IntType
::
end
() {
return
_end_
; }
366
const
O3Integer
&
O3IntType
::
end
()
const
{
return
_end_
; }
367
368
O3Position
&
O3IntType
::
position
() {
return
_pos_
; }
369
const
O3Position
&
O3IntType
::
position
()
const
{
return
_pos_
; }
370
371
bool
&
O3IntType
::
deprecated
() {
return
_dep_flag_
; }
372
const
bool
&
O3IntType
::
deprecated
()
const
{
return
_dep_flag_
; }
373
374
O3RealType
::
O3RealType
() :
_dep_flag_
(
false
) {
375
GUM_CONSTRUCTOR
(
O3RealType
);
376
;
377
}
378
379
O3RealType
::
O3RealType
(
const
O3RealType
&
src
) :
380
_pos_
(
src
.
_pos_
),
_name_
(
src
.
_name_
),
_values_
(
src
.
_values_
),
_dep_flag_
(
src
.
_dep_flag_
) {
381
GUM_CONS_CPY
(
O3RealType
);
382
}
383
384
O3RealType
::
O3RealType
(
O3RealType
&&
src
) :
385
_pos_
(
std
::
move
(
src
.
_pos_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
386
_values_
(
std
::
move
(
src
.
_values_
)),
_dep_flag_
(
std
::
move
(
src
.
_dep_flag_
)) {
387
GUM_CONS_MOV
(
O3RealType
);
388
}
389
390
O3RealType
::~
O3RealType
() {
391
GUM_DESTRUCTOR
(
O3RealType
);
392
;
393
}
394
395
O3RealType
&
O3RealType
::
operator
=(
const
O3RealType
&
src
) {
396
if
(
this
== &
src
) {
return
*
this
; }
397
398
_pos_
=
src
.
_pos_
;
399
_name_
=
src
.
_name_
;
400
_values_
=
src
.
_values_
;
401
_dep_flag_
=
src
.
_dep_flag_
;
402
return
*
this
;
403
}
404
405
O3RealType
&
O3RealType
::
operator
=(
O3RealType
&&
src
) {
406
if
(
this
== &
src
) {
return
*
this
; }
407
408
_pos_
=
std
::
move
(
src
.
_pos_
);
409
_name_
=
std
::
move
(
src
.
_name_
);
410
_values_
=
std
::
move
(
src
.
_values_
);
411
_dep_flag_
=
std
::
move
(
src
.
_dep_flag_
);
412
return
*
this
;
413
}
414
415
O3Position
&
O3RealType
::
position
() {
return
_pos_
; }
416
const
O3Position
&
O3RealType
::
position
()
const
{
return
_pos_
; }
417
418
O3Label
&
O3RealType
::
name
() {
return
_name_
; }
419
const
O3Label
&
O3RealType
::
name
()
const
{
return
_name_
; }
420
421
std
::
vector
<
O3Float
>&
O3RealType
::
values
() {
return
_values_
; }
422
const
std
::
vector
<
O3Float
>&
O3RealType
::
values
()
const
{
return
_values_
; }
423
424
bool
&
O3RealType
::
deprecated
() {
return
_dep_flag_
; }
425
const
bool
&
O3RealType
::
deprecated
()
const
{
return
_dep_flag_
; }
426
427
O3PRM
::
O3PRM
() {
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
}
441
442
O3PRM
::
O3PRM
(
const
O3PRM
&
src
) {
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
}
466
467
O3PRM
::
O3PRM
(
O3PRM
&&
src
) :
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
}
474
475
O3PRM
::~
O3PRM
() {
476
GUM_DESTRUCTOR
(
O3PRM
);
477
;
478
}
479
480
O3PRM
&
O3PRM
::
operator
=(
const
O3PRM
&
src
) {
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
}
505
506
O3PRM
&
O3PRM
::
operator
=(
O3PRM
&&
src
) {
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
}
517
518
O3PRM
::
O3TypeList
&
O3PRM
::
types
() {
return
_types_
; }
519
const
O3PRM
::
O3TypeList
&
O3PRM
::
types
()
const
{
return
_types_
; }
520
521
O3PRM
::
O3IntTypeList
&
O3PRM
::
int_types
() {
return
_int_types_
; }
522
const
O3PRM
::
O3IntTypeList
&
O3PRM
::
int_types
()
const
{
return
_int_types_
; }
523
524
O3PRM
::
O3RealTypeList
&
O3PRM
::
real_types
() {
return
_real_types_
; }
525
const
O3PRM
::
O3RealTypeList
&
O3PRM
::
real_types
()
const
{
return
_real_types_
; }
526
527
O3PRM
::
O3InterfaceList
&
O3PRM
::
interfaces
() {
return
_interfaces_
; }
528
const
O3PRM
::
O3InterfaceList
&
O3PRM
::
interfaces
()
const
{
return
_interfaces_
; }
529
530
O3PRM
::
O3ClassList
&
O3PRM
::
classes
() {
return
_classes_
; }
531
532
const
O3PRM
::
O3ClassList
&
O3PRM
::
classes
()
const
{
return
_classes_
; }
533
534
O3PRM
::
O3SystemList
&
O3PRM
::
systems
() {
return
_systems_
; }
535
536
const
O3PRM
::
O3SystemList
&
O3PRM
::
systems
()
const
{
return
_systems_
; }
537
538
O3PRM
::
O3ImportList
&
O3PRM
::
imports
() {
return
_imports_
; }
539
540
const
O3PRM
::
O3ImportList
&
O3PRM
::
imports
()
const
{
return
_imports_
; }
541
542
O3InterfaceElement
::
O3InterfaceElement
() :
_isArray_
(
false
) {
543
GUM_CONSTRUCTOR
(
O3InterfaceElement
);
544
}
545
546
O3InterfaceElement
::
O3InterfaceElement
(
const
O3Label
&
type
,
547
const
O3Label
&
name
,
548
bool
isArray
) :
549
_type_
(
type
),
550
_name_
(
name
),
_isArray_
(
isArray
) {
551
GUM_CONSTRUCTOR
(
O3InterfaceElement
);
552
}
553
554
O3InterfaceElement
::
O3InterfaceElement
(
const
O3InterfaceElement
&
src
) :
555
_type_
(
src
.
_type_
),
_name_
(
src
.
_name_
),
_isArray_
(
src
.
_isArray_
) {
556
GUM_CONS_CPY
(
O3InterfaceElement
);
557
}
558
559
O3InterfaceElement
::
O3InterfaceElement
(
O3InterfaceElement
&&
src
) :
560
_type_
(
std
::
move
(
src
.
_type_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
561
_isArray_
(
std
::
move
(
src
.
_isArray_
)) {
562
GUM_CONS_MOV
(
O3InterfaceElement
);
563
}
564
565
O3InterfaceElement
::~
O3InterfaceElement
() {
GUM_DESTRUCTOR
(
O3InterfaceElement
); }
566
567
O3InterfaceElement
&
O3InterfaceElement
::
operator
=(
const
O3InterfaceElement
&
src
) {
568
if
(
this
== &
src
) {
return
*
this
; }
569
_type_
=
src
.
_type_
;
570
_name_
=
src
.
_name_
;
571
_isArray_
=
src
.
_isArray_
;
572
return
*
this
;
573
}
574
575
O3InterfaceElement
&
O3InterfaceElement
::
operator
=(
O3InterfaceElement
&&
src
) {
576
if
(
this
== &
src
) {
return
*
this
; }
577
_type_
=
std
::
move
(
src
.
_type_
);
578
_name_
=
std
::
move
(
src
.
_name_
);
579
_isArray_
=
std
::
move
(
src
.
_isArray_
);
580
return
*
this
;
581
}
582
583
O3Label
&
O3InterfaceElement
::
type
() {
return
_type_
; }
584
const
O3Label
&
O3InterfaceElement
::
type
()
const
{
return
_type_
; }
585
586
O3Label
&
O3InterfaceElement
::
name
() {
return
_name_
; }
587
const
O3Label
&
O3InterfaceElement
::
name
()
const
{
return
_name_
; }
588
589
bool
&
O3InterfaceElement
::
isArray
() {
return
_isArray_
; }
590
bool
O3InterfaceElement
::
isArray
()
const
{
return
_isArray_
; }
591
592
O3Interface
::
O3Interface
() :
_elts_
(
new
O3InterfaceElementList
()) {
593
GUM_CONSTRUCTOR
(
O3Interface
);
594
}
595
596
O3Interface
::
O3Interface
(
const
O3Interface
&
src
) :
597
_pos_
(
src
.
_pos_
),
_name_
(
src
.
_name_
),
_superLabel_
(
src
.
_superLabel_
) {
598
GUM_CONS_CPY
(
O3Interface
);
599
auto
copy
=
new
O3InterfaceElementList
(
src
.
elements
());
600
_elts_
=
std
::
unique_ptr
<
O3InterfaceElementList
>(
copy
);
601
}
602
603
O3Interface
::
O3Interface
(
O3Interface
&&
src
) :
604
_pos_
(
std
::
move
(
src
.
_pos_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
605
_superLabel_
(
std
::
move
(
src
.
_superLabel_
)),
_elts_
(
std
::
move
(
src
.
_elts_
)) {
606
GUM_CONS_MOV
(
O3Interface
);
607
}
608
609
O3Interface
::~
O3Interface
() {
610
GUM_DESTRUCTOR
(
O3Interface
);
611
;
612
}
613
614
O3Interface
&
O3Interface
::
operator
=(
const
O3Interface
&
src
) {
615
if
(
this
== &
src
) {
return
*
this
; }
616
_pos_
=
src
.
_pos_
;
617
_name_
=
src
.
_name_
;
618
_superLabel_
=
src
.
_superLabel_
;
619
auto
copy
=
new
O3InterfaceElementList
(
src
.
elements
());
620
_elts_
=
std
::
unique_ptr
<
O3InterfaceElementList
>(
copy
);
621
return
*
this
;
622
}
623
624
O3Interface
&
O3Interface
::
operator
=(
O3Interface
&&
src
) {
625
if
(
this
== &
src
) {
return
*
this
; }
626
_pos_
=
std
::
move
(
src
.
_pos_
);
627
_name_
=
std
::
move
(
src
.
_name_
);
628
_superLabel_
=
std
::
move
(
src
.
_superLabel_
);
629
_elts_
=
std
::
move
(
src
.
_elts_
);
630
return
*
this
;
631
}
632
633
O3Position
&
O3Interface
::
position
() {
return
_pos_
; }
634
const
O3Position
&
O3Interface
::
position
()
const
{
return
_pos_
; }
635
636
O3Label
&
O3Interface
::
name
() {
return
_name_
; }
637
const
O3Label
&
O3Interface
::
name
()
const
{
return
_name_
; }
638
639
O3Label
&
O3Interface
::
superLabel
() {
return
_superLabel_
; }
640
const
O3Label
&
O3Interface
::
superLabel
()
const
{
return
_superLabel_
; }
641
642
O3Interface
::
O3InterfaceElementList
&
O3Interface
::
elements
() {
return
*
_elts_
; }
643
const
O3Interface
::
O3InterfaceElementList
&
O3Interface
::
elements
()
const
{
return
*
_elts_
; }
644
645
O3Attribute
::
O3Attribute
() {
646
GUM_CONSTRUCTOR
(
O3Attribute
);
647
;
648
}
649
650
O3Attribute
::
O3Attribute
(
const
O3Label
&
type
,
651
const
O3Label
&
name
,
652
const
O3LabelList
&
parents
) :
653
_type_
(
type
),
654
_name_
(
name
),
_parents_
(
parents
) {
655
GUM_CONSTRUCTOR
(
O3Attribute
);
656
}
657
658
O3Attribute
::
O3Attribute
(
const
O3Attribute
&
src
) :
659
_type_
(
src
.
_type_
),
_name_
(
src
.
_name_
),
_parents_
(
src
.
_parents_
) {
660
GUM_CONS_CPY
(
O3Attribute
);
661
}
662
663
O3Attribute
::
O3Attribute
(
O3Attribute
&&
src
) :
664
_type_
(
std
::
move
(
src
.
_type_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
665
_parents_
(
std
::
move
(
src
.
_parents_
)) {
666
GUM_CONS_MOV
(
O3Attribute
);
667
}
668
669
O3Attribute
::~
O3Attribute
() {
670
GUM_DESTRUCTOR
(
O3Attribute
);
671
;
672
}
673
674
O3Attribute
&
O3Attribute
::
operator
=(
const
O3Attribute
&
src
) {
675
if
(
this
== &
src
) {
return
*
this
; }
676
_type_
=
src
.
_type_
;
677
_name_
=
src
.
_name_
;
678
_parents_
=
src
.
_parents_
;
679
return
*
this
;
680
}
681
682
O3Attribute
&
O3Attribute
::
operator
=(
O3Attribute
&&
src
) {
683
if
(
this
== &
src
) {
return
*
this
; }
684
_type_
=
std
::
move
(
src
.
_type_
);
685
_name_
=
std
::
move
(
src
.
_name_
);
686
_parents_
=
std
::
move
(
src
.
_parents_
);
687
return
*
this
;
688
}
689
690
O3Label
&
O3Attribute
::
type
() {
return
_type_
; }
691
const
O3Label
&
O3Attribute
::
type
()
const
{
return
_type_
; }
692
693
O3Label
&
O3Attribute
::
name
() {
return
_name_
; }
694
const
O3Label
&
O3Attribute
::
name
()
const
{
return
_name_
; }
695
696
O3Attribute
::
O3LabelList
&
O3Attribute
::
parents
() {
return
_parents_
; }
697
const
O3Attribute
::
O3LabelList
&
O3Attribute
::
parents
()
const
{
return
_parents_
; }
698
699
O3RawCPT
::
O3RawCPT
() :
O3Attribute
(),
_values_
{
new
O3FormulaList
{}} {
700
GUM_CONSTRUCTOR
(
O3RawCPT
);
701
}
702
703
O3RawCPT
::
O3RawCPT
(
const
O3Label
&
type
,
704
const
O3Label
&
name
,
705
const
O3LabelList
&
parents
,
706
const
O3FormulaList
&
values
) :
707
O3Attribute
(
type
,
name
,
parents
) {
708
GUM_CONSTRUCTOR
(
O3RawCPT
);
709
auto
copy
=
new
O3FormulaList
(
values
);
710
_values_
=
std
::
unique_ptr
<
O3FormulaList
>(
copy
);
711
}
712
713
O3RawCPT
::
O3RawCPT
(
const
O3RawCPT
&
src
) :
O3Attribute
(
src
) {
714
GUM_CONS_CPY
(
O3RawCPT
);
715
auto
copy
=
new
O3FormulaList
(*(
src
.
_values_
));
716
_values_
=
std
::
unique_ptr
<
O3FormulaList
>(
copy
);
717
}
718
719
O3RawCPT
::
O3RawCPT
(
O3RawCPT
&&
src
) :
O3Attribute
(
src
),
_values_
(
std
::
move
(
src
.
_values_
)) {
720
GUM_CONS_MOV
(
O3RawCPT
);
721
}
722
723
O3RawCPT
::~
O3RawCPT
() {
724
GUM_DESTRUCTOR
(
O3RawCPT
);
725
;
726
}
727
728
O3RawCPT
&
O3RawCPT
::
operator
=(
const
O3RawCPT
&
src
) {
729
if
(
this
== &
src
) {
return
*
this
; }
730
O3Attribute
::
operator
=(
src
);
731
auto
copy
=
new
O3FormulaList
(*(
src
.
_values_
));
732
_values_
=
std
::
unique_ptr
<
O3FormulaList
>(
copy
);
733
return
*
this
;
734
}
735
736
O3RawCPT
&
O3RawCPT
::
operator
=(
O3RawCPT
&&
src
) {
737
if
(
this
== &
src
) {
return
*
this
; }
738
O3Attribute
::
operator
=(
src
);
739
_values_
=
std
::
move
(
src
.
_values_
);
740
return
*
this
;
741
}
742
743
O3RawCPT
::
O3FormulaList
&
O3RawCPT
::
values
() {
return
*
_values_
; }
744
745
const
O3RawCPT
::
O3FormulaList
&
O3RawCPT
::
values
()
const
{
return
*
_values_
; }
746
747
std
::
unique_ptr
<
O3Attribute
>
O3RawCPT
::
copy
()
const
{
748
auto
copy
=
new
O3RawCPT
(*
this
);
749
return
std
::
unique_ptr
<
O3Attribute
>(
copy
);
750
}
751
752
O3RuleCPT
::
O3RuleCPT
() :
O3Attribute
(),
_rules_
{
new
O3RuleList
{}} {
753
GUM_CONSTRUCTOR
(
O3RuleCPT
);
754
}
755
756
O3RuleCPT
::
O3RuleCPT
(
const
O3Label
&
type
,
757
const
O3Label
&
name
,
758
const
O3Attribute
::
O3LabelList
&
parents
,
759
O3RuleList
&&
rules
) :
760
O3Attribute
(
type
,
name
,
parents
),
761
_rules_
(
std
::
unique_ptr
<
O3RuleList
>(
new
O3RuleList
(
rules
))) {
762
GUM_CONSTRUCTOR
(
O3RuleCPT
);
763
}
764
765
O3RuleCPT
::
O3RuleCPT
(
const
O3RuleCPT
&
src
) :
766
O3Attribute
(
src
),
_rules_
(
std
::
unique_ptr
<
O3RuleList
>(
new
O3RuleList
(
src
.
rules
()))) {
767
GUM_CONS_CPY
(
O3RuleCPT
);
768
}
769
770
O3RuleCPT
::
O3RuleCPT
(
O3RuleCPT
&&
src
) :
O3Attribute
(
src
),
_rules_
(
std
::
move
(
src
.
_rules_
)) {
771
GUM_CONS_MOV
(
O3RuleCPT
);
772
}
773
774
O3RuleCPT
::~
O3RuleCPT
() {
775
GUM_DESTRUCTOR
(
O3RuleCPT
);
776
;
777
}
778
779
O3RuleCPT
&
O3RuleCPT
::
operator
=(
const
O3RuleCPT
&
src
) {
780
if
(
this
== &
src
) {
return
*
this
; }
781
782
O3Attribute
::
operator
=(
src
);
783
_rules_
=
std
::
unique_ptr
<
O3RuleList
>(
new
O3RuleList
(
src
.
rules
()));
784
return
*
this
;
785
}
786
787
O3RuleCPT
&
O3RuleCPT
::
operator
=(
O3RuleCPT
&&
src
) {
788
if
(
this
== &
src
) {
return
*
this
; }
789
790
O3Attribute
::
operator
=(
src
);
791
_rules_
=
std
::
move
(
src
.
_rules_
);
792
return
*
this
;
793
}
794
795
O3RuleCPT
::
O3RuleList
&
O3RuleCPT
::
rules
() {
return
*
_rules_
; }
796
const
O3RuleCPT
::
O3RuleList
&
O3RuleCPT
::
rules
()
const
{
return
*
_rules_
; }
797
798
std
::
unique_ptr
<
O3Attribute
>
O3RuleCPT
::
copy
()
const
{
799
auto
copy
=
new
O3RuleCPT
(*
this
);
800
return
std
::
unique_ptr
<
O3Attribute
>(
copy
);
801
}
802
803
O3Class
::
O3Class
() {
804
GUM_CONSTRUCTOR
(
O3Class
);
805
806
auto
i
=
new
O3LabelList
();
807
_interfaces_
=
std
::
unique_ptr
<
O3LabelList
>(
i
);
808
809
auto
p
=
new
O3ParameterList
();
810
_params_
=
std
::
unique_ptr
<
O3ParameterList
>(
p
);
811
812
auto
r
=
new
O3ReferenceSlotList
();
813
_refs_
=
std
::
unique_ptr
<
O3ReferenceSlotList
>(
r
);
814
815
auto
e
=
new
O3AttributeList
();
816
_attrs_
=
std
::
unique_ptr
<
O3AttributeList
>(
e
);
817
818
auto
a
=
new
O3AggregateList
();
819
_aggs_
=
std
::
unique_ptr
<
O3AggregateList
>(
a
);
820
}
821
822
O3Class
::
O3Class
(
const
O3Class
&
src
) :
823
_pos_
(
src
.
_pos_
),
_name_
(
src
.
_name_
),
_superLabel_
(
src
.
_superLabel_
) {
824
GUM_CONS_CPY
(
O3Class
);
825
auto
i
=
new
O3LabelList
(
src
.
interfaces
());
826
_interfaces_
=
std
::
unique_ptr
<
O3LabelList
>(
i
);
827
828
auto
p
=
new
O3ParameterList
(
src
.
parameters
());
829
_params_
=
std
::
unique_ptr
<
O3ParameterList
>(
p
);
830
831
auto
r
=
new
O3ReferenceSlotList
(
src
.
referenceSlots
());
832
_refs_
=
std
::
unique_ptr
<
O3ReferenceSlotList
>(
r
);
833
834
auto
e
=
new
O3AttributeList
();
835
_attrs_
=
std
::
unique_ptr
<
O3AttributeList
>(
e
);
836
for
(
const
auto
&
elt
:
src
.
attributes
()) {
837
_attrs_
->
push_back
(
elt
->
copy
());
838
}
839
840
auto
a
=
new
O3AggregateList
(
src
.
aggregates
());
841
_aggs_
=
std
::
unique_ptr
<
O3AggregateList
>(
a
);
842
}
843
844
O3Class
::
O3Class
(
O3Class
&&
src
) :
845
_pos_
(
std
::
move
(
src
.
_pos_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
846
_superLabel_
(
std
::
move
(
src
.
_superLabel_
)),
_interfaces_
(
std
::
move
(
src
.
_interfaces_
)),
847
_params_
(
std
::
move
(
src
.
_params_
)),
_refs_
(
std
::
move
(
src
.
_refs_
)),
848
_attrs_
(
std
::
move
(
src
.
_attrs_
)),
_aggs_
(
std
::
move
(
src
.
_aggs_
)) {
849
GUM_CONS_MOV
(
O3Class
);
850
}
851
852
O3Class
::~
O3Class
() {
853
GUM_DESTRUCTOR
(
O3Class
);
854
;
855
}
856
857
O3Class
&
O3Class
::
operator
=(
const
O3Class
&
src
) {
858
if
(
this
== &
src
) {
return
*
this
; }
859
_pos_
=
src
.
_pos_
;
860
_name_
=
src
.
_name_
;
861
_superLabel_
=
src
.
_superLabel_
;
862
863
auto
i
=
new
O3LabelList
(
src
.
interfaces
());
864
_interfaces_
=
std
::
unique_ptr
<
O3LabelList
>(
i
);
865
866
auto
p
=
new
O3ParameterList
(
src
.
parameters
());
867
_params_
=
std
::
unique_ptr
<
O3ParameterList
>(
p
);
868
869
auto
r
=
new
O3ReferenceSlotList
(
src
.
referenceSlots
());
870
_refs_
=
std
::
unique_ptr
<
O3ReferenceSlotList
>(
r
);
871
872
auto
e
=
new
O3AttributeList
();
873
_attrs_
=
std
::
unique_ptr
<
O3AttributeList
>(
e
);
874
for
(
const
auto
&
elt
:
src
.
attributes
()) {
875
_attrs_
->
push_back
(
elt
->
copy
());
876
}
877
878
auto
a
=
new
O3AggregateList
(
src
.
aggregates
());
879
_aggs_
=
std
::
unique_ptr
<
O3AggregateList
>(
a
);
880
return
*
this
;
881
}
882
883
O3Class
&
O3Class
::
operator
=(
O3Class
&&
src
) {
884
if
(
this
== &
src
) {
return
*
this
; }
885
_pos_
=
std
::
move
(
src
.
_pos_
);
886
_name_
=
std
::
move
(
src
.
_name_
);
887
_superLabel_
=
std
::
move
(
src
.
_superLabel_
);
888
_interfaces_
=
std
::
move
(
src
.
_interfaces_
);
889
_params_
=
std
::
move
(
src
.
_params_
);
890
_refs_
=
std
::
move
(
src
.
_refs_
);
891
_attrs_
=
std
::
move
(
src
.
_attrs_
);
892
_aggs_
=
std
::
move
(
src
.
_aggs_
);
893
return
*
this
;
894
}
895
896
const
O3Position
&
O3Class
::
position
()
const
{
return
_pos_
; }
897
O3Position
&
O3Class
::
position
() {
return
_pos_
; }
898
899
const
O3Label
&
O3Class
::
name
()
const
{
return
_name_
; }
900
O3Label
&
O3Class
::
name
() {
return
_name_
; }
901
902
const
O3Label
&
O3Class
::
superLabel
()
const
{
return
_superLabel_
; }
903
O3Label
&
O3Class
::
superLabel
() {
return
_superLabel_
; }
904
905
const
O3Class
::
O3LabelList
&
O3Class
::
interfaces
()
const
{
return
*
_interfaces_
; }
906
O3Class
::
O3LabelList
&
O3Class
::
interfaces
() {
return
*
_interfaces_
; }
907
908
const
O3Class
::
O3ParameterList
&
O3Class
::
parameters
()
const
{
return
*
_params_
; }
909
O3Class
::
O3ParameterList
&
O3Class
::
parameters
() {
return
*
_params_
; }
910
911
const
O3Class
::
O3ReferenceSlotList
&
O3Class
::
referenceSlots
()
const
{
return
*
_refs_
; }
912
O3Class
::
O3ReferenceSlotList
&
O3Class
::
referenceSlots
() {
return
*
_refs_
; }
913
914
O3Class
::
O3AttributeList
&
O3Class
::
attributes
() {
return
*
_attrs_
; }
915
916
const
O3Class
::
O3AttributeList
&
O3Class
::
attributes
()
const
{
return
*
_attrs_
; }
917
918
O3Class
::
O3AggregateList
&
O3Class
::
aggregates
() {
return
*
_aggs_
; }
919
const
O3Class
::
O3AggregateList
&
O3Class
::
aggregates
()
const
{
return
*
_aggs_
; }
920
921
O3Parameter
::
O3Parameter
() :
_type_
(
O3Parameter
::
PRMType
::
NONE
) {
922
GUM_CONSTRUCTOR
(
O3Parameter
);
923
}
924
925
O3Parameter
::
O3Parameter
(
const
O3Position
&
pos
,
const
O3Label
&
name
,
const
O3Integer
&
value
) :
926
_type_
(
O3Parameter
::
PRMType
::
INT
),
_pos_
(
pos
),
_name_
(
name
),
927
_value_
(
O3Float
(
value
.
position
(), (
float
)
value
.
value
())) {
928
GUM_CONSTRUCTOR
(
O3Parameter
);
929
}
930
931
O3Parameter
::
O3Parameter
(
const
O3Position
&
pos
,
const
O3Label
&
name
,
const
O3Float
&
value
) :
932
_type_
(
O3Parameter
::
PRMType
::
FLOAT
),
_pos_
(
pos
),
_name_
(
name
),
_value_
(
value
) {
933
GUM_CONSTRUCTOR
(
O3Parameter
);
934
}
935
936
O3Parameter
::
O3Parameter
(
const
O3Parameter
&
src
) :
937
_type_
(
src
.
_type_
),
_pos_
(
src
.
_pos_
),
_name_
(
src
.
_name_
),
_value_
(
src
.
_value_
) {
938
GUM_CONS_CPY
(
O3Parameter
);
939
}
940
941
O3Parameter
::
O3Parameter
(
O3Parameter
&&
src
) :
942
_type_
(
std
::
move
(
src
.
_type_
)),
_pos_
(
std
::
move
(
src
.
_pos_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
943
_value_
(
std
::
move
(
src
.
_value_
)) {
944
GUM_CONS_MOV
(
O3Parameter
);
945
}
946
947
O3Parameter
::~
O3Parameter
() {
948
GUM_DESTRUCTOR
(
O3Parameter
);
949
;
950
}
951
952
O3Parameter
&
O3Parameter
::
operator
=(
const
O3Parameter
&
src
) {
953
if
(
this
== &
src
) {
return
*
this
; }
954
_type_
=
src
.
_type_
;
955
_pos_
=
src
.
_pos_
;
956
_name_
=
src
.
_name_
;
957
_value_
=
src
.
_value_
;
958
return
*
this
;
959
}
960
961
O3Parameter
&
O3Parameter
::
operator
=(
O3Parameter
&&
src
) {
962
if
(
this
== &
src
) {
return
*
this
; }
963
_type_
=
std
::
move
(
src
.
_type_
);
964
_pos_
=
std
::
move
(
src
.
_pos_
);
965
_name_
=
std
::
move
(
src
.
_name_
);
966
_value_
=
std
::
move
(
src
.
_value_
);
967
return
*
this
;
968
}
969
970
O3Parameter
::
PRMType
&
O3Parameter
::
type
() {
return
_type_
; }
971
O3Parameter
::
PRMType
O3Parameter
::
type
()
const
{
return
_type_
; }
972
973
O3Position
&
O3Parameter
::
position
() {
return
_pos_
; }
974
const
O3Position
&
O3Parameter
::
position
()
const
{
return
_pos_
; }
975
976
O3Label
&
O3Parameter
::
name
() {
return
_name_
; }
977
const
O3Label
&
O3Parameter
::
name
()
const
{
return
_name_
; }
978
979
O3Float
&
O3Parameter
::
value
() {
return
_value_
; }
980
const
O3Float
&
O3Parameter
::
value
()
const
{
return
_value_
; }
981
982
O3ReferenceSlot
::
O3ReferenceSlot
() {
983
GUM_CONSTRUCTOR
(
O3ReferenceSlot
);
984
;
985
}
986
987
O3ReferenceSlot
::
O3ReferenceSlot
(
const
O3Label
&
type
,
const
O3Label
&
name
,
bool
isArray
) :
988
_type_
(
type
),
_name_
(
name
),
_isArray_
(
isArray
) {
989
GUM_CONSTRUCTOR
(
O3ReferenceSlot
);
990
}
991
992
O3ReferenceSlot
::
O3ReferenceSlot
(
const
O3ReferenceSlot
&
src
) :
993
_type_
(
src
.
_type_
),
_name_
(
src
.
_name_
),
_isArray_
(
src
.
_isArray_
) {
994
GUM_CONS_CPY
(
O3ReferenceSlot
);
995
}
996
997
O3ReferenceSlot
::
O3ReferenceSlot
(
O3ReferenceSlot
&&
src
) :
998
_type_
(
std
::
move
(
src
.
_type_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
999
_isArray_
(
std
::
move
(
src
.
_isArray_
)) {
1000
GUM_CONS_MOV
(
O3ReferenceSlot
);
1001
}
1002
1003
O3ReferenceSlot
::~
O3ReferenceSlot
() {
1004
GUM_DESTRUCTOR
(
O3ReferenceSlot
);
1005
;
1006
}
1007
1008
O3ReferenceSlot
&
O3ReferenceSlot
::
operator
=(
const
O3ReferenceSlot
&
src
) {
1009
if
(
this
== &
src
) {
return
*
this
; }
1010
_type_
=
src
.
_type_
;
1011
_name_
=
src
.
_name_
;
1012
_isArray_
=
src
.
_isArray_
;
1013
return
*
this
;
1014
}
1015
1016
O3ReferenceSlot
&
O3ReferenceSlot
::
operator
=(
O3ReferenceSlot
&&
src
) {
1017
if
(
this
== &
src
) {
return
*
this
; }
1018
_type_
=
std
::
move
(
src
.
_type_
);
1019
_name_
=
std
::
move
(
src
.
_name_
);
1020
_isArray_
=
std
::
move
(
src
.
_isArray_
);
1021
return
*
this
;
1022
}
1023
1024
O3Label
&
O3ReferenceSlot
::
type
() {
return
_type_
; }
1025
const
O3Label
&
O3ReferenceSlot
::
type
()
const
{
return
_type_
; }
1026
1027
O3Label
&
O3ReferenceSlot
::
name
() {
return
_name_
; }
1028
const
O3Label
&
O3ReferenceSlot
::
name
()
const
{
return
_name_
; }
1029
1030
bool
&
O3ReferenceSlot
::
isArray
() {
return
_isArray_
; }
1031
bool
O3ReferenceSlot
::
isArray
()
const
{
return
_isArray_
; }
1032
1033
O3Aggregate
::
O3Aggregate
() :
1034
_variableType_
(),
_aggregateType_
(),
_name_
(),
_parents_
(),
_parameters_
() {
1035
GUM_CONSTRUCTOR
(
O3Aggregate
);
1036
}
1037
1038
O3Aggregate
::
O3Aggregate
(
const
O3Aggregate
&
src
) :
1039
_variableType_
(
src
.
_variableType_
),
_aggregateType_
(
src
.
_aggregateType_
),
1040
_name_
(
src
.
_name_
),
_parents_
(
src
.
_parents_
),
_parameters_
(
src
.
_parameters_
) {
1041
GUM_CONS_CPY
(
O3Aggregate
);
1042
}
1043
1044
O3Aggregate
::
O3Aggregate
(
O3Aggregate
&&
src
) :
1045
_variableType_
(
std
::
move
(
src
.
_variableType_
)),
1046
_aggregateType_
(
std
::
move
(
src
.
_aggregateType_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
1047
_parents_
(
std
::
move
(
src
.
_parents_
)),
_parameters_
(
std
::
move
(
src
.
_parameters_
)) {
1048
GUM_CONS_MOV
(
O3Aggregate
);
1049
}
1050
1051
O3Aggregate
::~
O3Aggregate
() {
1052
GUM_DESTRUCTOR
(
O3Aggregate
);
1053
;
1054
}
1055
1056
O3Aggregate
&
O3Aggregate
::
operator
=(
const
O3Aggregate
&
src
) {
1057
if
(
this
== &
src
) {
return
*
this
; }
1058
_aggregateType_
=
src
.
_aggregateType_
;
1059
_variableType_
=
src
.
_variableType_
;
1060
_name_
=
src
.
_name_
;
1061
_parents_
=
src
.
_parents_
;
1062
_parameters_
=
src
.
_parameters_
;
1063
return
*
this
;
1064
}
1065
1066
O3Aggregate
&
O3Aggregate
::
operator
=(
O3Aggregate
&&
src
) {
1067
if
(
this
== &
src
) {
return
*
this
; }
1068
_aggregateType_
=
std
::
move
(
src
.
_aggregateType_
);
1069
_variableType_
=
std
::
move
(
src
.
_variableType_
);
1070
_name_
=
std
::
move
(
src
.
_name_
);
1071
_parents_
=
std
::
move
(
src
.
_parents_
);
1072
_parameters_
=
std
::
move
(
src
.
_parameters_
);
1073
return
*
this
;
1074
}
1075
1076
O3Label
&
O3Aggregate
::
variableType
() {
return
_variableType_
; }
1077
1078
const
O3Label
&
O3Aggregate
::
variableType
()
const
{
return
_variableType_
; }
1079
1080
O3Label
&
O3Aggregate
::
aggregateType
() {
return
_aggregateType_
; }
1081
1082
const
O3Label
&
O3Aggregate
::
aggregateType
()
const
{
return
_aggregateType_
; }
1083
1084
O3Label
&
O3Aggregate
::
name
() {
return
_name_
; }
1085
1086
const
O3Label
&
O3Aggregate
::
name
()
const
{
return
_name_
; }
1087
1088
O3Aggregate
::
O3LabelList
&
O3Aggregate
::
parents
() {
return
_parents_
; }
1089
1090
const
O3Aggregate
::
O3LabelList
&
O3Aggregate
::
parents
()
const
{
return
_parents_
; }
1091
1092
O3Aggregate
::
O3LabelList
&
O3Aggregate
::
parameters
() {
return
_parameters_
; }
1093
1094
const
O3Aggregate
::
O3LabelList
&
O3Aggregate
::
parameters
()
const
{
return
_parameters_
; }
1095
1096
O3Assignment
::
O3Assignment
() {
1097
GUM_CONSTRUCTOR
(
O3Assignment
);
1098
;
1099
}
1100
1101
O3Assignment
::
O3Assignment
(
const
O3Assignment
&
src
) :
1102
_leftInstance_
(
src
.
_leftInstance_
),
_leftIndex_
(
src
.
_leftIndex_
),
1103
_leftReference_
(
src
.
_leftReference_
),
_rightInstance_
(
src
.
_rightInstance_
),
1104
_rightIndex_
(
src
.
_rightIndex_
) {
1105
GUM_CONS_CPY
(
O3Assignment
);
1106
}
1107
1108
O3Assignment
::
O3Assignment
(
O3Assignment
&&
src
) :
1109
_leftInstance_
(
std
::
move
(
src
.
_leftInstance_
)),
_leftIndex_
(
std
::
move
(
src
.
_leftIndex_
)),
1110
_leftReference_
(
std
::
move
(
src
.
_leftReference_
)),
1111
_rightInstance_
(
std
::
move
(
src
.
_rightInstance_
)),
1112
_rightIndex_
(
std
::
move
(
src
.
_rightIndex_
)) {
1113
GUM_CONS_CPY
(
O3Assignment
);
1114
}
1115
1116
O3Assignment
::~
O3Assignment
() {
1117
GUM_DESTRUCTOR
(
O3Assignment
);
1118
;
1119
}
1120
1121
O3Assignment
&
O3Assignment
::
operator
=(
const
O3Assignment
&
src
) {
1122
if
(
this
== &
src
) {
return
*
this
; }
1123
_leftInstance_
=
src
.
_leftInstance_
;
1124
_leftIndex_
=
src
.
_leftIndex_
;
1125
_leftReference_
=
src
.
_leftReference_
;
1126
_rightInstance_
=
src
.
_rightInstance_
;
1127
_rightIndex_
=
src
.
_rightIndex_
;
1128
return
*
this
;
1129
}
1130
1131
O3Assignment
&
O3Assignment
::
operator
=(
O3Assignment
&&
src
) {
1132
if
(
this
== &
src
) {
return
*
this
; }
1133
_leftInstance_
=
std
::
move
(
src
.
_leftInstance_
);
1134
_leftIndex_
=
std
::
move
(
src
.
_leftIndex_
);
1135
_leftReference_
=
std
::
move
(
src
.
_leftReference_
);
1136
_rightInstance_
=
std
::
move
(
src
.
_rightInstance_
);
1137
_rightIndex_
=
std
::
move
(
src
.
_rightIndex_
);
1138
return
*
this
;
1139
}
1140
1141
const
O3Label
&
O3Assignment
::
leftInstance
()
const
{
return
_leftInstance_
; }
1142
1143
O3Label
&
O3Assignment
::
leftInstance
() {
return
_leftInstance_
; }
1144
1145
const
O3Integer
&
O3Assignment
::
leftIndex
()
const
{
return
_leftIndex_
; }
1146
1147
O3Integer
&
O3Assignment
::
leftIndex
() {
return
_leftIndex_
; }
1148
1149
const
O3Label
&
O3Assignment
::
leftReference
()
const
{
return
_leftReference_
; }
1150
1151
O3Label
&
O3Assignment
::
leftReference
() {
return
_leftReference_
; }
1152
1153
const
O3Label
&
O3Assignment
::
rightInstance
()
const
{
return
_rightInstance_
; }
1154
1155
O3Label
&
O3Assignment
::
rightInstance
() {
return
_rightInstance_
; }
1156
1157
O3Integer
&
O3Assignment
::
rightIndex
() {
return
_rightIndex_
; }
1158
1159
const
O3Integer
&
O3Assignment
::
rightIndex
()
const
{
return
_rightIndex_
; }
1160
1161
O3Increment
::
O3Increment
() {
1162
GUM_CONSTRUCTOR
(
O3Increment
);
1163
;
1164
}
1165
1166
O3Increment
::
O3Increment
(
const
O3Increment
&
src
) :
1167
_leftInstance_
(
src
.
_leftInstance_
),
_leftIndex_
(
src
.
_leftIndex_
),
1168
_leftReference_
(
src
.
_leftReference_
),
_rightInstance_
(
src
.
_rightInstance_
),
1169
_rightIndex_
(
src
.
_rightIndex_
) {
1170
GUM_CONS_CPY
(
O3Increment
);
1171
}
1172
1173
O3Increment
::
O3Increment
(
O3Increment
&&
src
) :
1174
_leftInstance_
(
std
::
move
(
src
.
_leftInstance_
)),
_leftIndex_
(
std
::
move
(
src
.
_leftIndex_
)),
1175
_leftReference_
(
std
::
move
(
src
.
_leftReference_
)),
1176
_rightInstance_
(
std
::
move
(
src
.
_rightInstance_
)),
1177
_rightIndex_
(
std
::
move
(
src
.
_rightIndex_
)) {
1178
GUM_CONS_CPY
(
O3Increment
);
1179
}
1180
1181
O3Increment
::~
O3Increment
() {
1182
GUM_DESTRUCTOR
(
O3Increment
);
1183
;
1184
}
1185
1186
O3Increment
&
O3Increment
::
operator
=(
const
O3Increment
&
src
) {
1187
if
(
this
== &
src
) {
return
*
this
; }
1188
_leftInstance_
=
src
.
_leftInstance_
;
1189
_leftIndex_
=
src
.
_leftIndex_
;
1190
_leftReference_
=
src
.
_leftReference_
;
1191
_rightInstance_
=
src
.
_rightInstance_
;
1192
_rightIndex_
=
src
.
_rightIndex_
;
1193
return
*
this
;
1194
}
1195
1196
O3Increment
&
O3Increment
::
operator
=(
O3Increment
&&
src
) {
1197
if
(
this
== &
src
) {
return
*
this
; }
1198
_leftInstance_
=
std
::
move
(
src
.
_leftInstance_
);
1199
_leftIndex_
=
std
::
move
(
src
.
_leftIndex_
);
1200
_leftReference_
=
std
::
move
(
src
.
_leftReference_
);
1201
_rightInstance_
=
std
::
move
(
src
.
_rightInstance_
);
1202
_rightIndex_
=
std
::
move
(
src
.
_rightIndex_
);
1203
return
*
this
;
1204
}
1205
1206
const
O3Label
&
O3Increment
::
leftInstance
()
const
{
return
_leftInstance_
; }
1207
1208
O3Label
&
O3Increment
::
leftInstance
() {
return
_leftInstance_
; }
1209
1210
const
O3Integer
&
O3Increment
::
leftIndex
()
const
{
return
_leftIndex_
; }
1211
1212
O3Integer
&
O3Increment
::
leftIndex
() {
return
_leftIndex_
; }
1213
1214
const
O3Label
&
O3Increment
::
leftReference
()
const
{
return
_leftReference_
; }
1215
1216
O3Label
&
O3Increment
::
leftReference
() {
return
_leftReference_
; }
1217
1218
const
O3Label
&
O3Increment
::
rightInstance
()
const
{
return
_rightInstance_
; }
1219
1220
O3Integer
&
O3Increment
::
rightIndex
() {
return
_rightIndex_
; }
1221
const
O3Integer
&
O3Increment
::
rightIndex
()
const
{
return
_rightIndex_
; }
1222
1223
O3Label
&
O3Increment
::
rightInstance
() {
return
_rightInstance_
; }
1224
1225
O3Instance
::
O3Instance
() {
1226
GUM_CONSTRUCTOR
(
O3Instance
);
1227
;
1228
}
1229
1230
O3Instance
::
O3Instance
(
const
O3Instance
&
src
) :
1231
_type_
(
src
.
_type_
),
_name_
(
src
.
_name_
),
_size_
(
src
.
_size_
),
1232
_parameters_
(
src
.
_parameters_
) {
1233
GUM_CONS_CPY
(
O3Instance
);
1234
}
1235
1236
O3Instance
::
O3Instance
(
O3Instance
&&
src
) :
1237
_type_
(
std
::
move
(
src
.
_type_
)),
_name_
(
std
::
move
(
src
.
_name_
)),
1238
_size_
(
std
::
move
(
src
.
_size_
)),
_parameters_
(
std
::
move
(
src
.
_parameters_
)) {
1239
GUM_CONS_MOV
(
O3Instance
);
1240
}
1241
1242
O3Instance
::~
O3Instance
() {
1243
GUM_DESTRUCTOR
(
O3Instance
);
1244
;
1245
}
1246
1247
O3Instance
&
O3Instance
::
operator
=(
const
O3Instance
&
src
) {
1248
if
(
this
== &
src
) {
return
*
this
; }
1249
_type_
=
src
.
_type_
;
1250
_name_
=
src
.
_name_
;
1251
_size_
=
src
.
_size_
;
1252
_parameters_
=
src
.
_parameters_
;
1253
return
*
this
;
1254
}
1255
1256
O3Instance
&
O3Instance
::
operator
=(
O3Instance
&&
src
) {
1257
if
(
this
== &
src
) {
return
*
this
; }
1258
_type_
=
std
::
move
(
src
.
_type_
);
1259
_name_
=
std
::
move
(
src
.
_name_
);
1260
_size_
=
std
::
move
(
src
.
_size_
);
1261
_parameters_
=
std
::
move
(
src
.
_parameters_
);
1262
return
*
this
;
1263
}
1264
1265
const
O3Label
&
O3Instance
::
type
()
const
{
return
_type_
; }
1266
1267
O3Label
&
O3Instance
::
type
() {
return
_type_
; }
1268
1269
const
O3Label
&
O3Instance
::
name
()
const
{
return
_name_
; }
1270
1271
O3Label
&
O3Instance
::
name
() {
return
_name_
; }
1272
1273
const
O3Integer
&
O3Instance
::
size
()
const
{
return
_size_
; }
1274
1275
O3Integer
&
O3Instance
::
size
() {
return
_size_
; }
1276
1277
const
O3Instance
::
O3InstanceParameterList
&
O3Instance
::
parameters
()
const
{
1278
return
_parameters_
;
1279
}
1280
1281
O3Instance
::
O3InstanceParameterList
&
O3Instance
::
parameters
() {
return
_parameters_
; }
1282
1283
O3System
::
O3System
() {
1284
GUM_CONSTRUCTOR
(
O3System
);
1285
;
1286
}
1287
1288
O3System
::
O3System
(
const
O3System
&
src
) :
1289
_name_
(
src
.
_name_
),
_instances_
(
src
.
_instances_
),
_assigments_
(
src
.
_assigments_
),
1290
_increments_
(
src
.
_increments_
) {
1291
GUM_CONS_CPY
(
O3System
);
1292
}
1293
1294
O3System
::
O3System
(
O3System
&&
src
) :
1295
_name_
(
std
::
move
(
src
.
_name_
)),
_instances_
(
std
::
move
(
src
.
_instances_
)),
1296
_assigments_
(
std
::
move
(
src
.
_assigments_
)),
_increments_
(
std
::
move
(
src
.
_increments_
)) {
1297
GUM_CONS_MOV
(
O3System
);
1298
}
1299
1300
O3System
::~
O3System
() {
1301
GUM_DESTRUCTOR
(
O3System
);
1302
;
1303
}
1304
1305
O3System
&
O3System
::
operator
=(
const
O3System
&
src
) {
1306
if
(
this
== &
src
) {
return
*
this
; }
1307
_name_
=
src
.
_name_
;
1308
_instances_
=
src
.
_instances_
;
1309
_assigments_
=
src
.
_assigments_
;
1310
_increments_
=
src
.
_increments_
;
1311
return
*
this
;
1312
}
1313
1314
O3System
&
O3System
::
operator
=(
O3System
&&
src
) {
1315
if
(
this
== &
src
) {
return
*
this
; }
1316
_name_
=
std
::
move
(
src
.
_name_
);
1317
_instances_
=
std
::
move
(
src
.
_instances_
);
1318
_assigments_
=
std
::
move
(
src
.
_assigments_
);
1319
_increments_
=
std
::
move
(
src
.
_increments_
);
1320
return
*
this
;
1321
}
1322
1323
const
O3Label
&
O3System
::
name
()
const
{
return
_name_
; }
1324
1325
O3Label
&
O3System
::
name
() {
return
_name_
; }
1326
1327
const
O3System
::
O3InstanceList
&
O3System
::
instances
()
const
{
return
_instances_
; }
1328
1329
O3System
::
O3InstanceList
&
O3System
::
instances
() {
return
_instances_
; }
1330
1331
const
O3System
::
O3AssignmentList
&
O3System
::
assignments
()
const
{
return
_assigments_
; }
1332
1333
O3System
::
O3AssignmentList
&
O3System
::
assignments
() {
return
_assigments_
; }
1334
1335
const
O3System
::
O3IncrementList
&
O3System
::
increments
()
const
{
return
_increments_
; }
1336
1337
O3System
::
O3IncrementList
&
O3System
::
increments
() {
return
_increments_
; }
1338
1339
std
::
ostream
&
operator
<<(
std
::
ostream
&
o
,
const
O3Label
&
src
) {
1340
o << src.label();
1341
return
o;
1342
}
1343
1344
O3InstanceParameter
::
O3InstanceParameter
() :
_isInteger_
(
false
) {
1345
GUM_CONSTRUCTOR
(
O3InstanceParameter
);
1346
}
1347
1348
O3InstanceParameter
::
O3InstanceParameter
(
const
O3InstanceParameter
&
src
) :
1349
_name_
(
src
.
_name_
),
_value_
(
src
.
_value_
),
_isInteger_
(
src
.
_isInteger_
) {
1350
GUM_CONS_CPY
(
O3InstanceParameter
);
1351
}
1352
1353
O3InstanceParameter
::
O3InstanceParameter
(
O3InstanceParameter
&&
src
) :
1354
_name_
(
std
::
move
(
src
.
_name_
)),
_value_
(
std
::
move
(
src
.
_value_
)),
1355
_isInteger_
(
std
::
move
(
src
.
_isInteger_
)) {
1356
GUM_CONS_MOV
(
O3InstanceParameter
);
1357
}
1358
1359
O3InstanceParameter
::~
O3InstanceParameter
() {
GUM_DESTRUCTOR
(
O3InstanceParameter
); }
1360
1361
O3InstanceParameter
&
O3InstanceParameter
::
operator
=(
const
O3InstanceParameter
&
src
) {
1362
if
(
this
== &
src
) {
return
*
this
; }
1363
_name_
=
src
.
_name_
;
1364
_value_
=
src
.
_value_
;
1365
_isInteger_
=
src
.
_isInteger_
;
1366
return
*
this
;
1367
}
1368
1369
O3InstanceParameter
&
O3InstanceParameter
::
operator
=(
O3InstanceParameter
&&
src
) {
1370
if
(
this
== &
src
) {
return
*
this
; }
1371
_name_
=
std
::
move
(
src
.
_name_
);
1372
_value_
=
std
::
move
(
src
.
_value_
);
1373
_isInteger_
=
std
::
move
(
src
.
_isInteger_
);
1374
return
*
this
;
1375
}
1376
1377
const
O3Label
&
O3InstanceParameter
::
name
()
const
{
return
_name_
; }
1378
1379
O3Label
&
O3InstanceParameter
::
name
() {
return
_name_
; }
1380
1381
const
O3Float
&
O3InstanceParameter
::
value
()
const
{
return
_value_
; }
1382
1383
O3Float
&
O3InstanceParameter
::
value
() {
return
_value_
; }
1384
1385
bool
O3InstanceParameter
::
isInteger
()
const
{
return
_isInteger_
; }
1386
1387
bool
&
O3InstanceParameter
::
isInteger
() {
return
_isInteger_
; }
1388
1389
O3Import
::
O3Import
() {
1390
GUM_CONSTRUCTOR
(
O3Import
);
1391
;
1392
}
1393
1394
O3Import
::
O3Import
(
const
O3Import
&
src
) :
_import_
(
src
.
_import_
) {
1395
GUM_CONSTRUCTOR
(
O3Import
);
1396
}
1397
1398
O3Import
::
O3Import
(
O3Import
&&
src
) :
_import_
(
std
::
move
(
src
.
_import_
)) {
1399
GUM_CONS_MOV
(
O3Import
);
1400
}
1401
1402
O3Import
::~
O3Import
() {
1403
GUM_DESTRUCTOR
(
O3Import
);
1404
;
1405
}
1406
1407
O3Import
&
O3Import
::
operator
=(
const
O3Import
&
src
) {
1408
if
(
this
== &
src
) {
return
*
this
; }
1409
_import_
=
src
.
_import_
;
1410
return
*
this
;
1411
}
1412
1413
O3Import
&
O3Import
::
operator
=(
O3Import
&&
src
) {
1414
if
(
this
== &
src
) {
return
*
this
; }
1415
_import_
=
std
::
move
(
src
.
_import_
);
1416
return
*
this
;
1417
}
1418
1419
const
O3Label
&
O3Import
::
import
()
const
{
return
_import_
; }
1420
1421
O3Label
&
O3Import
::
import
() {
return
_import_
; }
1422
1423
}
// namespace o3prm
1424
}
// namespace prm
1425
}
// namespace gum
gum::Set::emplace
INLINE void emplace(Args &&... args)
Definition:
set_tpl.h:643
gum::prm::o3prm::operator<<
std::ostream & operator<<(std::ostream &o, const O3Label &src)
Definition:
O3prm.cpp:1339
gum::prm::o3prm
Definition:
O3prm.cpp:34
gum::prm::ParamScopeData::ParamScopeData
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)
Definition:
PRMClass_tpl.h:1032