All code is in the answer. Parsing the infix, and generating the "pretty" truth table over all variables.
An easy-to use declarative mechanism is there for defining operators on multiple precedence levels with different arities. (All you do is instantiate an object with new for each supported operator). Operators either have names that denote existing functions in TXR Lisp, or for any that are not existing Boolean functions, you just define the function (like I did for ->).
It actually would not be too hard to add a separate parser for S-expressions; this would allow the existing "backend" tooling (converting to postfix, generating trees, filling tables, etc.) to be used unchanged. I actually think this would be a really powerful feature to add; thanks for the idea!
I forgot to mention SMT-LIB[1] and pySMT[2]. I don't want to say their are optimal, I just think You might find it interesting.
I think it would be even better with Curryed[0] Functions. As an example ``'(f a1 a2)'' is just a Syntactic Sugar for ``'((f a1) a2)''.
Don't forget something like `help' in Python :) .
Hi, where can I see a list of all the operators that are supported? I tried "A nor B" on the web interface to try to make it break and was surprised that it worked :)
No, however that is a great idea I had not thought of before that I will add to the roadmap. In the meantime, if you need a somewhat-nicer looking output format, I have a basic web interface setup at http://tt-web.bwel.ch/
Thank you, I appreciate you taking the time to check out the project and point me towards pandoc. It looks like a great starting point for expanding into new output formats.
http://stackoverflow.com/a/34377302/1250772
All code is in the answer. Parsing the infix, and generating the "pretty" truth table over all variables.
An easy-to use declarative mechanism is there for defining operators on multiple precedence levels with different arities. (All you do is instantiate an object with new for each supported operator). Operators either have names that denote existing functions in TXR Lisp, or for any that are not existing Boolean functions, you just define the function (like I did for ->).