use crate::token::Token; pub struct Module { pub statements: Vec, } #[derive(Debug)] pub enum Statement { FunctionDeclaration { name: Token, parameters: Vec, statements: Vec, }, Expression(Expression), } #[derive(Debug)] pub struct ParameterDeclaration { pub name: Token, pub typename: Token, } #[derive(Debug)] pub enum Expression { Identifier(Token), FunctionCall { function: Box, arguments: Vec, return_type: Option, }, }