wip
This commit is contained in:
16
src/ast.rs
16
src/ast.rs
@ -4,20 +4,28 @@ pub struct Module {
|
||||
pub statements: Vec<Statement>,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Statement {
|
||||
FunctionDeclaration {
|
||||
name: Token,
|
||||
parameters: Vec<ParameterDeclaration>,
|
||||
statements: Vec<Statement>,
|
||||
},
|
||||
Expression,
|
||||
Expression(Expression),
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct ParameterDeclaration {
|
||||
name: Token,
|
||||
typename: Token,
|
||||
pub name: Token,
|
||||
pub typename: Token,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Expression {
|
||||
Identifier(Token),
|
||||
FunctionCall {},
|
||||
FunctionCall {
|
||||
function: Box<Expression>,
|
||||
arguments: Vec<Expression>,
|
||||
return_type: Option<Token>,
|
||||
},
|
||||
}
|
||||
|
Reference in New Issue
Block a user