pour rejetto
j'ai mis  allowReturningMacros=true par défaut dans le code et compilé hfs mais ce qui suit n'est pas suffisant
if allowReturningMacros then                                 //true
        s:=applyMacros(s, cb, cbData,True);
      end;
un appel à       result:=x_template(result, table); est obligatoirement nécessaire
car mon template ne donne pas pleinement satisfaction
la solution temporaire de dupliquer      
 try
      result:=applyMacros(result, cbMacros, @md, TRUE);
      except end; // syntax may be invalid
      result:=x_template(result, table);
semble satisfaisante  et c'est à ce niveau qu'il faut effectuer une boucle
...
repeat 
    result:=applyMacros(result, cbMacros, @md, TRUE);
      except end; // syntax may be invalid
      result:=x_template(result, table);
until all_macro_converted
applysequential();
...