An error is returned when the number fails to parse. #704

This commit is contained in:
Sunli 2021-11-13 08:42:16 +08:00
parent 2a49d6f75d
commit a1ad892774

View File

@ -150,7 +150,11 @@ fn parse_number(pair: Pair<Rule>, pc: &mut PositionCalculator) -> Result<Positio
debug_assert_eq!(pair.as_rule(), Rule::number);
let pos = pc.step(&pair);
Ok(Positioned::new(
pair.as_str().parse().expect("failed to parse number"),
pair.as_str().parse().map_err(|err| Error::Syntax {
message: format!("invalid number: {}", err),
start: pos,
end: None,
})?,
pos,
))
}