From dac2c1d90de23ca6cb3db88992885b116199a848 Mon Sep 17 00:00:00 2001 From: Adrian Thurston Date: Sat, 30 Nov 2019 09:01:25 -0800 Subject: rust grammar: handle floats specified with just a trailing dot let a = 0. + 1.- 2.3; --- grammar/rust.lm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'grammar') diff --git a/grammar/rust.lm b/grammar/rust.lm index ad6d25d8..b5cc7bb6 100644 --- a/grammar/rust.lm +++ b/grammar/rust.lm @@ -37,7 +37,14 @@ lex rl float_suffix / ( 'f32' | 'f64' )? / - # Not implemented: DEC_LITERAL . (not immediately followed by ., _ or an identifier) + # Handles: DEC_LITERAL . (not immediately followed by ., _ or an identifier) + token hanging_float + / [0-9]+ '.' [^0-9._a-zA-Z] / + { + Float: str = input->pull( match_length - 1 ) + input->push( make_token( typeid, Float ) ) + } + token float/ [0-9]+ float_exponent | [0-9]+ '.' [0-9]+ float_exponent? | -- cgit v1.2.1