Jira issue originally created by user @beberlei:
This issue is created automatically through a Github pull request on behalf of Seldaek:
If someone can take this and fix the issue it'd be great. I couldn't figure it out at a quick glance and I don't really have time, but it's a pretty messed up bug and not so trivial to debug if you don't know what happens in the background so I'd say it's pretty important.
Comment created by psc:
I digged a little deeper. The test case is a great one :)
The DocLexer cuts ut -1 position from the first @ (which is the @ in the @example.com). so that the lexer has to process:
So that the catchable pattern: ("(?:[^"]|"")*") matches here to greedy (it matches string in quotes):
As a result the lexer does not catch the correct @ from the Annotation
I could not think of a fast fix for this. But maybe tomorrow.
(leaving quoted string pattern with an @ was a wrong idea)
Its not a workaround to do more or less cutting in the parser, because not-well-formed quoted strings would break anyway
can someone think of a case, where a string (in some annotation) has a newline in it? Otherwise the tests do not fail, when I leave the string matching pattern with a newline.
I still had another idea to restrict the position of a annotation more strictly to:
but the second is not solvable with the lexer itself and would transfer the quoted string matching to the parser, because it needs context.
I'll let seldaek pull, what I have (is this the right way?)
Comment created by @ocramius:
PR @ doctrine/annotations#17
Comment created by @doctrinebot:
A related Github Pull-Request [GH-195] was closed:
Comment created by @guilhermeblanco:
This fix was merged in latest master
Issue was closed with resolution "Fixed"