Opened 10 years ago
Closed 5 years ago
#8446 closed Bugs (fixed)
Problems with 'repeat' in alternative parser
| Reported by: | Owned by: | Joel de Guzman | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | spirit | 
| Version: | Boost 1.49.0 | Severity: | Regression | 
| Keywords: | Cc: | 
Description
The behavior of the result parser unexpectedly depends from order of the 'repeat' statements within 'Alternative' parser.
As example: "repeat(n)[...] | repeat(m)[...]" works not like "repeat(m)[...] | repeat(n)[...]" in some circumstances.
I've been using the example from this http://stackoverflow.com/questions/4009752/boost-spirit-bug-when-mixing-alternates-with-optionals thread to identify problem (sample source is attached below).
The output of the result application:
in boost 1.44 (bug was fixed after stackoverflow thread):
Success: '123FAA22' Failed to match. Success: '123F' Success: '1A22'
in boost 1.45 (seems to be correct):
Success: '123FAA22' Success: '12AA' Success: '123F' Success: '1A22'
in boost 1.49 :
Success: '123FAA22' Success: '12AA12AA' (Incorrect) Success: '123F' Success: '1A22'
Attachments (1)
Change History (3)
by , 10 years ago
| Attachment: | spirit_bug.cpp added | 
|---|
comment:1 by , 5 years ago
comment:2 by , 5 years ago
| Resolution: | → fixed | 
|---|---|
| Status: | new → closed | 


Source file to reproduce