pub(crate) mod helpers;
pub(crate) mod operators;
pub(crate) mod primary;
use crate::engine::compile::context::CompileContext;
use crate::engine::lexer::{Token, Lexer};
use crate::engine::types::Val;
pub fn parse_expression(
lexer: &mut Lexer,
context: &mut CompileContext,
) -> Result<(Val, Token), String> {
operators::parse_ternary_expr(lexer, context)
}
pub fn parse_additive_expr_with_initial(
lexer: &mut Lexer,
context: &mut CompileContext,
initial_token: Token,
) -> Result<(Val, Token), String> {
operators::parse_additive_expr_with_initial(lexer, context, initial_token)
}
pub fn parse_function_call_public(
lexer: &mut Lexer,
context: &mut CompileContext,
function_name: &str,
) -> Result<(Val, Token), String> {
helpers::parse_function_call(lexer, context, function_name)
}