add base for CLikePrinterVisitor
add gen.sh