{"action":"created","issue":{"url":"https://api.github.com/repos/nikomatsakis/lalrpop/issues/73","repository_url":"https://api.github.com/repos/nikomatsakis/lalrpop","labels_url":"https://api.github.com/repos/nikomatsakis/lalrpop/issues/73/labels{/name}","comments_url":"https://api.github.com/repos/nikomatsakis/lalrpop/issues/73/comments","events_url":"https://api.github.com/repos/nikomatsakis/lalrpop/issues/73/events","html_url":"https://github.com/nikomatsakis/lalrpop/issues/73","id":132534230,"number":73,"title":"Use `IntoIterator<Item = char>` instead of &str and do not require ending in EOF","user":{"login":"Binero","id":6867251,"avatar_url":"https://avatars.githubusercontent.com/u/6867251?v=3","gravatar_id":"","url":"https://api.github.com/users/Binero","html_url":"https://github.com/Binero","followers_url":"https://api.github.com/users/Binero/followers","following_url":"https://api.github.com/users/Binero/following{/other_user}","gists_url":"https://api.github.com/users/Binero/gists{/gist_id}","starred_url":"https://api.github.com/users/Binero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Binero/subscriptions","organizations_url":"https://api.github.com/users/Binero/orgs","repos_url":"https://api.github.com/users/Binero/repos","events_url":"https://api.github.com/users/Binero/events{/privacy}","received_events_url":"https://api.github.com/users/Binero/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-02-09T21:05:43Z","updated_at":"2016-02-12T22:03:07Z","closed_at":null,"body":"As the parser generated only need 1 lookahead, it should be able to use an iterator instead of a string, and not require it to end in EOF. (i.o.w. allow infinite data)\r\n\r\nThis has the benefit that when reading from for example a socket, you do not have to wait till all data has arrived before you can start parsing. \r\n\r\nSpecifically for an issue I am having, I want to use lalrpop in two stages, a tokenizer and a parser. It'd allow for reading tokens without it either reading all tokens at once, either never matching because it doesn't find EOF. "},"comment":{"url":"https://api.github.com/repos/nikomatsakis/lalrpop/issues/comments/183505261","html_url":"https://github.com/nikomatsakis/lalrpop/issues/73#issuecomment-183505261","issue_url":"https://api.github.com/repos/nikomatsakis/lalrpop/issues/73","id":183505261,"user":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars.githubusercontent.com/u/155238?v=3","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"created_at":"2016-02-12T22:03:07Z","updated_at":"2016-02-12T22:03:07Z","body":"@Binero imagine one regular expression like `'[a-z]+'` and one like `'[a-z]+` (Rust uses a combination like this, for example). In that case, if we see \"'abc\" we have to read the next character to see if it is `'abc'` or `'abc `. In the latter case, the ` ` is part of the next token, so we have to buffer it up for later."}}