Files
ts-parser/src/ast.rs
2025-05-28 03:41:40 +02:00

32 lines
588 B
Rust

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