GLL Combinators - Whitespace Fix
This has been my second week at Precog. During my first week I wrote a patch for the gll-combinators project to fix a whitespace handling issue.
The issue occurred when using the ^#
(mapWithTail
) combinator,
which passes column and line information to a function:
case class A(loc: LineStream, x: String)
literal("daniel") ^# { (loc, x) => A(loc, x) }
The symptom was that the RegexParser
class wouldn’t strip
whitespace from the beginning of the location. So an input with
prefix whitespace like:
daniel
Would be turned into:
A(" daniel", 0, 0)
But it should have been:
A("daniel", 0, 4)
I just refactored whitespace handling out of RegexParser
and into
the generic Parser
class. Merged into master this week.
Pretty trivial fix but it feels good to be able to work on an open-source parser combinator library!