Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:98413 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 54795 invoked from network); 6 Mar 2017 21:42:48 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 6 Mar 2017 21:42:48 -0000 Authentication-Results: pb1.pair.com smtp.mail=php@golemon.com; spf=softfail; sender-id=softfail Authentication-Results: pb1.pair.com header.from=php@golemon.com; sender-id=softfail Received-SPF: softfail (pb1.pair.com: domain golemon.com does not designate 74.125.82.50 as permitted sender) X-PHP-List-Original-Sender: php@golemon.com X-Host-Fingerprint: 74.125.82.50 mail-wm0-f50.google.com Received: from [74.125.82.50] ([74.125.82.50:38792] helo=mail-wm0-f50.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 69/B1-40378-7D7DDB85 for ; Mon, 06 Mar 2017 16:42:47 -0500 Received: by mail-wm0-f50.google.com with SMTP id t193so76162038wmt.1 for ; Mon, 06 Mar 2017 13:42:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golemon-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=duKrhKeq7ewEYrh8dp/wLzbwg9d5fOZYPLcf5zNTbDs=; b=mCOOIZt0++g5562wPP3EApmKkVB8bUriQkYL9GDee0Dz8bLo0ov7pq8yduG23/bm4r HlEut1YRrpI8IRvUBPRqHfdNDT04P6FeRSDPmhRV4ImUtwcHZhj5dULfEAW569mQU7oY Q7XF16mAI6Ak+KjvTmVpUBFIgQP5VE8A9pKzEir9oIvcoGRxCMV34mV1CAK+FWI1f1oS 7qR18IHi9AU75qZW/7ZJVsy9PIGezQT1WrATILSUxZlsKcsnltKLMeKcSTAlMAXeHXfs a6kQN0TLlu12BOPY66HfXfYqIOSqrHay8ezmq2F2InfI8hpp1PnoTb6mc31zTHERVq1I pn0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=duKrhKeq7ewEYrh8dp/wLzbwg9d5fOZYPLcf5zNTbDs=; b=FyveiqPNxldfhhj8conVuvf7BF7W+yW9CBvrpEnPQfVU/U1Xt4DoRXhQLpWdoisjf7 0mTzEv4CzSzcLVbrjlTDe53BFsxXeaOYR9erSUFbUp/plEodm257I0LMtUmhVMGWNu5w 7WAZSaJVHJSlMI6oMuxCK1hIaJg3v7SspaAUblspnunyNqb8ww6yHzxdys9kD4TDLDF2 QptdDBnRsGKNlYFHoFysykh/chjNy5ctbvQNrZ8HE9iEepzxgh9avQ7b4mKzwS3D+Wof UwfqO1VFz4Tmi/y39zK2U4recXXCnsfZ49/ftWbcn3q/327WQshMQnxZGH4eV5HVcaTZ X27A== X-Gm-Message-State: AMke39mbfgejUa68S4PzrlUXhtVLvqsxUGE9XpV0YCXWGpQbOL1R0gRN7reNwX96j6LlARaYj/88r0S0LSlWeQ== X-Received: by 10.28.146.207 with SMTP id u198mr15344439wmd.36.1488836564200; Mon, 06 Mar 2017 13:42:44 -0800 (PST) MIME-Version: 1.0 Sender: php@golemon.com Received: by 10.223.152.213 with HTTP; Mon, 6 Mar 2017 13:42:43 -0800 (PST) X-Originating-IP: [73.9.224.155] In-Reply-To: References: Date: Mon, 6 Mar 2017 15:42:43 -0600 X-Google-Sender-Auth: lOg8WLWIY5gKIPbI-hk2rDn0_xk Message-ID: To: Adam Baratz Cc: "internals@lists.php.net" Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] generating code from AST From: pollita@php.net (Sara Golemon) On Mon, Mar 6, 2017 at 3:40 PM, Sara Golemon wrote: > On Mon, Mar 6, 2017 at 3:37 PM, Adam Baratz wrote: >> I'm exploring how to automate some basic kinds of refactor operations. One >> approach I'm considering: >> >> - Generate an AST >> - Rearrange it as needed >> - Turn it back into userland code >> >> Is this something anyone's explored? >> > The engine's internals actually have an ast export method which does > this alread (it's used by the assert message generator). astkit > makes use of this in an extension to do much of what you describe: > https://github.com/sgolemon/astkit > Hrmmm, I seem to have not updated the README.md, but it is in there: https://github.com/sgolemon/astkit/blob/master/astkit-node.c#L204-L214 -Sara