public void AddRangeVariable (SimpleMemberName name) { if (!CheckParentConflictName (this, name.Value, name.Location)) return; if (range_variables == null) range_variables = new List<SimpleMemberName> (); range_variables.Add (name); AddKnownVariable (name.Value, new RangeVariable (this, name.Location)); }
public SelectMany (QueryBlock block, SimpleMemberName identifier, Expression expr, Location loc) : base (block, identifier, expr, loc) { }
public TransparentParameter (Parameter parent, SimpleMemberName identifier) : base (ParameterNamePrefix + Counter++, identifier.Location) { Parent = parent; Identifier = identifier.Value; }
public Join (QueryBlock block, SimpleMemberName lt, Expression inner, QueryBlock outerSelector, QueryBlock innerSelector, Location loc) : base (block, lt, inner, loc) { this.outer_selector = outerSelector; this.inner_selector = innerSelector; }
public GroupJoin (QueryBlock block, SimpleMemberName lt, Expression inner, QueryBlock outerSelector, QueryBlock innerSelector, SimpleMemberName into, Location loc) : base (block, lt, inner, outerSelector, innerSelector, loc) { this.into = into; }
protected static Expression CreateRangeVariableType (ResolveContext rc, Parameter parameter, SimpleMemberName name, Expression init) { var args = new List<AnonymousTypeParameter> (2); args.Add (new AnonymousTypeParameter (parameter)); args.Add (new RangeAnonymousTypeParameter (init, name)); return new NewAnonymousType (args, rc.MemberContext.CurrentMemberDefinition.Parent, name.Location); }
public QueryStartClause (QueryBlock block, Expression expr, SimpleMemberName identifier, Location loc) : base (block, identifier, expr, loc) { block.AddRangeVariable (identifier); }
public RangeAnonymousTypeParameter (Expression initializer, SimpleMemberName parameter) : base (initializer, parameter.Value, parameter.Location) { }
protected ARangeVariableQueryClause (QueryBlock block, SimpleMemberName identifier, Expression expr, Location loc) : base (block, expr, loc) { range_variable = identifier; }
public QueryBlock(CompilerContext ctx, Block parent, ParametersCompiled parameters, SimpleMemberName lt, Location start) : base(ctx, parent, new ParametersCompiled (ctx, parameters [0].Clone (), new ImplicitQueryParameter (lt.Value, lt.Location)), start) { }
public void AddTransparentParameter(CompilerContext ctx, SimpleMemberName name) { base.CheckParentConflictName (this, name.Value, name.Location); parameters = new ParametersCompiled (ctx, new TransparentParameter (parameters, name)); }
public QueryBlock(CompilerContext ctx, Block parent, SimpleMemberName lt, Location start) : base(ctx, parent, new ParametersCompiled (ctx, new ImplicitQueryParameter (lt.Value, lt.Location)), start) { if (parent != null) base.CheckParentConflictName (parent.Toplevel, lt.Value, lt.Location); }
public SelectMany(ToplevelBlock block, SimpleMemberName lt, Expression expr) : base(block, expr) { this.lt = lt; }
public Let(ToplevelBlock block, TypeContainer container, SimpleMemberName identifier, Expression expr) : base(block, CreateRangeVariableType (block, container, identifier, expr)) { }
public Join(ToplevelBlock block, SimpleMemberName lt, Expression inner, ToplevelBlock outerSelector, ToplevelBlock innerSelector, Location loc) : base(block, inner) { this.lt = lt; this.outer_selector = outerSelector; this.inner_selector = innerSelector; }
protected static Expression CreateRangeVariableType(ToplevelBlock block, TypeContainer container, SimpleMemberName name, Expression init) { var args = new List<AnonymousTypeParameter> (2); args.Add (new AnonymousTypeParameter (block.Parameters [0])); args.Add (new RangeAnonymousTypeParameter (init, name)); return new NewAnonymousType (args, container, name.Location); }