Skip to content

Commit 284e1a8

Browse files
authored
Rollup merge of #56217 - frewsxcv:frewsxcv-float-parse, r=QuietMisdreavus
Add grammar in docs for {f32,f64}::from_str, mention known bug. - Original bug about documenting grammar - #32243 - Known bug with parsing - #31407
2 parents 278067d + 8af02fa commit 284e1a8

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

src/libcore/num/dec2flt/mod.rs

+25-1
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,35 @@ macro_rules! from_str_float_impl {
112112
/// * '2.5E10', or equivalently, '2.5e10'
113113
/// * '2.5E-10'
114114
/// * '5.'
115-
/// * '.5', or, equivalently, '0.5'
115+
/// * '.5', or, equivalently, '0.5'
116116
/// * 'inf', '-inf', 'NaN'
117117
///
118118
/// Leading and trailing whitespace represent an error.
119119
///
120+
/// # Grammar
121+
///
122+
/// All strings that adhere to the following [EBNF] grammar
123+
/// will result in an [`Ok`] being returned:
124+
///
125+
/// ```txt
126+
/// Float ::= Sign? ( 'inf' | 'NaN' | Number )
127+
/// Number ::= ( Digit+ |
128+
/// Digit+ '.' Digit* |
129+
/// Digit* '.' Digit+ ) Exp?
130+
/// Exp ::= [eE] Sign? Digit+
131+
/// Sign ::= [+-]
132+
/// Digit ::= [0-9]
133+
/// ```
134+
///
135+
/// [EBNF]: https://www.w3.org/TR/REC-xml/#sec-notation
136+
///
137+
/// # Known bugs
138+
///
139+
/// In some situations, some strings that should create a valid float
140+
/// instead return an error. See [issue #31407] for details.
141+
///
142+
/// [issue #31407]: https://github.com/rust-lang/rust/issues/31407
143+
///
120144
/// # Arguments
121145
///
122146
/// * src - A string

0 commit comments

Comments
 (0)