diff options
Diffstat (limited to 'crates/rebel-parse/src/ast.rs')
-rw-r--r-- | crates/rebel-parse/src/ast.rs | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/crates/rebel-parse/src/ast.rs b/crates/rebel-parse/src/ast.rs index ae5d61f..8f86acd 100644 --- a/crates/rebel-parse/src/ast.rs +++ b/crates/rebel-parse/src/ast.rs @@ -9,7 +9,7 @@ pub enum RecipeStmt<'a> { }, Task { name: Ident<'a>, - args: Vec<ArgType<'a>>, + params: Vec<FuncParam<'a>>, body: Body<'a>, }, } @@ -48,12 +48,12 @@ pub enum Expr<'a> { }, Apply { expr: Box<Expr<'a>>, - args: Vec<Arg<'a>>, + params: Vec<Expr<'a>>, }, Method { expr: Box<Expr<'a>>, method: Ident<'a>, - args: Vec<Arg<'a>>, + params: Vec<Expr<'a>>, }, Index { expr: Box<Expr<'a>>, @@ -84,18 +84,18 @@ impl<'a> Expr<'a> { } } - pub(crate) fn apply(expr: Expr<'a>, args: Args<'a>) -> Self { + pub(crate) fn apply(expr: Expr<'a>, params: Vec<Expr<'a>>) -> Self { Expr::Apply { expr: Box::new(expr), - args, + params, } } - pub(crate) fn method(expr: Expr<'a>, method: Ident<'a>, args: Args<'a>) -> Self { + pub(crate) fn method(expr: Expr<'a>, method: Ident<'a>, params: Vec<Expr<'a>>) -> Self { Expr::Method { expr: Box::new(expr), method, - args, + params, } } @@ -124,15 +124,8 @@ pub struct TypedExpr<'a> { pub typ: Option<Expr<'a>>, } -pub type Args<'a> = Vec<Arg<'a>>; - -#[derive(Debug, Clone)] -pub struct Arg<'a> { - pub expr: Expr<'a>, -} - #[derive(Debug, Clone)] -pub struct ArgType<'a> { +pub struct FuncParam<'a> { pub name: Ident<'a>, pub typ: Expr<'a>, } |