diff options
Diffstat (limited to 'crates/rebel-parse/src/ast.rs')
-rw-r--r-- | crates/rebel-parse/src/ast.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/rebel-parse/src/ast.rs b/crates/rebel-parse/src/ast.rs index 1f98f15..ae5d61f 100644 --- a/crates/rebel-parse/src/ast.rs +++ b/crates/rebel-parse/src/ast.rs @@ -50,6 +50,11 @@ pub enum Expr<'a> { expr: Box<Expr<'a>>, args: Vec<Arg<'a>>, }, + Method { + expr: Box<Expr<'a>>, + method: Ident<'a>, + args: Vec<Arg<'a>>, + }, Index { expr: Box<Expr<'a>>, index: Box<Expr<'a>>, @@ -86,6 +91,14 @@ impl<'a> Expr<'a> { } } + pub(crate) fn method(expr: Expr<'a>, method: Ident<'a>, args: Args<'a>) -> Self { + Expr::Method { + expr: Box::new(expr), + method, + args, + } + } + pub(crate) fn index(expr: Expr<'a>, index: Expr<'a>) -> Self { Expr::Index { expr: Box::new(expr), |