diff --git a/Readme.org b/Readme.org index 25886b1..c42f6b9 100644 --- a/Readme.org +++ b/Readme.org @@ -20,7 +20,21 @@ https://wiki.call-cc.org/man/5/Extension%20tools#changing-the-repository-locatio ~make~ * Usage -You'll also need a C compiler, so pick any. +** Summary +#+begin_src +Usage: sexc [options] filename [-- options-for-c-compiler] +Options: + --c-compiler=ARG Select C compiler. Defaults to value of SEX_CC + environment variable, or if it is empty, to cc + -c, --compile-object Compile object file instead of executable program + -E, --preprocess Emit C code + --public-interface Get module's public interface + -h, --help Show this help + -m, --macro-expand Emit macro-expanded Sex code + -o, --output=ARG Write output to file. Default file name is a.out. + If -E or -m options are provided, defaults to stdout +#+end_src +** Compiling Hello World #+begin_src sexc ./examples/hell-world.sex -o hello #+end_src diff --git a/sexc.scm b/sexc.scm index 4145914..6c55d28 100644 --- a/sexc.scm +++ b/sexc.scm @@ -278,32 +278,35 @@ ;;; Main function facilities (define opts-grammar - `((c-compiler "Select C compiler. Defaults to value of SEX_CC environment variable, or if it is empty, to cc" - (required #f) - (value #t)) - (compile-object "Compile object file instead of executable program" - (required #f) - (value #f) - (single-char #\c)) - (preprocess "Emit C code" - (required #f) - (value #f) - (single-char #\E)) - (public-interface "Get module's public interface" + (let ((padding 26)) + `((c-compiler ,(fmt #f "Select C compiler. Defaults to value of SEX_CC" nl + (pad padding) "environment variable, or if it is empty, to cc") + (required #f) + (value #t)) + (compile-object "Compile object file instead of executable program" (required #f) - (value #f)) - (help "Show this help" - (required #f) - (value #f) - (single-char #\h)) - (macro-expand "Emit macro-expanded Sex code" + (value #f) + (single-char #\c)) + (preprocess "Emit C code" (required #f) (value #f) - (single-char #\m)) - (output "Write output to file. Default file name is a.out. If -E or -m options are provided, defaults to stdout" + (single-char #\E)) + (public-interface "Get module's public interface" + (required #f) + (value #f)) + (help "Show this help" (required #f) - (value #t) - (single-char #\o)))) + (value #f) + (single-char #\h)) + (macro-expand "Emit macro-expanded Sex code" + (required #f) + (value #f) + (single-char #\m)) + (output ,(fmt #f "Write output to file. Default file name is a.out." nl + (pad padding) "If -E or -m options are provided, defaults to stdout") + (required #f) + (value #t) + (single-char #\o))))) (define (print-help) (fmt #t "Usage: sexc [options] filename [-- options-for-c-compiler]\n")