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