{"action":"created","issue":{"url":"https://api.github.com/repos/coneoproject/COFFEE/issues/44","labels_url":"https://api.github.com/repos/coneoproject/COFFEE/issues/44/labels{/name}","comments_url":"https://api.github.com/repos/coneoproject/COFFEE/issues/44/comments","events_url":"https://api.github.com/repos/coneoproject/COFFEE/issues/44/events","html_url":"https://github.com/coneoproject/COFFEE/pull/44","id":74022024,"number":44,"title":"Tree visitor infrastructure","user":{"login":"wence-","id":1126981,"avatar_url":"https://avatars.githubusercontent.com/u/1126981?v=3","gravatar_id":"","url":"https://api.github.com/users/wence-","html_url":"https://github.com/wence-","followers_url":"https://api.github.com/users/wence-/followers","following_url":"https://api.github.com/users/wence-/following{/other_user}","gists_url":"https://api.github.com/users/wence-/gists{/gist_id}","starred_url":"https://api.github.com/users/wence-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wence-/subscriptions","organizations_url":"https://api.github.com/users/wence-/orgs","repos_url":"https://api.github.com/users/wence-/repos","events_url":"https://api.github.com/users/wence-/events{/privacy}","received_events_url":"https://api.github.com/users/wence-/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-05-07T15:16:39Z","updated_at":"2015-05-08T14:02:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/coneoproject/COFFEE/pulls/44","html_url":"https://github.com/coneoproject/COFFEE/pull/44","diff_url":"https://github.com/coneoproject/COFFEE/pull/44.diff","patch_url":"https://github.com/coneoproject/COFFEE/pull/44.patch"},"body":"Add tree visitor infrastructure to COFFEE and migrate current tree inspectors to new visitors.\r\n\r\nNew visitors can be created by subclassing coffee.visitor.Visitor (which see), which comes with a number of built-in \"default\" methods for reusing or reconstructing nodes.\r\n\r\nSome utility visitors (for replacing symbols matching a name or checking for uniqueness of nodes in a tree) are in coffee.visitors.utilities.\r\n\r\nTree inspectors are in coffee.visitors.inspectors.\r\n\r\nAdditionally, this change adds `operands` and `reconstruct` methods to all base ast nodes.  This is an endeavour to allow for tree transformations without modification in place.  Note that there may be corner cases that are not handled correctly.\r\n\r\nCode gen should be migrated to this new infrastructure but is not yet done."},"comment":{"url":"https://api.github.com/repos/coneoproject/COFFEE/issues/comments/100240977","html_url":"https://github.com/coneoproject/COFFEE/pull/44#issuecomment-100240977","issue_url":"https://api.github.com/repos/coneoproject/COFFEE/issues/44","id":100240977,"user":{"login":"wence-","id":1126981,"avatar_url":"https://avatars.githubusercontent.com/u/1126981?v=3","gravatar_id":"","url":"https://api.github.com/users/wence-","html_url":"https://github.com/wence-","followers_url":"https://api.github.com/users/wence-/followers","following_url":"https://api.github.com/users/wence-/following{/other_user}","gists_url":"https://api.github.com/users/wence-/gists{/gist_id}","starred_url":"https://api.github.com/users/wence-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wence-/subscriptions","organizations_url":"https://api.github.com/users/wence-/orgs","repos_url":"https://api.github.com/users/wence-/repos","events_url":"https://api.github.com/users/wence-/events{/privacy}","received_events_url":"https://api.github.com/users/wence-/received_events","type":"User","site_admin":false},"created_at":"2015-05-08T14:02:00Z","updated_at":"2015-05-08T14:02:00Z","body":"That makes sense.  I note it's not ready to go yet since my most recent round of cleanups broke things again."}}