<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div><span>Do you happen to have a simple out of the box example which works for you?</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span>It might still be something that I am doing wrong and it might not be related to the Consumers.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color:
 transparent;"><span>I would appreciate it very much! Thank you!</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span>Bogdan</span></div> <div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"> <div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> On Tuesday, August 12, 2014 9:41 PM, Vassil Vassilev
 <vvasilev@cern.ch> wrote:<br> </font> </div>  <br><br> <div class="y_msg_container"><div id="yiv3575213784"><div>
    <div class="yiv3575213784moz-cite-prefix">On 12/08/14 21:18, Bogdan Tabacaru
      wrote:<br clear="none">
    </div>
    <blockquote type="cite">
      </blockquote></div><div><div style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
        <div class="yiv3575213784" id="yiv3575213784" style="">
          <div class="yiv3575213784" style="">
            <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style=""><span class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_13" style="">Hi Vassil,</span></div>
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_16" style=""><br clear="none" style="">
                </span></div>
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">I really wasn't
                  expecting this to work, but I tried it out anyway.
                  Sadly, it still did not change anything.</span></div>
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">With or without the
                  Visitor, calling the HandleTopLevelDecl instead of
                  HandleTranslationUnit did not give me the desired
                  effect.</span></div>
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">From my side I think the problem resides in how
                the Rewriter affects the AST. I have the strange feeling
                that it doesn't really do anything to actually change
                the original AST, but instead it just buffers the user
                changes (as per the class' name). With respect to that,
                I have not found a way it (if possible) to pass the
                buffer to the CodeGenerator AST Consumer. Is this at all
                possible?</div>
            </div>
          </div>
        </div>
      </div>
    
    I don't know. I haven't used the Rewriter in such scenario. We
    transform the AST with regular Stmt or Decl Visitors.<div class="yiv3575213784yqt1479094748" id="yiv3575213784yqtfd86574"><br clear="none">
    Vassil<br clear="none">
    <blockquote type="cite">
      <div style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
        <div class="yiv3575213784" id="yiv3575213784" style="">
          <div class="yiv3575213784" style="">
            <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none">
              </div>
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">Cheers,</div>
              <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_4" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                 Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">Bogdan</div>
              <div class="yiv3575213784" id="yiv3575213784yqt28115" style="">
                <div class="yiv3575213784" id="yiv3575213784yui_3_16_0_6_1407867329136_7" style="display:none;">
                  <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
                    <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
                      <div class="yiv3575213784" dir="ltr" style=""> <font class="yiv3575213784" style="" face="Arial" size="2"> On Tuesday,
                          August 12, 2014 7:19 PM, Vassil Vassilev
                          <a rel="nofollow" shape="rect" class="yiv3575213784moz-txt-link-rfc2396E" ymailto="mailto:vvasilev@cern.ch" target="_blank" href="mailto:vvasilev@cern.ch"><vvasilev@cern.ch></a> wrote:<br clear="none" class="yiv3575213784" style="">
                        </font> </div>
                      <br clear="none" class="yiv3575213784" style="">
                      <br clear="none" class="yiv3575213784" style="">
                      <div class="yiv3575213784" style="">
                        <div class="yiv3575213784" id="yiv3575213784" style="">
                          <div class="yiv3575213784" style="">
                            <div class="yiv3575213784" style="">Hi Bogdan,<br clear="none" class="yiv3575213784" style="">
                                It seems that your visitor is called too
                              late, i.e on HandleTranslationUnit. You
                              should override HandleTopLevelDecl
                              instead.<br clear="none" class="yiv3575213784" style="">
                              Cheers,<br clear="none" class="yiv3575213784" style="">
                              Vassil<br clear="none" class="yiv3575213784" style="">
                              On 12/08/14 10:53, Bogdan Tabacaru wrote:<br clear="none" class="yiv3575213784" style="">
                            </div>
                            <blockquote class="yiv3575213784" type="cite" style=""> </blockquote>
                          </div>
                          <div class="yiv3575213784" id="yiv3575213784yqt48551" style="">
                            <div class="yiv3575213784" style="">
                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
                                <div class="yiv3575213784" style=""><span class="yiv3575213784" style="">Hi Vassil,</span></div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                  </span></div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">I have attempted
                                    to debug the Rewriter and
                                    CodeGenerator myself and see what
                                    happens when compiling, but the
                                    amount of code is rather massive and
                                    will take some time.</span></div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                  </span></div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">Here
                                  is an running simplified example of
                                  what I am doing. Would mind running it
                                  and telling me whether it worked for
                                  you or not?</div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                </div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">Cheers,</div>
                                <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">Bogdan</div>
                                <div class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                  <br clear="none" class="yiv3575213784" style="">
                                </div>
                                <div class="yiv3575213784" style="display:block;">
                                  <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
                                    <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
                                      <div class="yiv3575213784" dir="ltr" style="">
                                        <font class="yiv3575213784" style="" face="Arial" size="2"> On
                                          Monday, August 11, 2014 11:18
                                          AM, Bogdan Tabacaru <a rel="nofollow" shape="rect" class="yiv3575213784" ymailto="mailto:bogdan.tabacaru88@yahoo.com" target="_blank" href="mailto:bogdan.tabacaru88@yahoo.com" style=""><bogdan.tabacaru88@yahoo.com></a>
                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                        </font> </div>
                                      <br clear="none" class="yiv3575213784" style="">
                                      <br clear="none" class="yiv3575213784" style="">
                                      <div class="yiv3575213784" style="">
                                        <div class="yiv3575213784" id="yiv3575213784" style="">
                                          <div class="yiv3575213784" style="">
                                            <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida                                               Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
                                              <div class="yiv3575213784" style=""><span class="yiv3575213784" style="">That
                                                  is a good question.</span></div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                </span></div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">I
                                                  have written a libTool
                                                  with the same visitor
                                                  and consumer.</span></div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">I
                                                  called
                                                  my_Rewriter.ReplaceText()
                                                  to make my
                                                  AST-transformations.</span></div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">I
                                                  have output the
                                                  RewriteBuffer to a new
                                                  file and then I
                                                  compiled it.</span></div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">When
                                                I run the transformed
                                                source, it gives me the
                                                expected behavior.
                                                However, this requires
                                                me to explicitly create
                                                a new file with the
                                                changes.</div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                              </div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">If
                                                I do the same thing with
                                                the PluginASTAction
                                                (with or without
                                                re-ordering the
                                                Consumers), I only get
                                                the behavior from the
                                                original source file.</div>
                                              <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                              </div>
                                              <div class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                <br clear="none" class="yiv3575213784" style="">
                                              </div>
                                              <div class="yiv3575213784" id="yiv3575213784yqt97309" style="">
                                                <div class="yiv3575213784" style="display:block;">
                                                  <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
                                                    <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt;">
                                                      <div class="yiv3575213784" dir="ltr" style=""> <font class="yiv3575213784" style="" face="Arial" size="2"> On
                                                          Monday, August
                                                          11, 2014 9:59
                                                          AM, Vassil
                                                          Vassilev <a rel="nofollow" shape="rect" class="yiv3575213784" ymailto="mailto:vasil.georgiev.vasilev@cern.ch" target="_blank" href="mailto:vasil.georgiev.vasilev@cern.ch" style=""><vasil.georgiev.vasilev@cern.ch></a>
                                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                                        </font> </div>
                                                      <br clear="none" class="yiv3575213784" style="">
                                                      <br clear="none" class="yiv3575213784" style="">
                                                      <div class="yiv3575213784" style="">
                                                        <div class="yiv3575213784" id="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">On
                                                          08/10/2014
                                                          11:02 AM,
                                                          Bogdan
                                                          Tabacaru
                                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <blockquote class="yiv3575213784" type="cite" style=""> </blockquote>
                                                          </div>
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
                                                          <div class="yiv3575213784" style=""><span class="yiv3575213784" style="">Hi
                                                          Vassil,</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                          </span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">thanks
                                                          for the
                                                          example and
                                                          the patch!</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">I
                                                          have applied
                                                          both of them
                                                          successfully,
                                                          but somehow,
                                                          re-ordering
                                                          the consumers
                                                          still did not
                                                          give me the
                                                          expected
                                                          results. This
                                                          means, when I
                                                          call the
                                                          plugin it
                                                          executes
                                                          correctly, but
                                                          CodeGen still
                                                          only uses the
                                                          original file
                                                          (without the
                                                          changes made
                                                          by the
                                                          plugin).</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">Is
                                                          there another
                                                          step which I
                                                          may have
                                                          forgotten?</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                            If you
                                                          reorder the
                                                          consumers in
                                                          the
                                                          initialization,
                                                          it should
                                                          work. Are you
                                                          sure you have
                                                          the right
                                                          tests to check
                                                          for the
                                                          desired
                                                          behaviour? I.e
                                                          are you sure
                                                          you are making
                                                          a valid
                                                          AST-transformation?
                                                          <div class="yiv3575213784" id="yiv3575213784yqtfd61983" style=""><br clear="none" class="yiv3575213784" style="">
                                                          Vassil<br clear="none" class="yiv3575213784" style="">
                                                          <blockquote class="yiv3575213784" type="cite" style="">
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">Cheers,</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">Bogdan</div>
                                                          <div class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="display:block;">
                                                          <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt;">
                                                          <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt;">
                                                          <div class="yiv3575213784" dir="ltr" style=""> <font class="yiv3575213784" style="" face="Arial" size="2"> On
                                                          Sunday, August
                                                          10, 2014 12:22
                                                          AM, Vassil
                                                          Vassilev <a rel="nofollow" shape="rect" class="yiv3575213784" ymailto="mailto:vvasilev@cern.ch" target="_blank" href="mailto:vvasilev@cern.ch" style=""><vvasilev@cern.ch></a>
                                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                                          </font> </div>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" id="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">Hi
                                                          Bogdan,<br clear="none" class="yiv3575213784" style="">
                                                            After
                                                          applying the
                                                          attached
                                                          patch, I can
                                                          do:<br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          void
                                                          MyPlugin::Initialize(ASTContext&
                                                          Context) {<br clear="none" class="yiv3575213784" style="">
                                                            </div>
                                                          </div>
                                                          <div class="yiv3575213784" style=""> //
                                                          We need to
                                                          reorder the
                                                          consumers in
                                                          the
                                                          MultiplexConsumer.<br clear="none" class="yiv3575213784" style="">
                                                          MultiplexConsumer&

                                                          multiplex<br clear="none" class="yiv3575213784" style="">
                                                          =
                                                          static_cast<MultiplexConsumer&>(m_CI.getASTConsumer());<br clear="none" class="yiv3575213784" style="">
                                                          std::vector<ASTConsumer*>&

                                                          consumers =
                                                          multiplex.getConsumers();<br clear="none" class="yiv3575213784" style="">
                                                          ASTConsumer*
                                                          lastConsumer =
consumers.back();<br clear="none" class="yiv3575213784" style="">
consumers.pop_back();<br clear="none" class="yiv3575213784" style="">
                                                          consumers.insert(consumers.begin(),

                                                          lastConsumer);<br clear="none" class="yiv3575213784" style="">
                                                          }<br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          This allows me
                                                          to hook
                                                          MyPlugin
                                                          before clang's
                                                          codegen.<br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          Vassil<br clear="none" class="yiv3575213784" style="">
                                                          On 09/08/14
                                                          21:24, Bogdan
                                                          Tabacaru
                                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                                          <blockquote class="yiv3575213784" type="cite" style=""> </blockquote>
                                                          </div>
                                                          <div class="yiv3575213784" id="yiv3575213784yqt71669" style="">
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
                                                          <div class="yiv3575213784" style=""><span class="yiv3575213784" style="">Hi
                                                          Vassil,</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                          </span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">Is
                                                          the patch
                                                          available for
                                                          the 3.4.2
                                                          version of
                                                          LLVM or must I
                                                          migrate to the
                                                          "current"
                                                          version ?</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                          </span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">Cheers,</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="">Bogdan</span></div>
                                                          <div class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="display:block;">
                                                          <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt;">
                                                          <div class="yiv3575213784" style="font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt;">
                                                          <div class="yiv3575213784" dir="ltr" style=""> <font class="yiv3575213784" style="" face="Arial" size="2"> On
                                                          Friday, August
                                                          8, 2014 6:16
                                                          PM, Vassil
                                                          Vassilev <a rel="nofollow" shape="rect" class="yiv3575213784" ymailto="mailto:vvasilev@cern.ch" target="_blank" href="mailto:vvasilev@cern.ch" style=""><vvasilev@cern.ch></a>
                                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                                          </font> </div>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" id="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" style="">Hi,<br clear="none" class="yiv3575213784" style="">
                                                            There is a
                                                          pending patch
                                                          on cfe-commits
                                                          about this
                                                          "[PATCH]
                                                          clang/Frontend/MultiplexConsumer.h".
                                                          With it you
                                                          could reorder
                                                          the
                                                          ASTConsumers
                                                          in clang and
                                                          get yours
                                                          before
                                                          codegen.<br clear="none" class="yiv3575213784" style="">
                                                          Vassil<br clear="none" class="yiv3575213784" style="">
                                                          On 08/08/14
                                                          16:48, Bogdan
                                                          Tabacaru
                                                          wrote:<br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <blockquote class="yiv3575213784" type="cite" style=""> </blockquote>
                                                          </div>
                                                          <div class="yiv3575213784" style="">
                                                          <div class="yiv3575213784" id="yiv3575213784yqt84664" style="">
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-size: 12pt; background-color: rgb(255, 255, 255);">
                                                          <div class="yiv3575213784" style="">Hi
                                                          everyone,</div>
                                                          <div class="yiv3575213784" style=""><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">I
                                                          want to create
                                                          a plugin that
                                                          makes some
                                                          changes on the
                                                          parsed AST and
                                                          that directly
                                                          compiles the
                                                          changes made
                                                          on the AST. It
                                                          is important
                                                          that I do not
                                                          generate a new
                                                          file with the
                                                          changes on the
                                                          AST.</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">So,

                                                          in other
                                                          words, I want
                                                          to change the
                                                          AST in place,
                                                          and then
                                                          compile it in
                                                          the same run,
                                                          using a Clang
                                                          Plugin.</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">I
                                                          am using llvm
                                                          3.4.2.</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="font-size:12pt;">By
                                                          following the
                                                          RecursiveASTVisitor

                                                          example, </span>I
                                                          have written a
                                                          clang plugin
                                                          which modifies
                                                          the parsed
                                                          AST.</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">I
                                                          am using the
                                                          Rewriter class
                                                          to ReplaceText
                                                          inside the
                                                          buffer.</div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;">I
                                                          am also using
                                                          the
                                                          -add-plugin <span class="yiv3575213784" style="font-size:12pt;">command</span><span class="yiv3575213784" style="font-size:12pt;"> </span><span class="yiv3575213784" style="background-color:transparent;">(instead



                                                          the "standard"
                                                          -plugin
                                                          command) when
                                                          calling the
                                                          plugin.</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="background-color:transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="background-color:transparent;">The

                                                          rewriting part
                                                          works
                                                          excellently.
                                                          However, when
                                                          I continue the
                                                          compilation,
                                                          clang only
                                                          compiles the
                                                          original file,
                                                          instead of the
                                                          original file
                                                          + changes.</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="background-color:transparent;">Is
                                                          there a way to
                                                          tell
                                                          clang/llvm to
                                                          compile what I
                                                          have written
                                                          in the AST
                                                          (using the
                                                          Rewriter)
                                                          without
                                                          creating an
                                                          intermediate
                                                          file?</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="background-color:transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="background-color:transparent;">Thanks
                                                          a lot for your
                                                          help,</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><span class="yiv3575213784" style="background-color:transparent;">Bogdan</span></div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          <div class="yiv3575213784" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica                                                           Neue', Helvetica, Arial, 'Lucida                                                           Grande', sans-serif; font-style: normal; background-color: transparent;"><br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <fieldset class="yiv3575213784" style=""></fieldset>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <pre class="yiv3575213784" style="">_______________________________________________
cfe-dev mailing list
<a rel="nofollow" shape="rect" class="yiv3575213784" ymailto="mailto:cfe-dev@cs.uiuc.edu" target="_blank" href="mailto:cfe-dev@cs.uiuc.edu" style="">cfe-dev@cs.uiuc.edu</a>
<a rel="nofollow" shape="rect" class="yiv3575213784" target="_blank" href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" style="">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a>
</pre>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          <br clear="none" class="yiv3575213784" style="">
                                                          </div>
                                                          </div>
                                                        </div>
                                                        <br clear="none" class="yiv3575213784" style="">
                                                        <br clear="none" class="yiv3575213784" style="">
                                                      </div>
                                                    </div>
                                                  </div>
                                                </div>
                                              </div>
                                            </div>
                                          </div>
                                        </div>
                                        <br clear="none" class="yiv3575213784" style="">
                                        <br clear="none" class="yiv3575213784" style="">
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                              <br clear="none" class="yiv3575213784" style="">
                            </div>
                          </div>
                        </div>
                        <br clear="none" class="yiv3575213784" style="">
                        <br clear="none" class="yiv3575213784" style="">
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br clear="none">
  </div></div></div><br><br></div>  </div> </div>  </div> </div></body></html>