mod admin;
mod database;
mod dispatch;
mod group_by;
mod misc;
mod pipe;
#[cfg(test)]
mod tests;
use crate::parser::ast::stmt::*;
use crate::parser::core::error::ParseError;
use crate::parser::parsing::parse_context::ParseContext;
pub struct StmtParser;
impl StmtParser {
pub fn parse_statement(ctx: &mut ParseContext) -> Result<Stmt, ParseError> {
let stmt = Self::parse_single_statement(ctx)?;
pipe::parse_pipe_suffix(ctx, stmt)
}
fn parse_single_statement(ctx: &mut ParseContext) -> Result<Stmt, ParseError> {
if let Some(result) = dispatch::parse_keyword_statement(ctx) {
return result;
}
dispatch::parse_token_statement(ctx)
}
}