Abstract class to base all parsers on. It is created in a monadic form,
so that the parse method should be callable on raw and parsed data.
Each parser has the option to accept and return:
raw data
parsed data
undefined
The FreeParser has the most freedoms of all parsers:
allows skipping parsing if the data is not parsable (returning the original data)
allows filtering the data (returning undefined if the data should be filtered out)
Abstract class to base all parsers on. It is created in a monadic form, so that the
parsemethod should be callable on raw and parsed data. Each parser has the option to accept and return:undefinedTheFreeParserhas the most freedoms of all parsers:undefinedif the data should be filtered out)