{"action":"created","issue":{"url":"https://api.github.com/repos/anko/eslisp/issues/9","labels_url":"https://api.github.com/repos/anko/eslisp/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/anko/eslisp/issues/9/comments","events_url":"https://api.github.com/repos/anko/eslisp/issues/9/events","html_url":"https://github.com/anko/eslisp/issues/9","id":107924371,"number":9,"title":"Error messages are quite uninformative","user":{"login":"anko","id":5231746,"avatar_url":"https://avatars.githubusercontent.com/u/5231746?v=3","gravatar_id":"","url":"https://api.github.com/users/anko","html_url":"https://github.com/anko","followers_url":"https://api.github.com/users/anko/followers","following_url":"https://api.github.com/users/anko/following{/other_user}","gists_url":"https://api.github.com/users/anko/gists{/gist_id}","starred_url":"https://api.github.com/users/anko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anko/subscriptions","organizations_url":"https://api.github.com/users/anko/orgs","repos_url":"https://api.github.com/users/anko/repos","events_url":"https://api.github.com/users/anko/events{/privacy}","received_events_url":"https://api.github.com/users/anko/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/anko/eslisp/labels/feature-proposal","name":"feature-proposal","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-09-23T13:52:14Z","updated_at":"2016-01-02T23:08:09Z","closed_at":null,"body":"Syntax errors look like this right now:\r\n```\r\n$ eslc <<< \"(\"\r\n\r\n/home/an/code/eslisp/node_modules/sexpr-plus/index.js:1054\r\n      throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos);\r\n      ^\r\nSyntaxError: Expected \")\", comment or whitespace but end of input found.\r\n```\r\n\r\nThe `SyntaxError`-object [sexpr-plus](https://github.com/anko/sexpr-plus) returns has `line` and `column` properties. We should perhaps use them.\r\n\r\n- - -\r\n\r\nInvalid AST errors look like this:\r\n```\r\n$ eslc <<< \"(+ x %)\"\r\n{ [InvalidAstError: Identifier `name` member must be a valid IdentifierName]\r\n  node: { type: 'Identifier', name: '%' },\r\n  message: 'Identifier `name` member must be a valid IdentifierName' }\r\nx + %;\r\n```\r\n\r\nThat's already getting there, but it would still be best if exact positions in code were passed on to AST nodes, so the error reporter could point out the exact in-source position that an error happened."},"comment":{"url":"https://api.github.com/repos/anko/eslisp/issues/comments/168437601","html_url":"https://github.com/anko/eslisp/issues/9#issuecomment-168437601","issue_url":"https://api.github.com/repos/anko/eslisp/issues/9","id":168437601,"user":{"login":"anko","id":5231746,"avatar_url":"https://avatars.githubusercontent.com/u/5231746?v=3","gravatar_id":"","url":"https://api.github.com/users/anko","html_url":"https://github.com/anko","followers_url":"https://api.github.com/users/anko/followers","following_url":"https://api.github.com/users/anko/following{/other_user}","gists_url":"https://api.github.com/users/anko/gists{/gist_id}","starred_url":"https://api.github.com/users/anko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anko/subscriptions","organizations_url":"https://api.github.com/users/anko/orgs","repos_url":"https://api.github.com/users/anko/repos","events_url":"https://api.github.com/users/anko/events{/privacy}","received_events_url":"https://api.github.com/users/anko/received_events","type":"User","site_admin":false},"created_at":"2016-01-02T23:08:09Z","updated_at":"2016-01-02T23:08:09Z","body":"f19be373fbcba3c0fc380c2adc15d0f4e171b1f0 now catches macro errors and adds diagnostic data before rethrowing. Thanks for raising that."}}