pr47 0.0.3

A semi-experimental programming language. Still working in progress.
Documentation
use crate::syntax::decl::{CSTVarDecl, CSTFuncDecl};
use crate::ast::ty::Type;
use crate::ast::expr::Expr;
use crate::util::mstring::StringHandle;
use crate::util::sona::Owner;

pub enum Decl<'a> {
    VarDecl(VarDecl<'a>, &'a CSTVarDecl),
    FuncDecl(FuncDecl<'a>, &'a CSTFuncDecl)
}

pub struct VarDecl<'a> {
    pub var_name: StringHandle,
    pub var_type: &'a Type<'a>,
    pub var_init: Option<Owner<'a, Expr<'a>>>
}

pub struct FuncDecl<'a> {
    pub func_name: StringHandle,
    pub arg_types: Vec<&'a Type<'a>>,
    pub ret_type: &'a Type<'a>
}