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 override string GetDocString() { ConstantExpr ce = expr as ConstantExpr; if (ce != null) { return(ce.value as string); } return(null); }
public virtual void PostWalk(ConstantExpr node) { }
// ConstantExpr public virtual bool Walk(ConstantExpr node) { return(false); }