title: Logic expression parser
body: <p>I'm trying to create a logic expression parser for expressions like: 
  ((VariableA -> VariableB) AND NOT VariableC)
  The parser should be able to return, whether the result is true or false for given values of variables. </p>
  
  <p>Basically, the expressions will only contain variables, logical operators (or, and, implication, equivalence, negation and parentheses).</p>
  
  <p>I would like to ask what is the best way to implement this kind of parser (using AST tree, or Reverse Polish Notation)? Or maybe there already exist some open source parsers that can do the job?</p>