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); }