pub fn parse_query(input: &str) -> Result<Query>Expand description
Parse an EventQL query string into an abstract syntax tree.
This is the main entry point for parsing EventQL queries. It performs both lexical analysis (tokenization) and syntactic analysis (parsing) in a single call.
ยงExamples
use eventql_parser::parse_query;
// Parse a simple query
let query = parse_query("FROM e IN events WHERE e.id == 1 PROJECT INTO e").unwrap();
assert!(query.predicate.is_some());
// Parse with multiple clauses
let complex = parse_query(
"FROM e IN events \
WHERE e.price > 100 \
ORDER BY e.timestamp DESC \
TOP 10 \
PROJECT INTO {id: e.id, price: e.price}"
).unwrap();
assert!(complex.order_by.is_some());
assert!(complex.limit.is_some());
// Handle errors
match parse_query("FROM e IN events WHERE") {
Ok(_) => println!("Parsed successfully"),
Err(e) => println!("Parse error: {}", e),
}