13 #define TYPE_TO_ENUM(type,e_val) template<> ParameterTypes ParameterTypeToEnum::toEnum<type >(){ return e_val; } 14 #define TYPE_TO_NAME(type) case k_ ## type: return #type 19 class LuminosityBlockID;
110 print_(os, optional, writeToCfi, dfh);
125 char oldFill = os.fill(
' ');
133 std::unique_ptr<ParameterDescriptionCases<bool>>
136 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
137 return caseValue >>
std::move(clonedNode);
140 std::unique_ptr<ParameterDescriptionCases<int>>
143 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
144 return caseValue >>
std::move(clonedNode);
147 std::unique_ptr<ParameterDescriptionCases<std::string>>
150 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
151 return caseValue >>
std::move(clonedNode);
154 std::unique_ptr<ParameterDescriptionCases<std::string>>
157 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
158 return caseValue >>
std::move(clonedNode);
161 std::unique_ptr<ParameterDescriptionCases<bool>>
163 std::unique_ptr<ParameterDescriptionNode> node) {
164 return std::unique_ptr<ParameterDescriptionCases<bool>>(
168 std::unique_ptr<ParameterDescriptionCases<int>>
170 std::unique_ptr<ParameterDescriptionNode> node) {
171 return std::unique_ptr<ParameterDescriptionCases<int>>(
175 std::unique_ptr<ParameterDescriptionCases<std::string>>
177 std::unique_ptr<ParameterDescriptionNode> node) {
178 return std::unique_ptr<ParameterDescriptionCases<std::string>>(
182 std::unique_ptr<ParameterDescriptionCases<std::string>>
184 std::unique_ptr<ParameterDescriptionNode> node) {
186 return std::unique_ptr<ParameterDescriptionCases<std::string>>(
192 std::unique_ptr<ParameterDescriptionNode>
195 return std::make_unique<ANDGroupDescription>(node_left, node_right);
198 std::unique_ptr<ParameterDescriptionNode>
199 operator&&(std::unique_ptr<ParameterDescriptionNode> node_left,
201 return std::make_unique<ANDGroupDescription>(
std::move(node_left), node_right);
204 std::unique_ptr<ParameterDescriptionNode>
206 std::unique_ptr<ParameterDescriptionNode> node_right) {
207 return std::make_unique<ANDGroupDescription>(node_left,
std::move(node_right));
210 std::unique_ptr<ParameterDescriptionNode>
211 operator&&(std::unique_ptr<ParameterDescriptionNode> node_left,
212 std::unique_ptr<ParameterDescriptionNode> node_right) {
213 return std::make_unique<ANDGroupDescription>(
std::move(node_left),
std::move(node_right));
218 std::unique_ptr<ParameterDescriptionNode>
221 return std::make_unique<ORGroupDescription>(node_left, node_right);
224 std::unique_ptr<ParameterDescriptionNode>
225 operator||(std::unique_ptr<ParameterDescriptionNode> node_left,
227 return std::make_unique<ORGroupDescription>(
std::move(node_left), node_right);
230 std::unique_ptr<ParameterDescriptionNode>
232 std::unique_ptr<ParameterDescriptionNode> node_right) {
233 return std::make_unique<ORGroupDescription>(node_left,
std::move(node_right));
236 std::unique_ptr<ParameterDescriptionNode>
237 operator||(std::unique_ptr<ParameterDescriptionNode> node_left,
238 std::unique_ptr<ParameterDescriptionNode> node_right) {
239 return std::make_unique<ORGroupDescription>(
std::move(node_left),
std::move(node_right));
244 std::unique_ptr<ParameterDescriptionNode>
247 return std::make_unique<XORGroupDescription>(node_left, node_right);
250 std::unique_ptr<ParameterDescriptionNode>
251 operator^(std::unique_ptr<ParameterDescriptionNode> node_left,
253 return std::make_unique<XORGroupDescription>(
std::move(node_left), node_right);
256 std::unique_ptr<ParameterDescriptionNode>
258 std::unique_ptr<ParameterDescriptionNode> node_right) {
259 return std::make_unique<XORGroupDescription>(node_left,
std::move(node_right));
262 std::unique_ptr<ParameterDescriptionNode>
263 operator^(std::unique_ptr<ParameterDescriptionNode> node_left,
264 std::unique_ptr<ParameterDescriptionNode> node_right) {
265 return std::make_unique<XORGroupDescription>(
std::move(node_left),
std::move(node_right));
virtual ~ParameterDescriptionNode()
void setComment(std::string const &value)
std::istream & operator>>(std::istream &is, FileInPath &fip)
void printNestedContent(std::ostream &os, bool optional, DocFormatHelper &dfh) const
#define TYPE_TO_ENUM(type, e_val)
virtual void printNestedContent_(std::ostream &, bool, DocFormatHelper &) const
std::string parameterTypeEnumToString(ParameterTypes iType)
std::unique_ptr< ParameterDescriptionNode > operator&&(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
void print(std::ostream &os, bool optional, bool writeToCfi, DocFormatHelper &dfh) const
static void printSpaces(std::ostream &os, int n)
std::unique_ptr< ParameterDescriptionCases< bool > > operator||(std::unique_ptr< ParameterDescriptionCases< bool > >, std::unique_ptr< ParameterDescriptionCases< bool > >)
bool hasNestedContent() const
virtual ParameterDescriptionNode * clone() const =0
#define TYPE_TO_NAME(type)
std::unique_ptr< ParameterDescriptionNode > operator^(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
std::vector< std::string > vstring
virtual void print_(std::ostream &, bool, bool, DocFormatHelper &) const