public LNodeList EliminateSequenceExpressions(LNodeList stmts, bool isDeclContext) { return(stmts.SmartSelectMany(stmt => { /* * // Optimization: scan find out whether this construct has any block * // expressions. If not, skip it. * hasBlockExprs = false; * stmt.ReplaceRecursive(new Func<LNode, Maybe<LNode>>(n => { * if (!hasBlockExprs) * hasBlockExprs = n.IsCall && ( * (n.Calls(S.ColonColon, 2) && n.Args[1].IsId) || * (n.Calls(S.Var, 2) && n.AttrNamed(S.Out) != null) || * (n.Calls(S.In, 2) && n.Args[1].Calls(S.Braces))); * return hasBlockExprs ? n : null; * })); * if (!hasBlockExprs) * return stmt; */ LNode result = EliminateSequenceExpressions(stmt, isDeclContext); if (result != stmt) { if (result.Calls(sy__numrunSequence)) { return result.Args; } } _arrayOf1[0] = result; return _arrayOf1; })); }