- Extracts common code between C and Python-like syntax into its own
sub-procedures.
- Fixes Python-like syntax from treating `}` as a verb.
- Makes C-like syntax treat ' ' as a missing verb.
- Fixes EXTRA arguments being formatted with options that were
previously set, instead using default options now.
- Makes error messaging more consistent between C and Python-like
syntax.
- Requires argument index to be specified immediately before the verb
in C-like syntax, per the documentation, instead of after `%` _or_
before the verb.
- Tracks argument usage through a `bit_set`, allowing for reporting of
unused arguments even when reordered.
- Moves exit for C-like syntax if next byte is `%` to beginning of
block instead of needlessly trying to parse through all options.
- Pops next unused argument for unspecified formatters like `%i` or
`{}`, instead of taking the argument after the last one used.
- Fixes unspecified precision `%.f` from not setting precision to zero,
per the documentation.
As well as `#column_major matrix[R, C]T` as an alias for just `matrix[R, C]T`.
This is because some libraries require a row_major internal layout but still want to be used with row or major oriented vectors.
Adds the following procedures, which just call through to the `printf` versions, with `newline = true`; a new parameter
also added in this commit.
In all cases, `wprintf` is the one that ultimately writes the newline, if requested.
- printfln
- fprintfln
- eprintfln
- aprintfln
- tprintfln
- bprintfln
- caprintfln
- ctprintfln
- sbprintfln
- wprintfln
Multiple constraints on the same line are combined with logical OR,
while combining multiple negated constraints needs to be done with
logical AND (each constraint on a separate line).