예제 #1
0
        public override object VisitQueryExpressionJoinClause(QueryExpressionJoinClause joinClause, object data)
        {
            if (string.IsNullOrEmpty(joinClause.IntoIdentifier))
            {
                AddVariable(joinClause.Type, joinClause.Identifier,
                            joinClause.StartLocation, CurrentEndLocation,
                            false, true, joinClause.InExpression, null);
            }
            else
            {
                AddVariable(joinClause.Type, joinClause.Identifier,
                            joinClause.StartLocation, joinClause.EndLocation,
                            false, true, joinClause.InExpression, null);

                AddVariable(joinClause.Type, joinClause.IntoIdentifier,
                            joinClause.StartLocation, CurrentEndLocation,
                            false, false, joinClause.InExpression, null);
            }
            return(base.VisitQueryExpressionJoinClause(joinClause, data));
        }
예제 #2
0
			public override object Visit (Mono.CSharp.Linq.GroupJoin groupJoin)
			{
				var result = new QueryExpressionJoinClause ();
				var location = LocationsBag.GetLocations (groupJoin);
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[0]), "join".Length), QueryExpressionJoinClause.JoinKeywordRole);
				
				result.AddChild (new Identifier (groupJoin.IntoVariable.Value, Convert (groupJoin.IntoVariable.Location)));
				
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[1]), "in".Length), QueryExpressionJoinClause.InKeywordRole);
				
				result.AddChild ((INode)groupJoin.Expr.Accept (this), QueryExpressionJoinClause.Roles.Expression);
				
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[2]), "on".Length), QueryExpressionJoinClause.OnKeywordRole);
				// TODO: on expression
				
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[3]), "equals".Length), QueryExpressionJoinClause.EqualsKeywordRole);
				// TODO: equals expression
				
				if (location != null)
					result.AddChild (new CSharpTokenNode (Convert (location[4]), "into".Length), QueryExpressionJoinClause.IntoKeywordRole);
				
				result.AddChild (new Identifier (groupJoin.IntoVariable.Value, Convert (groupJoin.IntoVariable.Location)));
				return result;
			}
예제 #3
0
 public object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data)
 {
     AddError(queryExpressionJoinClause, "QueryExpressionJoinClause is not supported.");
     return(null);
 }
예제 #4
0
		public override object VisitQueryExpressionJoinClause(QueryExpressionJoinClause joinClause, object data)
		{
			if (string.IsNullOrEmpty(joinClause.IntoIdentifier)) {
				AddVariable(joinClause.Type, joinClause.Identifier,
				            joinClause.StartLocation, CurrentEndLocation,
				            false, true, joinClause.InExpression, null);
			} else {
				AddVariable(joinClause.Type, joinClause.Identifier,
				            joinClause.StartLocation, joinClause.EndLocation,
				            false, true, joinClause.InExpression, null);
				
				AddVariable(joinClause.Type, joinClause.IntoIdentifier,
				            joinClause.StartLocation, CurrentEndLocation,
				            false, false, joinClause.InExpression, null);
			}
			return base.VisitQueryExpressionJoinClause(joinClause, data);
		}
예제 #5
0
 public virtual object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data)
 {
     throw new global::System.NotImplementedException("QueryExpressionJoinClause");
 }
예제 #6
0
	void QueryExpressionJoinClause(
#line  2422 "cs.ATG" 
out QueryExpressionJoinClause jc) {

#line  2423 "cs.ATG" 
		jc = new QueryExpressionJoinClause(); jc.StartLocation = la.Location; 
		Expression expr;
		
		Expect(142);
		QueryExpressionFromOrJoinClause(
#line  2428 "cs.ATG" 
jc);
		Expect(143);
		Expr(
#line  2430 "cs.ATG" 
out expr);

#line  2430 "cs.ATG" 
		jc.OnExpression = expr; 
		Expect(144);
		Expr(
#line  2432 "cs.ATG" 
out expr);

#line  2432 "cs.ATG" 
		jc.EqualsExpression = expr; 
		if (la.kind == 136) {
			lexer.NextToken();
			Identifier();

#line  2434 "cs.ATG" 
			jc.IntoIdentifier = t.val; 
		}

#line  2436 "cs.ATG" 
		jc.EndLocation = t.EndLocation; 
	}
예제 #7
0
 public override object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data)
 {
     return(base.VisitQueryExpressionJoinClause(queryExpressionJoinClause, data));
 }
 public object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data)
 {
     throw new NotImplementedException();
 }
예제 #9
0
		public virtual object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
			Debug.Assert((queryExpressionJoinClause != null));
			Debug.Assert((queryExpressionJoinClause.Type != null));
			Debug.Assert((queryExpressionJoinClause.InExpression != null));
			Debug.Assert((queryExpressionJoinClause.OnExpression != null));
			Debug.Assert((queryExpressionJoinClause.EqualsExpression != null));
			queryExpressionJoinClause.Type.AcceptVisitor(this, data);
			queryExpressionJoinClause.InExpression.AcceptVisitor(this, data);
			queryExpressionJoinClause.OnExpression.AcceptVisitor(this, data);
			return queryExpressionJoinClause.EqualsExpression.AcceptVisitor(this, data);
		}
 private bool IsMatch(QueryExpressionJoinClause left, QueryExpressionJoinClause data)
 {
     return(left.IntoIdentifier == data.IntoIdentifier);
 }
		public virtual object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
			throw new global::System.NotImplementedException("QueryExpressionJoinClause");
		}
		public virtual object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
			Debug.Assert((queryExpressionJoinClause != null));
			Debug.Assert((queryExpressionJoinClause.Type != null));
			Debug.Assert((queryExpressionJoinClause.InExpression != null));
			Debug.Assert((queryExpressionJoinClause.OnExpression != null));
			Debug.Assert((queryExpressionJoinClause.EqualsExpression != null));
			nodeStack.Push(queryExpressionJoinClause.Type);
			queryExpressionJoinClause.Type.AcceptVisitor(this, data);
			queryExpressionJoinClause.Type = ((TypeReference)(nodeStack.Pop()));
			nodeStack.Push(queryExpressionJoinClause.InExpression);
			queryExpressionJoinClause.InExpression.AcceptVisitor(this, data);
			queryExpressionJoinClause.InExpression = ((Expression)(nodeStack.Pop()));
			nodeStack.Push(queryExpressionJoinClause.OnExpression);
			queryExpressionJoinClause.OnExpression.AcceptVisitor(this, data);
			queryExpressionJoinClause.OnExpression = ((Expression)(nodeStack.Pop()));
			nodeStack.Push(queryExpressionJoinClause.EqualsExpression);
			queryExpressionJoinClause.EqualsExpression.AcceptVisitor(this, data);
			queryExpressionJoinClause.EqualsExpression = ((Expression)(nodeStack.Pop()));
			return null;
		}
		public sealed override object VisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
			BeginVisit(queryExpressionJoinClause);
			object result = TrackedVisitQueryExpressionJoinClause(queryExpressionJoinClause, data);
			EndVisit(queryExpressionJoinClause);
			return result;
		}
		public virtual object TrackedVisitQueryExpressionJoinClause(QueryExpressionJoinClause queryExpressionJoinClause, object data) {
			return base.VisitQueryExpressionJoinClause(queryExpressionJoinClause, data);
		}