1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00
guile/module/language
Ludovic Courtès e06972410a Implement fancy format string analysis.
* module/language/tree-il/analyze.scm (format-string-argument-count):
  Return two values, the minimum and maximum number of arguments.
  Add support for most of `format' escapes, including conditionals.
  (format-analysis): Adjust accordingly.

* module/system/base/message.scm (%warning-types)[format]: Take two
  arguments, MIN and MAX, instead of EXPECTED.  Display warning
  accordingly.

* test-suite/tests/tree-il.test ("warnings")["format"]("~%, ~~, ~&, ~t,
  ~_, and ~\\n", "~{...~}", "~{...~}, too many args", "~@{...~}",
  "~@{...~}, too few args", "~(...~)", "~v", "~v:@y", "~*", "~?",
  "complex 1", "complex 2", "complex 3"): New tests.
  ("conditionals"): New test prefix.
2010-10-10 19:10:10 +02:00
..
assembly add source:line-for-user, returning a 1-indexed line number 2010-10-01 18:15:23 +02:00
brainfuck remove `version' field from <language> 2010-05-02 11:19:13 +02:00
bytecode remove `version' field from <language> 2010-05-02 11:19:13 +02:00
ecmascript remove `version' field from <language> 2010-05-02 11:19:13 +02:00
elisp beginnings of letrec* support in the expander 2010-06-17 13:43:26 +02:00
glil rename (rnrs bytevector) to (rnrs bytevectors) 2010-06-01 13:26:11 +02:00
objcode Add program-free-variables' to (system vm program)'. 2010-05-07 13:47:52 +02:00
scheme fix a comment about environments and the scheme compiler 2010-05-02 11:19:46 +02:00
tree-il Implement fancy format string analysis. 2010-10-10 19:10:10 +02:00
value remove `version' field from <language> 2010-05-02 11:19:13 +02:00
assembly.scm rename (rnrs bytevector) to (rnrs bytevectors) 2010-06-01 13:26:11 +02:00
glil.scm prompt handlers are always inline 2010-02-19 15:30:34 +01:00
objcode.scm Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
tree-il.scm Improve pretty-printing of tree-il objects. 2010-10-08 16:25:58 +02:00