{"action":"created","issue":{"url":"https://api.github.com/repos/universal-ctags/ctags/issues/1003","repository_url":"https://api.github.com/repos/universal-ctags/ctags","labels_url":"https://api.github.com/repos/universal-ctags/ctags/issues/1003/labels{/name}","comments_url":"https://api.github.com/repos/universal-ctags/ctags/issues/1003/comments","events_url":"https://api.github.com/repos/universal-ctags/ctags/issues/1003/events","html_url":"https://github.com/universal-ctags/ctags/pull/1003","id":162305241,"number":1003,"title":"[DO NOT MERGE YET] Python: rewrite as a tokenizing parser","user":{"login":"b4n","id":793526,"avatar_url":"https://avatars.githubusercontent.com/u/793526?v=3","gravatar_id":"","url":"https://api.github.com/users/b4n","html_url":"https://github.com/b4n","followers_url":"https://api.github.com/users/b4n/followers","following_url":"https://api.github.com/users/b4n/following{/other_user}","gists_url":"https://api.github.com/users/b4n/gists{/gist_id}","starred_url":"https://api.github.com/users/b4n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/b4n/subscriptions","organizations_url":"https://api.github.com/users/b4n/orgs","repos_url":"https://api.github.com/users/b4n/repos","events_url":"https://api.github.com/users/b4n/events{/privacy}","received_events_url":"https://api.github.com/users/b4n/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/universal-ctags/ctags/labels/Parsers","name":"Parsers","color":"5319e7"}],"state":"open","locked":false,"assignee":{"login":"masatake","id":77077,"avatar_url":"https://avatars.githubusercontent.com/u/77077?v=3","gravatar_id":"","url":"https://api.github.com/users/masatake","html_url":"https://github.com/masatake","followers_url":"https://api.github.com/users/masatake/followers","following_url":"https://api.github.com/users/masatake/following{/other_user}","gists_url":"https://api.github.com/users/masatake/gists{/gist_id}","starred_url":"https://api.github.com/users/masatake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/masatake/subscriptions","organizations_url":"https://api.github.com/users/masatake/orgs","repos_url":"https://api.github.com/users/masatake/repos","events_url":"https://api.github.com/users/masatake/events{/privacy}","received_events_url":"https://api.github.com/users/masatake/received_events","type":"User","site_admin":false},"assignees":[{"login":"masatake","id":77077,"avatar_url":"https://avatars.githubusercontent.com/u/77077?v=3","gravatar_id":"","url":"https://api.github.com/users/masatake","html_url":"https://github.com/masatake","followers_url":"https://api.github.com/users/masatake/followers","following_url":"https://api.github.com/users/masatake/following{/other_user}","gists_url":"https://api.github.com/users/masatake/gists{/gist_id}","starred_url":"https://api.github.com/users/masatake/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/masatake/subscriptions","organizations_url":"https://api.github.com/users/masatake/orgs","repos_url":"https://api.github.com/users/masatake/repos","events_url":"https://api.github.com/users/masatake/events{/privacy}","received_events_url":"https://api.github.com/users/masatake/received_events","type":"User","site_admin":false},{"login":"b4n","id":793526,"avatar_url":"https://avatars.githubusercontent.com/u/793526?v=3","gravatar_id":"","url":"https://api.github.com/users/b4n","html_url":"https://github.com/b4n","followers_url":"https://api.github.com/users/b4n/followers","following_url":"https://api.github.com/users/b4n/following{/other_user}","gists_url":"https://api.github.com/users/b4n/gists{/gist_id}","starred_url":"https://api.github.com/users/b4n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/b4n/subscriptions","organizations_url":"https://api.github.com/users/b4n/orgs","repos_url":"https://api.github.com/users/b4n/repos","events_url":"https://api.github.com/users/b4n/events{/privacy}","received_events_url":"https://api.github.com/users/b4n/received_events","type":"User","site_admin":false}],"milestone":null,"comments":6,"created_at":"2016-06-25T23:52:38Z","updated_at":"2016-06-27T13:56:03Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/universal-ctags/ctags/pulls/1003","html_url":"https://github.com/universal-ctags/ctags/pull/1003","diff_url":"https://github.com/universal-ctags/ctags/pull/1003.diff","patch_url":"https://github.com/universal-ctags/ctags/pull/1003.patch"},"body":"**This is an *experimental* PR.**\r\n\r\nIt imports a token-based Python parser I started a while ago.  It used to work fine, but a lot of changes happened to the current Python parser and U-CTags as a whole since then, so it requires catching up.  I patched it with *most* of the changes that happened since, but it's not yet perfect -- and probably will require a fair bit of rebasing.\r\n\r\nThe main problem I have is fixing the imports, among other things because I have no idea what all the roles and separate kinds are supposed to be for -- it doesn't seem to make any sense to me, but I probably am just missing something.\r\n\r\nAlso, I didn't want (still) to import the FQN tag generation, because I still don't get why a parser needs to do it on its own -- especially if it uses Cork.  I may also miss something, or maybe it was just implemented manually here because it's not yet done some way else and people wanted it?\r\n\r\nI didn't yet try to import the block end tagging, for 2 reasons:\r\n\r\n1. it was added on top of imports parsing, and this still ain't right as stated above.\r\n2. It looks wrong to me to manually write a number out (as text, even), while I would imagine this should use the same facility as tag positions, and then follow the pattern/number options.  Is that expected to happen at some point, or is there a reason not to?\r\n\r\n~~Finally, I don't get why i.e. *parser-python.r/simple.py* fails.  The output doesn't have the same fields at all, but I don't understand why.  If anyone got a clue, I'm all ears.~~ Scratch that, I somehow messed up that file in the merge or somewhere (probably because it was modified from both sides, and I didn't have a building parse to test it at that time).\r\n\r\nBut it should fix #997 :)"},"comment":{"url":"https://api.github.com/repos/universal-ctags/ctags/issues/comments/228752538","html_url":"https://github.com/universal-ctags/ctags/pull/1003#issuecomment-228752538","issue_url":"https://api.github.com/repos/universal-ctags/ctags/issues/1003","id":228752538,"user":{"login":"b4n","id":793526,"avatar_url":"https://avatars.githubusercontent.com/u/793526?v=3","gravatar_id":"","url":"https://api.github.com/users/b4n","html_url":"https://github.com/b4n","followers_url":"https://api.github.com/users/b4n/followers","following_url":"https://api.github.com/users/b4n/following{/other_user}","gists_url":"https://api.github.com/users/b4n/gists{/gist_id}","starred_url":"https://api.github.com/users/b4n/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/b4n/subscriptions","organizations_url":"https://api.github.com/users/b4n/orgs","repos_url":"https://api.github.com/users/b4n/repos","events_url":"https://api.github.com/users/b4n/events{/privacy}","received_events_url":"https://api.github.com/users/b4n/received_events","type":"User","site_admin":false},"created_at":"2016-06-27T13:56:02Z","updated_at":"2016-06-27T13:56:02Z","body":"So, I think I'm about done catching up.  The only remaining question is whether I should generate `inheritance` info if it's empty, or not.  Current parser did, mine here doesn't, but either way is real easy so it's just a matter of deciding which is better.\r\n\r\nAlso, *parser-python.r/simple.py* still needs for extra fixing, but that's only either irrelevant differences (e.g. how newlines are recorded in argument lists -- space or nothing?), or missing FQ tags in the expected output.\r\nI'm just waiting on the decision about inheritance to fix it completely, so I can have a nicely succeeding test case when all is fixed.\r\n\r\nYou're welcome to start reviewing this, give feedback and all that."}}
{"actor":{"display_login":"b4n"}}