galvan_ast/item/
postfix.rs

1use crate::{AstNode, PrintAst, Span};
2use derive_more::From;
3use galvan_ast_macro::AstNode;
4use typeunion::type_union;
5
6use super::Expression;
7
8#[type_union]
9#[derive(Clone, Debug, PartialEq, Eq, AstNode)]
10pub type PostfixExpression = YeetExpression + AccessExpression;
11
12#[derive(Clone, Debug, PartialEq, Eq, AstNode)]
13pub struct AccessExpression {
14    pub base: Expression,
15    pub index: Expression,
16    pub span: Span,
17}
18
19#[derive(Clone, Debug, From, PartialEq, Eq, AstNode)]
20pub struct YeetExpression {
21    pub inner: Expression,
22    pub span: Span,
23}