Golang compile to binary from AST











up vote
9
down vote

favorite












Is it possible to compile an AST to a binary in Golang? Or does the API not expose that feature. The way libraries currently do this, such as Gisp, is to print out the AST using the go/printer package. Is there a way to skip this process and compile the AST directly to a binary?










share|improve this question


















  • 1




    No, there is not currently a way to do that
    – JimB
    Oct 1 '15 at 13:16










  • this would be awesome to compile directly from AST... heh
    – let4be
    Aug 20 '16 at 12:22










  • yes, or at least support generating source from AST.
    – Jiang YD
    May 10 '17 at 9:20















up vote
9
down vote

favorite












Is it possible to compile an AST to a binary in Golang? Or does the API not expose that feature. The way libraries currently do this, such as Gisp, is to print out the AST using the go/printer package. Is there a way to skip this process and compile the AST directly to a binary?










share|improve this question


















  • 1




    No, there is not currently a way to do that
    – JimB
    Oct 1 '15 at 13:16










  • this would be awesome to compile directly from AST... heh
    – let4be
    Aug 20 '16 at 12:22










  • yes, or at least support generating source from AST.
    – Jiang YD
    May 10 '17 at 9:20













up vote
9
down vote

favorite









up vote
9
down vote

favorite











Is it possible to compile an AST to a binary in Golang? Or does the API not expose that feature. The way libraries currently do this, such as Gisp, is to print out the AST using the go/printer package. Is there a way to skip this process and compile the AST directly to a binary?










share|improve this question













Is it possible to compile an AST to a binary in Golang? Or does the API not expose that feature. The way libraries currently do this, such as Gisp, is to print out the AST using the go/printer package. Is there a way to skip this process and compile the AST directly to a binary?







go abstract-syntax-tree






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Oct 1 '15 at 1:15









eatonphil

5,0201456101




5,0201456101








  • 1




    No, there is not currently a way to do that
    – JimB
    Oct 1 '15 at 13:16










  • this would be awesome to compile directly from AST... heh
    – let4be
    Aug 20 '16 at 12:22










  • yes, or at least support generating source from AST.
    – Jiang YD
    May 10 '17 at 9:20














  • 1




    No, there is not currently a way to do that
    – JimB
    Oct 1 '15 at 13:16










  • this would be awesome to compile directly from AST... heh
    – let4be
    Aug 20 '16 at 12:22










  • yes, or at least support generating source from AST.
    – Jiang YD
    May 10 '17 at 9:20








1




1




No, there is not currently a way to do that
– JimB
Oct 1 '15 at 13:16




No, there is not currently a way to do that
– JimB
Oct 1 '15 at 13:16












this would be awesome to compile directly from AST... heh
– let4be
Aug 20 '16 at 12:22




this would be awesome to compile directly from AST... heh
– let4be
Aug 20 '16 at 12:22












yes, or at least support generating source from AST.
– Jiang YD
May 10 '17 at 9:20




yes, or at least support generating source from AST.
– Jiang YD
May 10 '17 at 9:20












1 Answer
1






active

oldest

votes

















up vote
0
down vote













Not at the moment, no. Right now, although Go's compiler is written in Go, it's not exposed in the standard library.



The Gisp method, of printing the source and using go build, is probably your best option.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f32877999%2fgolang-compile-to-binary-from-ast%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    0
    down vote













    Not at the moment, no. Right now, although Go's compiler is written in Go, it's not exposed in the standard library.



    The Gisp method, of printing the source and using go build, is probably your best option.






    share|improve this answer

























      up vote
      0
      down vote













      Not at the moment, no. Right now, although Go's compiler is written in Go, it's not exposed in the standard library.



      The Gisp method, of printing the source and using go build, is probably your best option.






      share|improve this answer























        up vote
        0
        down vote










        up vote
        0
        down vote









        Not at the moment, no. Right now, although Go's compiler is written in Go, it's not exposed in the standard library.



        The Gisp method, of printing the source and using go build, is probably your best option.






        share|improve this answer












        Not at the moment, no. Right now, although Go's compiler is written in Go, it's not exposed in the standard library.



        The Gisp method, of printing the source and using go build, is probably your best option.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 13 at 0:18









        wgoodall01

        781412




        781412






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f32877999%2fgolang-compile-to-binary-from-ast%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How to change which sound is reproduced for terminal bell?

            Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

            Can I use Tabulator js library in my java Spring + Thymeleaf project?