{"action":"created","issue":{"url":"https://api.github.com/repos/p4lang/p4-spec/issues/695","repository_url":"https://api.github.com/repos/p4lang/p4-spec","labels_url":"https://api.github.com/repos/p4lang/p4-spec/issues/695/labels{/name}","comments_url":"https://api.github.com/repos/p4lang/p4-spec/issues/695/comments","events_url":"https://api.github.com/repos/p4lang/p4-spec/issues/695/events","html_url":"https://github.com/p4lang/p4-spec/issues/695","id":381811860,"node_id":"MDU6SXNzdWUzODE4MTE4NjA=","number":695,"title":"Syntax of target-specific annotations","user":{"login":"liujed","id":5741485,"node_id":"MDQ6VXNlcjU3NDE0ODU=","avatar_url":"https://avatars0.githubusercontent.com/u/5741485?v=4","gravatar_id":"","url":"https://api.github.com/users/liujed","html_url":"https://github.com/liujed","followers_url":"https://api.github.com/users/liujed/followers","following_url":"https://api.github.com/users/liujed/following{/other_user}","gists_url":"https://api.github.com/users/liujed/gists{/gist_id}","starred_url":"https://api.github.com/users/liujed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liujed/subscriptions","organizations_url":"https://api.github.com/users/liujed/orgs","repos_url":"https://api.github.com/users/liujed/repos","events_url":"https://api.github.com/users/liujed/events{/privacy}","received_events_url":"https://api.github.com/users/liujed/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-11-17T01:11:26Z","updated_at":"2018-11-30T20:41:10Z","closed_at":null,"author_association":"MEMBER","body":"Compiler implementations are free to interpret the semantics of any annotation not defined by the spec, but the syntax of these annotations is currently constrained to be either an `expressionList` or a `keyValueList`. Why not give annotation implementers free reign over their syntax? Something like:\r\n```\r\nannotation\r\n  : '@' name\r\n  | '@' name '(' annotationBody ')'\r\n  ;\r\n\r\nannotationBody\r\n  : expressionList\r\n  | keyValueList\r\n  | freeFormAnnotationBody\r\n  ;\r\n```\r\nwhere `freeFormAnnotationBody` is any sequence of tokens containing balanced parentheses.\r\n\r\nCurrently, annotation implementers can use strings to achieve a similar effect (e.g., `@name(\"foo bar baz\")`), but it would be nice if they didn't have to, especially if the body of the annotation refers to components of the P4 program."},"comment":{"url":"https://api.github.com/repos/p4lang/p4-spec/issues/comments/443332948","html_url":"https://github.com/p4lang/p4-spec/issues/695#issuecomment-443332948","issue_url":"https://api.github.com/repos/p4lang/p4-spec/issues/695","id":443332948,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MzMzMjk0OA==","user":{"login":"liujed","id":5741485,"node_id":"MDQ6VXNlcjU3NDE0ODU=","avatar_url":"https://avatars0.githubusercontent.com/u/5741485?v=4","gravatar_id":"","url":"https://api.github.com/users/liujed","html_url":"https://github.com/liujed","followers_url":"https://api.github.com/users/liujed/followers","following_url":"https://api.github.com/users/liujed/following{/other_user}","gists_url":"https://api.github.com/users/liujed/gists{/gist_id}","starred_url":"https://api.github.com/users/liujed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liujed/subscriptions","organizations_url":"https://api.github.com/users/liujed/orgs","repos_url":"https://api.github.com/users/liujed/repos","events_url":"https://api.github.com/users/liujed/events{/privacy}","received_events_url":"https://api.github.com/users/liujed/received_events","type":"User","site_admin":false},"created_at":"2018-11-30T20:41:10Z","updated_at":"2018-11-30T20:41:10Z","author_association":"MEMBER","body":"Here is an implementation of this idea: https://github.com/p4lang/p4c/pull/1614"}}
{"actor":{"display_login":"liujed"}}