From 901b5e5394b75d57b60d92a3ba6d9feb4d6c3ad5 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Sun, 5 May 2024 18:58:40 +0200 Subject: [PATCH] docs: formatting grammar language changed to EBNF --- .../framework_basics/text_output.md | 56 +++++++++---------- src/core/include/mp-units/format.h | 50 ++++++++--------- 2 files changed, 53 insertions(+), 53 deletions(-) diff --git a/docs/users_guide/framework_basics/text_output.md b/docs/users_guide/framework_basics/text_output.md index 7dc08892..124cf5d3 100644 --- a/docs/users_guide/framework_basics/text_output.md +++ b/docs/users_guide/framework_basics/text_output.md @@ -399,10 +399,10 @@ as text and, thus, are aligned to the left by default. ### Dimension formatting -```bnf -dimension-format-spec ::= [fill-and-align] [width] [dimension-spec] -dimension-spec ::= [text-encoding] -text-encoding ::= 'U' | 'A' +```ebnf +dimension-format-spec = [fill-and-align], [width], [dimension-spec]; +dimension-spec = [text-encoding]; +text-encoding = 'U' | 'A'; ``` In the above grammar: @@ -429,16 +429,16 @@ std::println("{:A}", isq::power.dimension); // L^2MT^-3 ### Unit formatting -```bnf -unit-format-spec ::= [fill-and-align] [width] [unit-spec] -unit-spec ::= [text-encoding] [unit-symbol-solidus] [unit-symbol-separator] [L] - [text-encoding] [unit-symbol-separator] [unit-symbol-solidus] [L] - [unit-symbol-solidus] [text-encoding] [unit-symbol-separator] [L] - [unit-symbol-solidus] [unit-symbol-separator] [text-encoding] [L] - [unit-symbol-separator] [text-encoding] [unit-symbol-solidus] [L] - [unit-symbol-separator] [unit-symbol-solidus] [text-encoding] [L] -unit-symbol-solidus ::= '1' | 'a' | 'n' -unit-symbol-separator ::= 's' | 'd' +```ebnf +unit-format-spec = [fill-and-align], [width], [unit-spec]; +unit-spec = [text-encoding], [unit-symbol-solidus], [unit-symbol-separator], [L] + | [text-encoding], [unit-symbol-separator], [unit-symbol-solidus], [L] + | [unit-symbol-solidus], [text-encoding], [unit-symbol-separator], [L] + | [unit-symbol-solidus], [unit-symbol-separator], [text-encoding], [L] + | [unit-symbol-separator], [text-encoding], [unit-symbol-solidus], [L] + | [unit-symbol-separator], [unit-symbol-solidus], [text-encoding], [L]; +unit-symbol-solidus = '1' | 'a' | 'n'; +unit-symbol-separator = 's' | 'd'; ``` In the above grammar: @@ -528,20 +528,20 @@ std::println("{:d}", kg * m2 / s2); // kg⋅m²/s² ### Quantity formatting -```bnf -quantity-format-spec ::= [fill-and-align] [width] [quantity-specs] [defaults-specs] -quantity-specs ::= conversion-spec - quantity-specs conversion-spec - quantity-specs literal-char -literal-char ::= -conversion-spec ::= '%' placement-type -placement-type ::= subentity-id | '?' | '%' -defaults-specs ::= ':' default-spec-list -default-spec-list ::= default-spec - default-spec-list default-spec -default-spec ::= subentity-id '[' format-spec ']' -subentity-id ::= 'N' | 'U' | 'D' -format-spec ::= +```ebnf +quantity-format-spec = [fill-and-align], [width], [quantity-specs], [defaults-specs]; +quantity-specs = conversion-spec; + | quantity-specs, conversion-spec; + | quantity-specs, literal-char; +literal-char = ? any character other than '{', '}', or '%' ?; +conversion-spec = '%', placement-type; +placement-type = subentity-id | '?' | '%'; +defaults-specs = ':', default-spec-list; +default-spec-list = default-spec; + | default-spec-list, default-spec; +default-spec = subentity-id, '[' format-spec ']'; +subentity-id = 'N' | 'U' | 'D'; +format-spec = ? as specified by the formatter for the argument type ?; ``` In the above grammar: diff --git a/src/core/include/mp-units/format.h b/src/core/include/mp-units/format.h index 44cda221..ccb237c7 100644 --- a/src/core/include/mp-units/format.h +++ b/src/core/include/mp-units/format.h @@ -94,9 +94,9 @@ OutputIt format_global_buffer(OutputIt out, const fill_align_width_format_specs< // // Grammar // -// dimension-format-spec ::= [fill-and-align] [width] [dimension-spec] -// dimension-spec ::= [text-encoding] -// text-encoding ::= 'U' | 'A' +// dimension-format-spec = [fill-and-align], [width], [dimension-spec]; +// dimension-spec = [text-encoding]; +// text-encoding = 'U' | 'A'; // template class MP_UNITS_STD_FMT::formatter { @@ -159,15 +159,15 @@ public: // // Grammar // -// unit-format-spec ::= [fill-and-align] [width] [unit-spec] -// unit-spec ::= [text-encoding] [unit-symbol-solidus] [unit-symbol-separator] [L] -// [text-encoding] [unit-symbol-separator] [unit-symbol-solidus] [L] -// [unit-symbol-solidus] [text-encoding] [unit-symbol-separator] [L] -// [unit-symbol-solidus] [unit-symbol-separator] [text-encoding] [L] -// [unit-symbol-separator] [text-encoding] [unit-symbol-solidus] [L] -// [unit-symbol-separator] [unit-symbol-solidus] [text-encoding] [L] -// unit-symbol-solidus ::= '1' | 'a' | 'n'1 -// unit-symbol-separator ::= 's' | 'd' +// unit-format-spec = [fill-and-align], [width], [unit-spec]; +// unit-spec = [text-encoding], [unit-symbol-solidus], [unit-symbol-separator], [L] +// | [text-encoding], [unit-symbol-separator], [unit-symbol-solidus], [L] +// | [unit-symbol-solidus], [text-encoding], [unit-symbol-separator], [L] +// | [unit-symbol-solidus], [unit-symbol-separator], [text-encoding], [L] +// | [unit-symbol-separator], [text-encoding], [unit-symbol-solidus], [L] +// | [unit-symbol-separator], [unit-symbol-solidus], [text-encoding], [L]; +// unit-symbol-solidus = '1' | 'a' | 'n'; +// unit-symbol-separator = 's' | 'd'; // template class MP_UNITS_STD_FMT::formatter { @@ -249,19 +249,19 @@ public: // // Grammar // -// quantity-format-spec ::= [fill-and-align] [width] [quantity-specs] [defaults-specs] -// quantity-specs ::= conversion-spec -// quantity-specs conversion-spec -// quantity-specs literal-char -// literal-char ::= -// conversion-spec ::= '%' placement-type -// placement-type ::= subentity-id | '?' | '%' -// defaults-specs ::= ':' default-spec-list -// default-spec-list ::= default-spec -// default-spec-list default-spec -// default-spec ::= subentity-id '[' format-spec ']' -// subentity-id ::= 'N' | 'U' | 'D' -// format-spec ::= +// quantity-format-spec = [fill-and-align], [width], [quantity-specs], [defaults-specs]; +// quantity-specs = conversion-spec; +// | quantity-specs, conversion-spec; +// | quantity-specs, literal-char; +// literal-char = ? any character other than '{', '}', or '%' ?; +// conversion-spec = '%', placement-type; +// placement-type = subentity-id | '?' | '%'; +// defaults-specs = ':', default-spec-list; +// default-spec-list = default-spec; +// | default-spec-list, default-spec; +// default-spec = subentity-id, '[' format-spec ']'; +// subentity-id = 'N' | 'U' | 'D'; +// format-spec = ? as specified by the formatter for the argument type ?; // #if __cpp_lib_format_ranges && !MP_UNITS_USE_FMTLIB template Rep>