else: return None
NEXTARG = NextArg()
-## Because a `NextArg' collectors are used so commonly, and they're all the
+## Because `NextArg' collectors are used so commonly, and they're all the
## same, we make a distinguished one and try to use that instead. Nothing
## goes badly wrong if you don't use this, but you'll use more memory than
## strictly necessary.
## whether the `@' and `:' modifiers were set in the control string.
## GETARG is the collector for the operation's argument(s). The PARAMS
## are a list of parameter collectors. Finally, CHAR is the directive
-## character (so directives with siilar behaviour can use the same
+## character (so directives with similar behaviour can use the same
## class).
class FormatLiteral (object):
PARAMS ::= PARAM [`,' PARAMS]
- PARAM ::= EMPTY | INT | `'' CHAR | `v' | `!' ARG
+ PARAM ::= EMPTY | INT | `#' | `'' CHAR | `v' | `!' ARG
FLAGS ::= [[ `@' | `:' ]]*
items drawn from the listed alternatives, each appearing at most once. See
the function `parse_arg' for the syntax of ARG.)
- An empty PARAM is equivalent to omitting the parameter; `!ARG' reads the
- parameter value from the argument; `v' is equivalent to `!+', as a
- convenient abbreviation and for Common Lisp compatibility. The `=ARG'
- notation indicates which argument(s) should be processed by the operation:
- the default is `=+'.
+ An empty PARAM is equivalent to omitting the parameter; `#' is the number
+ of remaining positional arguments; `!ARG' reads the parameter value from
+ the argument; `v' is equivalent to `!+', as a convenient abbreviation and
+ for Common Lisp compatibility. The `=ARG' notation indicates which
+ argument(s) should be processed by the operation: the default is `=+'
"""
if not isinstance(control, basestring): return control
pp = []