use Visitor Pattern to generte DScript