galvan-ast 0.0.1

AST for the Galvan programming language
Documentation
use crate::{AstNode, PrintAst, Span};
use derive_more::From;
use galvan_ast_macro::AstNode;
use typeunion::type_union;

use super::Expression;

#[type_union]
#[derive(Clone, Debug, PartialEq, Eq, AstNode)]
pub type PostfixExpression = YeetExpression + AccessExpression;

#[derive(Clone, Debug, PartialEq, Eq, AstNode)]
pub struct AccessExpression {
    pub base: Expression,
    pub index: Expression,
    pub span: Span,
}

#[derive(Clone, Debug, From, PartialEq, Eq, AstNode)]
pub struct YeetExpression {
    pub inner: Expression,
    pub span: Span,
}