It is absolutely possible to generate such a table from a boolean expression, provided that expression doesn't call into functions. In particular, I'll assume we have operators for equality =, negation NOT, conjunction AND, and disjunction OR. Given such an expression, we can transform it into a disjunctive normal form either by hand, or more tediously by implementing a suitable algorithm. In DNF, the expression consists of AND-groups that are OR-ed together. This is interesting, because each row in your table implies an AND for all input values.
Example:
(foo='bar' OR foo='foo') AND (bar='foo')
<=> distributive law
(foo='bar' AND bar='foo') OR (foo='foo' AND bar='foo')
Produces the table:
foo bar
--- ---
bar foo
foo foo
Things become more difficult once we introduce negations:
(foo='bar' OR foo='foo') AND NOT (bar='foo') AND NOT (bar='bar')
<=> distributive law
(foo='bar' AND NOT bar='foo' AND NOT bar='bar') OR (foo='foo' AND NOT bar='foo' AND NOT bar='bar')
This cannot be represented directly in your table, since we are now excluding certain values. Each table cell would need the ability to EXCLUDE a set of values:
foo | bar
----+------------------
bar | EXCLUDE(foo, bar)
foo | EXCLUDE(foo, bar)
With these ideas in mind, it should be possible to generate the tables by hand with a low error rate. If an automated solution is required, the problem is reduced to automated transformation of a boolean expression to DNF, for which approaches exist.