Posts

Filtering using Scala Parser Combinators

Filtering using Scala Parser Combinators So I got interesting task to enable record filtering according to some rules that we get from configuration represented as text. well so far we know two things : 1. we need a filter that accepts a record as an input and might return a record as its output : def filter ( record : Record ) : Option [ Record ] 2. we need to get a text with some kind of rule e.g  "foo = 'FOO'" , "bar = 8", "buz IS NOT NULL "  and AND / OR combinations . where foo/bar/buz are record's attributes * well I know that "null" is a dirty word in FP but that was the requirement since it was a mix-in with java project. Following  the rule of three  so is our todo list : parse the text evaluate it's Boolean expression in a form of Abstract Syntax Tree. filter according the Boolean evaluation. The complete Source Code can be found  here  (you are more than welcome to contribute ) Parser Combin...