13 #define TYPE_TO_ENUM(type, e_val) \ 15 ParameterTypes ParameterTypeToEnum::toEnum<type>() { \ 18 #define TYPE_TO_NAME(type) \ 25 class LuminosityBlockID;
109 print_(os, optional, writeToCfi, dfh);
115 printNestedContent_(os, optional, dfh);
120 char oldFill = os.fill(
' ');
129 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
130 return caseValue >>
std::move(clonedNode);
134 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
135 return caseValue >>
std::move(clonedNode);
140 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
141 return caseValue >>
std::move(clonedNode);
144 std::unique_ptr<ParameterDescriptionCases<std::string>>
operator>>(
char const* caseValue,
146 std::unique_ptr<ParameterDescriptionNode> clonedNode(node.
clone());
147 return caseValue >>
std::move(clonedNode);
150 std::unique_ptr<ParameterDescriptionCases<bool>>
operator>>(
bool caseValue,
151 std::unique_ptr<ParameterDescriptionNode> node) {
152 return std::unique_ptr<ParameterDescriptionCases<bool>>(
156 std::unique_ptr<ParameterDescriptionCases<int>>
operator>>(
int caseValue,
157 std::unique_ptr<ParameterDescriptionNode> node) {
158 return std::unique_ptr<ParameterDescriptionCases<int>>(
163 std::unique_ptr<ParameterDescriptionNode> node) {
164 return std::unique_ptr<ParameterDescriptionCases<std::string>>(
168 std::unique_ptr<ParameterDescriptionCases<std::string>>
operator>>(
char const* caseValue,
169 std::unique_ptr<ParameterDescriptionNode> node) {
171 return std::unique_ptr<ParameterDescriptionCases<std::string>>(
179 return std::make_unique<ANDGroupDescription>(node_left, node_right);
182 std::unique_ptr<ParameterDescriptionNode>
operator&&(std::unique_ptr<ParameterDescriptionNode> node_left,
184 return std::make_unique<ANDGroupDescription>(
std::move(node_left), node_right);
188 std::unique_ptr<ParameterDescriptionNode> node_right) {
189 return std::make_unique<ANDGroupDescription>(node_left,
std::move(node_right));
192 std::unique_ptr<ParameterDescriptionNode>
operator&&(std::unique_ptr<ParameterDescriptionNode> node_left,
193 std::unique_ptr<ParameterDescriptionNode> node_right) {
194 return std::make_unique<ANDGroupDescription>(
std::move(node_left),
std::move(node_right));
201 return std::make_unique<ORGroupDescription>(node_left, node_right);
204 std::unique_ptr<ParameterDescriptionNode>
operator||(std::unique_ptr<ParameterDescriptionNode> node_left,
206 return std::make_unique<ORGroupDescription>(
std::move(node_left), node_right);
210 std::unique_ptr<ParameterDescriptionNode> node_right) {
211 return std::make_unique<ORGroupDescription>(node_left,
std::move(node_right));
214 std::unique_ptr<ParameterDescriptionNode>
operator||(std::unique_ptr<ParameterDescriptionNode> node_left,
215 std::unique_ptr<ParameterDescriptionNode> node_right) {
216 return std::make_unique<ORGroupDescription>(
std::move(node_left),
std::move(node_right));
223 return std::make_unique<XORGroupDescription>(node_left, node_right);
226 std::unique_ptr<ParameterDescriptionNode>
operator^(std::unique_ptr<ParameterDescriptionNode> node_left,
228 return std::make_unique<XORGroupDescription>(
std::move(node_left), node_right);
232 std::unique_ptr<ParameterDescriptionNode> node_right) {
233 return std::make_unique<XORGroupDescription>(node_left,
std::move(node_right));
236 std::unique_ptr<ParameterDescriptionNode>
operator^(std::unique_ptr<ParameterDescriptionNode> node_left,
237 std::unique_ptr<ParameterDescriptionNode> node_right) {
238 return std::make_unique<XORGroupDescription>(
std::move(node_left),
std::move(node_right));
virtual ~ParameterDescriptionNode()
void setComment(std::string const &value)
std::ostream & print_(std::ostream &os, value_type const &hash)
std::istream & operator>>(std::istream &is, FileInPath &fip)
void printNestedContent(std::ostream &os, bool optional, DocFormatHelper &dfh) 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::vector< double > vdouble
std::unique_ptr< ParameterDescriptionCases< bool > > operator||(std::unique_ptr< ParameterDescriptionCases< bool > >, std::unique_ptr< ParameterDescriptionCases< bool > >)
virtual ParameterDescriptionNode * clone() const =0
#define TYPE_TO_NAME(type)
std::unique_ptr< ParameterDescriptionNode > operator^(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
#define TYPE_TO_ENUM(type, e_val)
bool hasNestedContent(int const &value)
std::vector< std::string > vstring