1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
#pragma once
#include "Function.h"
namespace storm {
STORM_PKG(core.lang);
/**
* Default constructor for a type.
*
* The constructor takes no parameters, assumes the base class has a default constructor and
* tries to initialize all data members using their default constructor.
*/
class TypeDefaultCtor : public Function {
STORM_CLASS;
public:
// Create.
STORM_CTOR TypeDefaultCtor(Type *owner);
// Pure?
virtual Bool STORM_FN pure() const;
private:
// Owner.
Type *owner;
// Generate code.
CodeGen *CODECALL generate();
};
/**
* Default copy-constructor for a type.
*/
class TypeCopyCtor : public Function {
STORM_CLASS;
public:
// Create.
STORM_CTOR TypeCopyCtor(Type *owner);
// Pure?
virtual Bool STORM_FN pure() const;
private:
// Owner.
Type *owner;
// Generate code.
CodeGen *CODECALL generate();
};
/**
* Default assignment operator for a value.
*/
class TypeAssign : public Function {
STORM_CLASS;
public:
// Create.
STORM_CTOR TypeAssign(Type *owner);
// Pure?
virtual Bool STORM_FN pure() const;
private:
// Owner.
Type *owner;
// Generate code.
CodeGen *CODECALL generate();
};
/**
* Default deepCopy function.
*/
class TypeDeepCopy : public Function {
STORM_CLASS;
public:
// Create.
STORM_CTOR TypeDeepCopy(Type *owner);
private:
// Owner.
Type *owner;
// Generate code.
CodeGen *CODECALL generate();
};
}
|