void CollectionOrObjectInitializer( #line 1443 "Frames/cs.ATG" out Expression outExpr) { #line 1445 "Frames/cs.ATG" Expression expr = null; CollectionInitializerExpression initializer = new CollectionInitializerExpression(); Expect(16); #line 1449 "Frames/cs.ATG" initializer.StartLocation = t.Location; if (StartOf(31)) { ObjectPropertyInitializerOrVariableInitializer( #line 1450 "Frames/cs.ATG" out expr); #line 1451 "Frames/cs.ATG" SafeAdd(initializer, initializer.CreateExpressions, expr); while ( #line 1452 "Frames/cs.ATG" NotFinalComma()) { Expect(14); ObjectPropertyInitializerOrVariableInitializer( #line 1453 "Frames/cs.ATG" out expr); #line 1454 "Frames/cs.ATG" SafeAdd(initializer, initializer.CreateExpressions, expr); } if (la.kind == 14) { lexer.NextToken(); } } Expect(17); #line 1458 "Frames/cs.ATG" initializer.EndLocation = t.Location; outExpr = initializer; }
public virtual object VisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) { Debug.Assert((collectionInitializerExpression != null)); Debug.Assert((collectionInitializerExpression.CreateExpressions != null)); foreach (Expression o in collectionInitializerExpression.CreateExpressions) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } return null; }
public virtual object TrackedVisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) { return base.VisitCollectionInitializerExpression(collectionInitializerExpression, data); }
void CollectionInitializer( #line 1425 "Frames/cs.ATG" out Expression outExpr) { #line 1427 "Frames/cs.ATG" Expression expr = null; CollectionInitializerExpression initializer = new CollectionInitializerExpression(); Expect(16); #line 1431 "Frames/cs.ATG" initializer.StartLocation = t.Location; if (StartOf(31)) { VariableInitializer( #line 1432 "Frames/cs.ATG" out expr); #line 1433 "Frames/cs.ATG" SafeAdd(initializer, initializer.CreateExpressions, expr); while ( #line 1434 "Frames/cs.ATG" NotFinalComma()) { Expect(14); VariableInitializer( #line 1435 "Frames/cs.ATG" out expr); #line 1436 "Frames/cs.ATG" SafeAdd(initializer, initializer.CreateExpressions, expr); } if (la.kind == 14) { lexer.NextToken(); } } Expect(17); #line 1440 "Frames/cs.ATG" initializer.EndLocation = t.Location; outExpr = initializer; }
void CollectionInitializer( #line 1511 "VBNET.ATG" out Expression outExpr) { #line 1513 "VBNET.ATG" Expression expr = null; CollectionInitializerExpression initializer = new CollectionInitializerExpression(); Expect(23); if (StartOf(30)) { VariableInitializer( #line 1518 "VBNET.ATG" out expr); #line 1520 "VBNET.ATG" if (expr != null) { initializer.CreateExpressions.Add(expr); } while ( #line 1523 "VBNET.ATG" NotFinalComma()) { Expect(12); VariableInitializer( #line 1523 "VBNET.ATG" out expr); #line 1524 "VBNET.ATG" if (expr != null) { initializer.CreateExpressions.Add(expr); } } } Expect(24); #line 1527 "VBNET.ATG" outExpr = initializer; }
public sealed override object VisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) { this.BeginVisit(collectionInitializerExpression); object result = this.TrackedVisitCollectionInitializerExpression(collectionInitializerExpression, data); this.EndVisit(collectionInitializerExpression); return result; }
IType CreateAnonymousClass (CollectionInitializerExpression initializer) { DomType result; if (!anonymousTypes.TryGetValue (initializer, out result)) { result = new AnonymousType (); result.SourceProjectDom = resolver.Dom; foreach (Expression expr in initializer.CreateExpressions) { var oldPos = resolver.ResolvePosition; if (!expr.StartLocation.IsEmpty) resolver.resolvePosition = new DomLocation (expr.StartLocation.Line + resolver.CallingMember.Location.Line, expr.StartLocation.Column); DomProperty newProperty = new DomProperty (GetAnonymousTypeFieldName (expr), MonoDevelop.Projects.Dom.Modifiers.Public, DomLocation.Empty, DomRegion.Empty, ResolveType (expr)); newProperty.DeclaringType = result; result.Add (newProperty); resolver.resolvePosition = oldPos; } anonymousTypes[initializer] = result; } return result; }
void ObjectCreateExpression( #line 1935 "VBNET.ATG" out Expression oce) { #line 1937 "VBNET.ATG" TypeReference type = null; Expression initializer = null; List<Expression> arguments = null; ArrayList dimensions = null; oce = null; bool canBeNormal; bool canBeReDim; Expect(148); if (StartOf(7)) { NonArrayTypeName( #line 1945 "VBNET.ATG" out type, false); if (la.kind == 25) { lexer.NextToken(); NormalOrReDimArgumentList( #line 1946 "VBNET.ATG" out arguments, out canBeNormal, out canBeReDim); Expect(26); if (la.kind == 23 || #line 1947 "VBNET.ATG" la.kind == Tokens.OpenParenthesis) { if ( #line 1947 "VBNET.ATG" la.kind == Tokens.OpenParenthesis) { ArrayTypeModifiers( #line 1948 "VBNET.ATG" out dimensions); CollectionInitializer( #line 1949 "VBNET.ATG" out initializer); } else { CollectionInitializer( #line 1950 "VBNET.ATG" out initializer); } } #line 1952 "VBNET.ATG" if (canBeReDim && !canBeNormal && initializer == null) initializer = new CollectionInitializerExpression(); } } #line 1956 "VBNET.ATG" if (initializer == null) { oce = new ObjectCreateExpression(type, arguments); } else { if (dimensions == null) dimensions = new ArrayList(); dimensions.Insert(0, (arguments == null) ? 0 : Math.Max(arguments.Count - 1, 0)); type.RankSpecifier = (int[])dimensions.ToArray(typeof(int)); ArrayCreateExpression ace = new ArrayCreateExpression(type, initializer as CollectionInitializerExpression); ace.Arguments = arguments; oce = ace; } if (la.kind == 218) { #line 1970 "VBNET.ATG" NamedArgumentExpression memberInitializer = null; lexer.NextToken(); #line 1974 "VBNET.ATG" CollectionInitializerExpression memberInitializers = new CollectionInitializerExpression(); memberInitializers.StartLocation = la.Location; Expect(23); MemberInitializer( #line 1978 "VBNET.ATG" out memberInitializer); #line 1979 "VBNET.ATG" memberInitializers.CreateExpressions.Add(memberInitializer); while (la.kind == 12) { lexer.NextToken(); MemberInitializer( #line 1981 "VBNET.ATG" out memberInitializer); #line 1982 "VBNET.ATG" memberInitializers.CreateExpressions.Add(memberInitializer); } Expect(24); #line 1986 "VBNET.ATG" memberInitializers.EndLocation = t.Location; if(oce is ObjectCreateExpression) { ((ObjectCreateExpression)oce).ObjectInitializer = memberInitializers; } } }
public virtual object VisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) { Debug.Assert((collectionInitializerExpression != null)); Debug.Assert((collectionInitializerExpression.CreateExpressions != null)); for (int i = 0; i < collectionInitializerExpression.CreateExpressions.Count; i++) { Expression o = collectionInitializerExpression.CreateExpressions[i]; Debug.Assert(o != null); nodeStack.Push(o); o.AcceptVisitor(this, data); o = (Expression)nodeStack.Pop(); if (o == null) collectionInitializerExpression.CreateExpressions.RemoveAt(i--); else collectionInitializerExpression.CreateExpressions[i] = o; } return null; }
public override object VisitCollectionInitializerExpression (CollectionInitializerExpression collectionInitializerExpression, object data) { if (collectionInitializerExpression.CreateExpressions.Count == 0) return null; DomReturnType type = null; IType typeObject = null; for (int i = 0; i < collectionInitializerExpression.CreateExpressions.Count; i++) { DomReturnType curType = (DomReturnType)ResolveType (collectionInitializerExpression.CreateExpressions[i]); // if we found object or we have only one create expression we can stop if (curType.DecoratedFullName == DomReturnType.Object.DecoratedFullName || collectionInitializerExpression.CreateExpressions.Count == 1) { type = curType; break; } IType curTypeObject = resolver.Dom.GetType (curType); if (curTypeObject == null) continue; if (type == null || resolver.Dom.GetInheritanceTree (typeObject).Any (t => t.DecoratedFullName == curTypeObject.DecoratedFullName)) { type = curType; typeObject = curTypeObject; } } if (type != null) type.ArrayDimensions++; return CreateResult (type); }
public virtual object VisitCollectionInitializerExpression(CollectionInitializerExpression collectionInitializerExpression, object data) { throw new global::System.NotImplementedException("CollectionInitializerExpression"); }
public ObjectCreateExpression(TypeReference createType, List<Expression> parameters) { CreateType = createType; Parameters = parameters; objectInitializer = CollectionInitializerExpression.Null; }
public ArrayCreateExpression(TypeReference createType, CollectionInitializerExpression arrayInitializer) { CreateType = createType; ArrayInitializer = arrayInitializer; arguments = new List<Expression>(); }
public ArrayCreateExpression(TypeReference createType, List<Expression> arguments) { CreateType = createType; Arguments = arguments; arrayInitializer = CollectionInitializerExpression.Null; }
public ArrayCreateExpression(TypeReference createType) { CreateType = createType; arguments = new List<Expression>(); arrayInitializer = CollectionInitializerExpression.Null; }