diff --git a/README.md b/README.md index d575924..6a87b0b 100644 --- a/README.md +++ b/README.md @@ -4,24 +4,41 @@ please see the [relevant Wikipedia article][1]. [1]: https://en.wikipedia.org/wiki/Truth_table -To build, just run `make`. You will need SBCL, ASDF, and Quicklisp. Quicklisp is -used to load `uiop` and `with-user-abort`. +There is an instance of the web version of this program hosted here: [tt.zander.im][2] + +[2]: https://tt.zander.im/ + +This repository contains three things: a Common Lisp library to parse and +manipulate propositional logic expressions, a command line truth table +generator, and a web-based truth table generator. + +To build the CLI version, just run `make`. You will need SBCL, ASDF, and +Quicklisp. Quicklisp is used to load `uiop` and `with-user-abort`. + +To run the web server, execute `./truth-table-web-wrapper`. If you want to run +it in the background, I recommend using something like GNU Screen. The web +server supports `-h` and `--help`, you can use them to see all the options it +supports. It should be noted, however, that it does not support HTTPS. If you +want to use HTTPS, run the web server behind something like Nginx or HAProxy. The format of the input propositions is fairly free-form. The above Wikipedia article has some information about their format, as well as possible symbols for -operators. You can also take a look at the table near the top of -`parse.lisp` for all the variations supported by this program. +operators. You can also take a look at the table near the top of `parse.lisp` +for all the variations supported by this program. -Here is the help output from the program: +### CLI Usage +Here is the help output from the CLI (not web) program: ```text usage: truth-table [options] -h, --help print this message, then exit - -f, --format= specify the output format (*unicode*, ascii, or latex) + -f, --format= specify the output format (*unicode*, ascii, latex, or html) -s, --subexps include sub-expressions in the output table -n, --no-vars do not include variables in the output table -m, --multi-char allow multi-character variable names -i, --no-implicit do not use implicit 'and' operations + -p, --pretty pretty print latex, html, etc. output + -l, --latin use the Latin T and F characters for truth values The choice surrounded by '*' is the default. Arguments to long options are also required for their short variant. @@ -30,7 +47,6 @@ options are also required for their short variant. Here is an example truth table: ```text $ truth-table '(a /\ b) -> ~b' - ┌───┬───┬────────────┐ │ a │ b │ a ∧ b → ¬b │ ├───┼───┼────────────┤