add more seq->list & list->vec morphisms
This commit is contained in:
parent
689ac95486
commit
af34fc9976
1 changed files with 45 additions and 0 deletions
|
@ -84,6 +84,20 @@ pub fn init_ctx(ctx: Arc<RwLock<Context>>) {
|
|||
}
|
||||
);
|
||||
|
||||
let seq_morph_to_list_char = GenericReprTreeMorphism::new(
|
||||
Context::parse(&ctx, "<Seq Char>"),
|
||||
Context::parse(&ctx, "<Seq Char>~<List Char>"),
|
||||
{
|
||||
let ctx = ctx.clone();
|
||||
move |src_rt, σ| {
|
||||
src_rt.attach_leaf_to(
|
||||
Context::parse(&ctx, "<List Char>"),
|
||||
src_rt.view_seq::<char>().to_list()
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
let list_morph_to_vec_char = GenericReprTreeMorphism::new(
|
||||
Context::parse(&ctx, "<List Char>"),
|
||||
Context::parse(&ctx, "<List Char>~<Vec Char>"),
|
||||
|
@ -98,6 +112,34 @@ pub fn init_ctx(ctx: Arc<RwLock<Context>>) {
|
|||
}
|
||||
);
|
||||
|
||||
let seq_morph_to_list_u64 = GenericReprTreeMorphism::new(
|
||||
Context::parse(&ctx, "<Seq machine.UInt64>"),
|
||||
Context::parse(&ctx, "<Seq machine.UInt64>~<List machine.UInt64>"),
|
||||
{
|
||||
let ctx = ctx.clone();
|
||||
move |src_rt, σ| {
|
||||
src_rt.attach_leaf_to(
|
||||
Context::parse(&ctx, "<List machine.UInt64>"),
|
||||
src_rt.view_seq::<u64>().to_list()
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
let list_morph_to_vec_u64 = GenericReprTreeMorphism::new(
|
||||
Context::parse(&ctx, "<List machine.UInt64>"),
|
||||
Context::parse(&ctx, "<List machine.UInt64>~<Vec machine.UInt64>"),
|
||||
{
|
||||
let ctx = ctx.clone();
|
||||
move |src_rt, σ| {
|
||||
src_rt.attach_leaf_to(
|
||||
Context::parse(&ctx, "<Vec machine.UInt64>"),
|
||||
src_rt.view_list::<u64>()
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
let list_morph_from_vec_char = GenericReprTreeMorphism::new(
|
||||
Context::parse(&ctx, "<List Char>~<Vec Char>"),
|
||||
Context::parse(&ctx, "<List Char>"),
|
||||
|
@ -129,7 +171,10 @@ pub fn init_ctx(ctx: Arc<RwLock<Context>>) {
|
|||
ctx.write().unwrap().morphisms.add_morphism( list_morph_editsetup1 );
|
||||
ctx.write().unwrap().morphisms.add_morphism( list_morph_editsetup3 );
|
||||
ctx.write().unwrap().morphisms.add_morphism( list_morph_from_vec_char );
|
||||
ctx.write().unwrap().morphisms.add_morphism( seq_morph_to_list_char );
|
||||
ctx.write().unwrap().morphisms.add_morphism( seq_morph_to_list_u64 );
|
||||
ctx.write().unwrap().morphisms.add_morphism( list_morph_to_vec_char );
|
||||
ctx.write().unwrap().morphisms.add_morphism( list_morph_to_vec_u64 );
|
||||
ctx.write().unwrap().morphisms.add_morphism( list_morph_to_vec_edittree );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue