- Extensive Refactoring
- Shorten names.
- Use enum instead of using trait+downcast_ref.
- Minimize the dependency between lexer, parser and irgen.
- Try to eliminate the duplicated codes between lexer, parser and irgen.
- Use macro to clean up the messy code in parser.
- Implement typing system.
- Implement print() function.