prettify --help output and add it to Readme.org

This commit is contained in:
2025-07-28 20:22:36 +03:00
parent d2998f79ff
commit 4be0d3f5ac
2 changed files with 40 additions and 23 deletions

View File

@@ -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

View File

@@ -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")