Comment by mbaranturkmen 16 hours ago How does the parser decide _where_ to split the statement? 1 comment mbaranturkmen Reply mrkeen 14 hours ago Each parser blindly follows its own rules.If pDigit saw "123 ", according to TFA's design, it would return (1, "23 ").If PInt saw the "123 ", it would return (123, " ").You could approximate pInt in terms of pDigit via: PInt = many1 pDigit (Ignoring negatives, int maxvalue, and many1 implies 1-or-more, not 0-or-more.)I say "according to TFA's design" because I've been arguing elsewhere that parsers must return Either<Error,(T, Remainder)> not (T, Remainder)
mrkeen 14 hours ago Each parser blindly follows its own rules.If pDigit saw "123 ", according to TFA's design, it would return (1, "23 ").If PInt saw the "123 ", it would return (123, " ").You could approximate pInt in terms of pDigit via: PInt = many1 pDigit (Ignoring negatives, int maxvalue, and many1 implies 1-or-more, not 0-or-more.)I say "according to TFA's design" because I've been arguing elsewhere that parsers must return Either<Error,(T, Remainder)> not (T, Remainder)
Each parser blindly follows its own rules.
If pDigit saw "123 ", according to TFA's design, it would return (1, "23 ").
If PInt saw the "123 ", it would return (123, " ").
You could approximate pInt in terms of pDigit via:
(Ignoring negatives, int maxvalue, and many1 implies 1-or-more, not 0-or-more.)
I say "according to TFA's design" because I've been arguing elsewhere that parsers must return Either<Error,(T, Remainder)> not (T, Remainder)