Skip to main content

partiql/parser/
mod.rs

1pub mod clauses;
2pub mod elements;
3pub mod expressions;
4pub mod func;
5pub mod keywords;
6pub mod math;
7pub mod select_statement;
8pub mod values;
9
10use nom::branch::alt;
11use nom::combinator::map;
12use nom::number::complete::double;
13use nom::IResult;
14use ordered_float::OrderedFloat;
15
16use crate::value::PqlValue;
17pub use elements::{float_number, string_allowed_in_field, whitespace};
18pub use expressions::parse_expr;
19pub use expressions::parse_field;
20pub use expressions::parse_path_as_expr;
21
22pub fn parse_value(input: &str) -> IResult<&str, PqlValue> {
23    alt((
24        map(elements::string, |s| PqlValue::Str(s.to_string())),
25        map(double, |f| PqlValue::Float(OrderedFloat(f as f64))),
26    ))(input)
27}