diff options
author | Özgür Kesim <oec@codeblau.de> | 2019-06-18 13:21:21 +0200 |
---|---|---|
committer | Özgür Kesim <oec@codeblau.de> | 2019-06-18 13:21:21 +0200 |
commit | 9bc60a23116a1992e56d3a2754df6523bc565e99 (patch) | |
tree | 923e28f1cc759d1c49668049f9afc2e2ccba7612 /combinator.go | |
parent | b9b0f69ccfe6fa9ef21a9323a77f1c65220d944d (diff) |
applying upstream patch for github.com/vektah/goparsify/issues/3
Diffstat (limited to 'combinator.go')
-rw-r--r-- | combinator.go | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/combinator.go b/combinator.go index 5b0d584..ae4d31c 100644 --- a/combinator.go +++ b/combinator.go @@ -35,7 +35,6 @@ func NoAutoWS(parser Parserish) Parser { // Any matches the first successful parser and returns its result func Any(parsers ...Parserish) Parser { parserfied := ParsifyAll(parsers...) - // Records which parser was successful for each byte, and will use it first next time. return NewParser("Any()", func(ps *State, node *Result) { ps.WS(ps) @@ -45,13 +44,7 @@ func Any(parsers ...Parserish) Parser { } startpos := ps.Pos - longestError := ps.Error - if ps.Cut <= startpos { - ps.Recover() - } else { - return - } - + var longestError Error for _, parser := range parserfied { parser(ps, node) if ps.Errored() { @@ -72,14 +65,14 @@ func Any(parsers ...Parserish) Parser { }) } -// Some matches one or more parsers and returns the value as .Child[n] +// Some matches zero or more parsers and returns the value as .Child[n] // an optional separator can be provided and that value will be consumed // but not returned. Only one separator can be provided. func Some(parser Parserish, separator ...Parserish) Parser { return NewParser("Some()", manyImpl(0, parser, separator...)) } -// Many matches zero or more parsers and returns the value as .Child[n] +// Many matches one or more parsers and returns the value as .Child[n] // an optional separator can be provided and that value will be consumed // but not returned. Only one separator can be provided. func Many(parser Parserish, separator ...Parserish) Parser { |