Skip to content

ohmrun/stx_lense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stx Lense

Functional lenses require macros or type constructors so if you drop down to a more homogenous object tree description you can implement them there.

This library is based on the paper A Language for Bi-Directional Tree Transformations and currently implements the following lenses over pml:

  LsId;//Id
  LsConstant(value:Null<V>,_default:Null<V>);//Constant
  LsSequence(l:LExpr<K,V>,r:LExpr<K,V>);//Sequence

  LsHoist(name:K);//Hoist
  LsPlunge(name:K);//Plunge
  
  LsXFork(pc:Cluster<K>,pa:Cluster<K>,lhs:LExpr<K,V>,rhs:LExpr<K,V>);//XFork
  LsMap(lense:LExpr<K,V>);//Map
  LsCopy(m:K,n:K);//Copy
  LsMerge(m:K,n:K);//Merge

  LsCCond(ccond:V,_true:LExpr<K,V>,_false:LExpr<K,V>);//Concrete Condition
  LsACond(ccond:V,acond:V,l:LExpr<K,V>,r:LExpr<K,V>);//Abstract Condition

About

[WIP] Implementation of bidirectional tree transforms over the PML datastructure.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages