void ComprehensionExpr(ElaExpression sel, out ElaComprehension exp) { var it = default(ElaGenerator); var ot = t; Expect(26); ComprehensionEntry(sel, out it); exp = new ElaComprehension(ot) { Generator = it }; }
void ParamList(out List<ElaExpression> list, out ElaComprehension comp, out ElaRange rng ) { var exp = default(ElaExpression); list = null; comp = null; rng = null; Expr(out exp); if (la.kind == 26 || la.kind == 56 || la.kind == 58) { if (la.kind == 26) { ComprehensionExpr(exp, out comp); } else if (la.kind == 58) { RangeExpr(exp, null, out rng); } else { var oexp = exp; Get(); Expr(out exp); if (la.kind == 58) { RangeExpr(oexp, exp, out rng); } else if (la.kind == 22 || la.kind == 56) { list = new List<ElaExpression>(); list.Add(oexp); list.Add(exp); while (la.kind == 56) { Get(); Expr(out exp); list.Add(exp); } } else SynErr(76); } } if (list == null && comp == null && rng == null && exp != null) { list = new List<ElaExpression>(); list.Add(exp); } }