{"action":"opened","issue":{"url":"https://api.github.com/repos/phpDocumentor/fig-standards/issues/99","labels_url":"https://api.github.com/repos/phpDocumentor/fig-standards/issues/99/labels{/name}","comments_url":"https://api.github.com/repos/phpDocumentor/fig-standards/issues/99/comments","events_url":"https://api.github.com/repos/phpDocumentor/fig-standards/issues/99/events","html_url":"https://github.com/phpDocumentor/fig-standards/issues/99","id":101745757,"number":99,"title":"PHPDoc ABNF is impossible to define with the current restrictions.","user":{"login":"Fleshgrinder","id":1059453,"avatar_url":"https://avatars.githubusercontent.com/u/1059453?v=3","gravatar_id":"","url":"https://api.github.com/users/Fleshgrinder","html_url":"https://github.com/Fleshgrinder","followers_url":"https://api.github.com/users/Fleshgrinder/followers","following_url":"https://api.github.com/users/Fleshgrinder/following{/other_user}","gists_url":"https://api.github.com/users/Fleshgrinder/gists{/gist_id}","starred_url":"https://api.github.com/users/Fleshgrinder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fleshgrinder/subscriptions","organizations_url":"https://api.github.com/users/Fleshgrinder/orgs","repos_url":"https://api.github.com/users/Fleshgrinder/repos","events_url":"https://api.github.com/users/Fleshgrinder/events{/privacy}","received_events_url":"https://api.github.com/users/Fleshgrinder/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-18T20:50:16Z","updated_at":"2015-08-18T20:50:16Z","closed_at":null,"body":"Because the language is not regular at all and we would need positive/negative look-ahead/-behind assertions to create a PCRE regular expression to catch all possibilities right now. Even with that, we need a constraint that forbids the `@` character as first letter of any line before the first annotation.\r\n\r\nI was able to come up with [this regular expression](https://regex101.com/r/eE2gF5/5) that only relies on features that are available in ABNF. However, I had to tighten the constraints (see below) for this to work. I tried many things, but I was not able to cover every situation that you guys would want to have covered. Additionally, parsing of the tags must be defined at a different spot, otherwise this is getting way to complicated.\r\n\r\nIf you do not want this, than please explain to me why an ABNF is necessary and why a PCRE regular expression (that works in PHP) is not enough.\r\n\r\n## Constraints\r\nAll parts of a PHPDoc are optional.\r\n\r\n### Summary\r\nA summary MUST end with two subsequent line breaks.\r\nA summary line MUST NOT start with the `@` character.\r\n\r\n### Description\r\nA description MUST be preceded by a summary.\r\nA description line MUST NOT start with the `@` character.\r\n\r\n### Tags\r\nThe first line that starts with the `@` character introduces the tags."}}