From 588bd2590cc6103c433520e07405a4f8ce58143d Mon Sep 17 00:00:00 2001 From: Marko Petric <marko.petric@cern.ch> Date: Fri, 21 Feb 2020 11:13:42 +0100 Subject: [PATCH] Revert "Dropped useless macro -DD4HEP_DEFINE_PARSER_GRAMMAR_TYPE" This reverts commit 9a1e2611411d21feab093408d042303ecd38fc8b. --- DDCore/include/DD4hep/detail/BasicGrammar_inl.h | 8 ++++++++ DDCore/src/ComponentProperties.cpp | 1 + 2 files changed, 9 insertions(+) diff --git a/DDCore/include/DD4hep/detail/BasicGrammar_inl.h b/DDCore/include/DD4hep/detail/BasicGrammar_inl.h index 059e21dc2..89ade560d 100644 --- a/DDCore/include/DD4hep/detail/BasicGrammar_inl.h +++ b/DDCore/include/DD4hep/detail/BasicGrammar_inl.h @@ -211,6 +211,10 @@ namespace dd4hep { } // End namespace dd4hep #define DD4HEP_PARSER_GRAMMAR_CNAME(serial,name) namespace_dd4hep__grammar_##serial##_##name +#define DD4HEP_DEFINE_PARSER_GRAMMAR_TYPE(x) \ + namespace dd4hep { \ + template<> const BasicGrammar& BasicGrammar::instance<x>() { static Grammar<x> gr; return gr;}} + #define DD4HEP_DEFINE_PARSER_GRAMMAR_EVAL(x,func) \ namespace dd4hep { \ template<> int Grammar<x >::evaluate(void* ptr, const std::string& val) const { return func ((x*)ptr,val); }} @@ -219,11 +223,15 @@ namespace dd4hep { static const ::dd4hep::BasicGrammar& DD4HEP_PARSER_GRAMMAR_CNAME(serial,100) = ::dd4hep::BasicGrammar::instance<x>(); } #define DD4HEP_DEFINE_PARSER_GRAMMAR_SERIAL(serial,ctxt,x,func) \ + DD4HEP_DEFINE_PARSER_GRAMMAR_TYPE(x) \ DD4HEP_DEFINE_PARSER_GRAMMAR_EVAL(x,func) \ DD4HEP_DEFINE_PARSER_GRAMMAR_INSTANCE(DD4HEP_PARSER_GRAMMAR_CNAME(serial,ctxt),x) #define DD4HEP_DEFINE_PARSER_GRAMMAR_DUMMY_SERIAL(serial,x,func) \ PARSERS_DECL_FOR_SINGLE(x) \ + namespace dd4hep { namespace Parsers { \ + int parse(x&, const std::string&) { return 1; } }} \ + DD4HEP_DEFINE_PARSER_GRAMMAR_TYPE(x) \ DD4HEP_DEFINE_PARSER_GRAMMAR_EVAL(x,func) \ DD4HEP_DEFINE_PARSER_GRAMMAR_INSTANCE(serial,x) diff --git a/DDCore/src/ComponentProperties.cpp b/DDCore/src/ComponentProperties.cpp index 0ea8ca2bf..d3eeb6d3f 100644 --- a/DDCore/src/ComponentProperties.cpp +++ b/DDCore/src/ComponentProperties.cpp @@ -250,6 +250,7 @@ namespace dd4hep { #include "DD4hep/detail/BasicGrammar_inl.h" #include "DD4hep/detail/ComponentProperties_inl.h" +DD4HEP_DEFINE_PARSER_GRAMMAR_TYPE(Property) namespace dd4hep { -- GitLab