Support using tab

This is related to #215 

Add following feature
- unit test
- variable type parameter

CC: @atomita