implementing a parser that can answer boolean queries

a lot of TODOs, though:

  * use some kind of stream instead of reading everything into the memory;
  * include line+column information plus logging to let users know parse errors;
  * make sure parser & grammar are both Ok (testing);
  * build up the ast structure;