stuff
This commit is contained in:
+1
-33
@@ -12,39 +12,7 @@ pub use func::*;
|
||||
pub use ident::*;
|
||||
pub use item::*;
|
||||
pub use param::*;
|
||||
pub use struct_::*;
|
||||
pub use ty::*;
|
||||
|
||||
use super::{DisplayCtx, FmtNode, Id, Lit, Node, NodeVec, Parsable, ParseCtx, Token};
|
||||
use super::{DisplayCtx, Lit, Node, ParseCtx, Parsed, Token};
|
||||
use crate::io::CompilerMsg;
|
||||
|
||||
def_nodes! {
|
||||
exprs: Expr,
|
||||
idents: Ident,
|
||||
blocks: Body,
|
||||
lits: Lit,
|
||||
types: Type,
|
||||
funcs: Func,
|
||||
params: Param,
|
||||
items: Item,
|
||||
structs: Struct,
|
||||
}
|
||||
|
||||
macro_rules! def_nodes {
|
||||
{$($field:ident: $ty:ident,)*} => {
|
||||
#[derive(Default)]
|
||||
pub struct Nodes {
|
||||
$(pub $field: NodeVec<$ty>,)*
|
||||
}
|
||||
|
||||
$(impl Node for $ty {
|
||||
fn vec(nodes: &Nodes) -> &NodeVec<Self> {
|
||||
&nodes.$field
|
||||
}
|
||||
fn vec_mut(nodes: &mut Nodes) -> &mut NodeVec<Self> {
|
||||
&mut nodes.$field
|
||||
}
|
||||
})*
|
||||
};
|
||||
}
|
||||
use def_nodes;
|
||||
|
||||
Reference in New Issue
Block a user