use crate::core::tool::ToolLanguage;
use crate::models::ToolDefinition;
use anyhow::Result;
pub mod bash;
pub mod javascript;
pub mod python;
pub struct ToolParser {
language: ToolLanguage,
}
impl ToolParser {
pub fn new(language: ToolLanguage) -> Self {
Self { language }
}
pub fn parse(&self, source: &str) -> Result<ToolDefinition> {
match self.language {
ToolLanguage::Bash => bash::parse(source),
ToolLanguage::JavaScript => javascript::parse(source),
ToolLanguage::Python => python::parse(source),
}
}
}