Truth tables show up in discrete math, digital logic, and philosophy courses, and they're tedious by hand. A 4-variable expression means 16 rows, and one slipped F ruins the whole table. This is a good small project for developers: a tokenizer, a recursive descent parser, and an evaluator, in under 150 lines of Python with no dependencies. I'll walk through how it works and link a free web version at the end. The plan Given an input like ~(A & B) <-> (~A | ...