{"action":"created","issue":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/issues/31","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/issues/31/labels{/name}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/issues/31/comments","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/issues/31/events","html_url":"https://github.com/spring-cloud/spring-cloud-data/pull/31","id":100183674,"number":31,"title":"Refactor Stream/Task parsing","user":{"login":"pperalta","id":394956,"avatar_url":"https://avatars.githubusercontent.com/u/394956?v=3","gravatar_id":"","url":"https://api.github.com/users/pperalta","html_url":"https://github.com/pperalta","followers_url":"https://api.github.com/users/pperalta/followers","following_url":"https://api.github.com/users/pperalta/following{/other_user}","gists_url":"https://api.github.com/users/pperalta/gists{/gist_id}","starred_url":"https://api.github.com/users/pperalta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pperalta/subscriptions","organizations_url":"https://api.github.com/users/pperalta/orgs","repos_url":"https://api.github.com/users/pperalta/repos","events_url":"https://api.github.com/users/pperalta/events{/privacy}","received_events_url":"https://api.github.com/users/pperalta/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-08-10T22:34:08Z","updated_at":"2015-08-11T18:50:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/pulls/31","html_url":"https://github.com/spring-cloud/spring-cloud-data/pull/31","diff_url":"https://github.com/spring-cloud/spring-cloud-data/pull/31.diff","patch_url":"https://github.com/spring-cloud/spring-cloud-data/pull/31.patch"},"body":"This is part of https://jira.spring.io/browse/XD-3377. Introduced `Tokens` data structure for holding tokens and the current token position used by parsers.\r\n\r\n`TaskDslParser` and `StreamDslParser` were minimally modified; there is potential for further refactoring."},"comment":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/issues/comments/130015070","html_url":"https://github.com/spring-cloud/spring-cloud-data/pull/31#issuecomment-130015070","issue_url":"https://api.github.com/repos/spring-cloud/spring-cloud-data/issues/31","id":130015070,"user":{"login":"aclement","id":226298,"avatar_url":"https://avatars.githubusercontent.com/u/226298?v=3","gravatar_id":"","url":"https://api.github.com/users/aclement","html_url":"https://github.com/aclement","followers_url":"https://api.github.com/users/aclement/followers","following_url":"https://api.github.com/users/aclement/following{/other_user}","gists_url":"https://api.github.com/users/aclement/gists{/gist_id}","starred_url":"https://api.github.com/users/aclement/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aclement/subscriptions","organizations_url":"https://api.github.com/users/aclement/orgs","repos_url":"https://api.github.com/users/aclement/repos","events_url":"https://api.github.com/users/aclement/events{/privacy}","received_events_url":"https://api.github.com/users/aclement/received_events","type":"User","site_admin":false},"created_at":"2015-08-11T18:50:08Z","updated_at":"2015-08-11T18:50:08Z","body":"Looks good to me. And glad to see there is no semantic checking in there, that was a mistake with the original form of the parser, it was too aware of information beyond the syntax. So if the two parsers do share a common definition of a 'module' the next step is to refactor `eatModule()` into something re-usable across both that operates on a `Tokens` object?\r\n\r\n(Incidentally if you ever need it Spring Flo for XD uses a JavaScript version of the parser...)"}}