Comments (3)
To make sure I understand, the problem is that for incomplete input, you would expect alt
to try another branch, rather than error out?
While I can't speak for Geal, I think this runs counter to how nom is setup for the streaming
code path. In streaming
, the expectation is that a decision shouldn't be made that will be different based on the amount of input that is available. Or in other words, streaming
will fail if it doesn't have a definitive match. Take take_while
, it could succeed with any amount of input but instead it doesn't succeed unless it finds a byte that it can't capture.
from nom.
When working with streaming input, the parser should give the same result, independently of how the data was chunked. So for combinators like alt, if the child parser returned Incomplete when missing data, but could have succeeded on the complete data, then alt has to return Incomplete too instead of deciding to try another branch
from nom.
Thanks I understand your point. I can also use nom::combinator::complete
to supplement if I need to.
from nom.
Related Issues (20)
- separated_list1 by multipspace0 sep failed HOT 3
- Allow tag/is_not/similar to take u8 in addition to arrays and slices
- docs: Dead link in README
- unsigned integer underflow HOT 3
- using `.clone()` on a double reference HOT 1
- Nom's error is referencing data owned by the calling function
- Any other approach to handle left recursion
- How to parse until a range of tags HOT 3
- Mention difference between is_not and take_until in their respective docs.
- I was going to complain about an issue in the function take_while_m_n, but [update : and I will do] ...
- Add u48 number parser HOT 1
- I want to implement `separated_tuple` for 8.0 HOT 7
- `tag_no_case` panicks while matching certain unicode capitalized characters.
- Ergonomics of `alt()` taking tuple versus slice HOT 3
- A new release for 8.0?
- FromStr-esque parsing trait HOT 1
- Float parsing with trailing `e` broken
- A fix has to be implemented by those dependencies HOT 7
- FlatMap does not properly implement Parser HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nom.