private static PythonModule GenerateModuleAsSnippets(SystemState state, CompilerContext context, Stmt body, string moduleName)
        {
            SuiteStmt           suite = body as SuiteStmt;
            SnippetModuleRunner smr   = new SnippetModuleRunner(moduleName, state);

            Debug.Assert(suite != null, "invalid statement");

            //  Convert document string into assignment
            if (suite.stmts.Length > 0)
            {
                ExprStmt es = suite.stmts[0] as ExprStmt;
                if (es != null)
                {
                    ConstantExpr ce = es.expr as ConstantExpr;
                    if (ce != null && ce.value is string)
                    {
                        suite.stmts[0] = new AssignStmt(new Expr[] { new NameExpr(Name.Make("__doc__")) }, ce);
                    }
                }
            }

            foreach (Stmt stmt in suite.stmts)
            {
                // GenerateSnippet will do the binding
                smr.AddSnippet(GenerateSnippet(context, stmt, moduleName, true));
            }
            return(smr.Module);
        }
 public virtual void PostWalk(SuiteStmt node)
 {
 }
 // SuiteStmt
 public virtual bool Walk(SuiteStmt node)
 {
     return(true);
 }