dsl for transforming results of a parser
dsl for alternatives e.g. match("abc") | match("def") matches "abc" or "def"
dsl for sequences e.g. match("a") ~ match("b") matches "ab"
dsl for repetition of a parser e.g. (*match("a")) matches sequences of a
dsl for optional parser e.g. (-match("abc")) matches "abc" and "efg"
this must be implemented by subclasses
helper to create a successfull result
interface for all parser combinators parse must be implemented.