The refactoring browser is based on a powerful rewrite engine which transforms AST. However it is quite cumbersome to write rewrite rules. There is a need to build a tool to help programmers defining their own transformation.
SmallLint contains a powerfull tree matching algorithm. It can be used to define code transformation. In fact
most of the refactorings are expressed using this parse tree matcher.
However it is difficult to use because the syntax is difficult to remember and understanding the impact of a syntactic elements is difficult. We propose to build a better tool to help the user to specify its transformations.
The tools should
- let the user copy and paste a method
- click on an expression (and by mapping it to its AST node)
- transform it into a meta variable
- several expressions can also be turned into special SmallLint meta variable.
The resulting expression should appears live and the user show see the code transformation on the fly.
We have collected a set of document describing smallLint. In addition the student will be able to participate to a book chapter.
Benefits to the Student
- learning AST
- learning AST transofrmation
- learning AST pattern matching
- User interface definition
Benefits to the Community
A tool that is cruelly missing.