public override object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { // fix default visibility of inner classes if (currentTypeDeclaration != null && (delegateDeclaration.Modifier & Modifiers.Visibility) == 0) delegateDeclaration.Modifier |= Modifiers.Public; return base.VisitDelegateDeclaration(delegateDeclaration, data); }
public override object VisitEventDeclaration(EventDeclaration eventDeclaration, object data) { if (!eventDeclaration.HasAddRegion && !eventDeclaration.HasRaiseRegion && !eventDeclaration.HasRemoveRegion) { if (eventDeclaration.TypeReference.IsNull) { DelegateDeclaration dd = new DelegateDeclaration(eventDeclaration.Modifier, null); dd.Name = eventDeclaration.Name + "EventHandler"; dd.Parameters = eventDeclaration.Parameters; dd.ReturnType = new TypeReference("System.Void", true); dd.Parent = eventDeclaration.Parent; eventDeclaration.Parameters = null; InsertAfterSibling(eventDeclaration, dd); eventDeclaration.TypeReference = new TypeReference(dd.Name); } } return base.VisitEventDeclaration(eventDeclaration, data); }
public virtual object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { Debug.Assert((delegateDeclaration != null)); Debug.Assert((delegateDeclaration.Attributes != null)); Debug.Assert((delegateDeclaration.ReturnType != null)); Debug.Assert((delegateDeclaration.Parameters != null)); Debug.Assert((delegateDeclaration.Templates != null)); foreach (AttributeSection o in delegateDeclaration.Attributes) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } delegateDeclaration.ReturnType.AcceptVisitor(this, data); foreach (ParameterDeclarationExpression o in delegateDeclaration.Parameters) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } foreach (TemplateDefinition o in delegateDeclaration.Templates) { Debug.Assert(o != null); o.AcceptVisitor(this, data); } return null; }
void TypeDecl( #line 362 "Frames/cs.ATG" ModifierList m, List<AttributeSection> attributes) { #line 364 "Frames/cs.ATG" TypeReference type; List<TypeReference> names; List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>(); string name; List<TemplateDefinition> templates; if (la.kind == 59) { #line 370 "Frames/cs.ATG" m.Check(Modifiers.Classes); lexer.NextToken(); #line 371 "Frames/cs.ATG" TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); templates = newType.Templates; compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.StartLocation = m.GetDeclarationLocation(t.Location); newType.Type = Types.Class; Identifier(); #line 379 "Frames/cs.ATG" newType.Name = t.val; if (la.kind == 23) { TypeParameterList( #line 382 "Frames/cs.ATG" templates); } if (la.kind == 9) { ClassBase( #line 384 "Frames/cs.ATG" out names); #line 384 "Frames/cs.ATG" newType.BaseTypes = names; } while (la.kind == 127) { TypeParameterConstraintsClause( #line 387 "Frames/cs.ATG" templates); } #line 389 "Frames/cs.ATG" newType.BodyStartLocation = t.EndLocation; Expect(16); ClassBody(); Expect(17); if (la.kind == 11) { lexer.NextToken(); } #line 393 "Frames/cs.ATG" newType.EndLocation = t.EndLocation; compilationUnit.BlockEnd(); } else if (StartOf(9)) { #line 396 "Frames/cs.ATG" m.Check(Modifiers.StructsInterfacesEnumsDelegates); if (la.kind == 109) { lexer.NextToken(); #line 397 "Frames/cs.ATG" TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); templates = newType.Templates; newType.StartLocation = m.GetDeclarationLocation(t.Location); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = Types.Struct; Identifier(); #line 404 "Frames/cs.ATG" newType.Name = t.val; if (la.kind == 23) { TypeParameterList( #line 407 "Frames/cs.ATG" templates); } if (la.kind == 9) { StructInterfaces( #line 409 "Frames/cs.ATG" out names); #line 409 "Frames/cs.ATG" newType.BaseTypes = names; } while (la.kind == 127) { TypeParameterConstraintsClause( #line 412 "Frames/cs.ATG" templates); } #line 415 "Frames/cs.ATG" newType.BodyStartLocation = t.EndLocation; StructBody(); if (la.kind == 11) { lexer.NextToken(); } #line 417 "Frames/cs.ATG" newType.EndLocation = t.EndLocation; compilationUnit.BlockEnd(); } else if (la.kind == 83) { lexer.NextToken(); #line 421 "Frames/cs.ATG" TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); templates = newType.Templates; compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.StartLocation = m.GetDeclarationLocation(t.Location); newType.Type = Types.Interface; Identifier(); #line 428 "Frames/cs.ATG" newType.Name = t.val; if (la.kind == 23) { TypeParameterList( #line 431 "Frames/cs.ATG" templates); } if (la.kind == 9) { InterfaceBase( #line 433 "Frames/cs.ATG" out names); #line 433 "Frames/cs.ATG" newType.BaseTypes = names; } while (la.kind == 127) { TypeParameterConstraintsClause( #line 436 "Frames/cs.ATG" templates); } #line 438 "Frames/cs.ATG" newType.BodyStartLocation = t.EndLocation; InterfaceBody(); if (la.kind == 11) { lexer.NextToken(); } #line 440 "Frames/cs.ATG" newType.EndLocation = t.EndLocation; compilationUnit.BlockEnd(); } else if (la.kind == 68) { lexer.NextToken(); #line 444 "Frames/cs.ATG" TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.StartLocation = m.GetDeclarationLocation(t.Location); newType.Type = Types.Enum; Identifier(); #line 450 "Frames/cs.ATG" newType.Name = t.val; if (la.kind == 9) { lexer.NextToken(); IntegralType( #line 451 "Frames/cs.ATG" out name); #line 451 "Frames/cs.ATG" newType.BaseTypes.Add(new TypeReference(name, true)); } #line 453 "Frames/cs.ATG" newType.BodyStartLocation = t.EndLocation; EnumBody(); if (la.kind == 11) { lexer.NextToken(); } #line 455 "Frames/cs.ATG" newType.EndLocation = t.EndLocation; compilationUnit.BlockEnd(); } else { lexer.NextToken(); #line 459 "Frames/cs.ATG" DelegateDeclaration delegateDeclr = new DelegateDeclaration(m.Modifier, attributes); templates = delegateDeclr.Templates; delegateDeclr.StartLocation = m.GetDeclarationLocation(t.Location); if ( #line 463 "Frames/cs.ATG" NotVoidPointer()) { Expect(123); #line 463 "Frames/cs.ATG" delegateDeclr.ReturnType = new TypeReference("System.Void", true); } else if (StartOf(10)) { Type( #line 464 "Frames/cs.ATG" out type); #line 464 "Frames/cs.ATG" delegateDeclr.ReturnType = type; } else SynErr(152); Identifier(); #line 466 "Frames/cs.ATG" delegateDeclr.Name = t.val; if (la.kind == 23) { TypeParameterList( #line 469 "Frames/cs.ATG" templates); } Expect(20); if (StartOf(11)) { FormalParameterList( #line 471 "Frames/cs.ATG" p); #line 471 "Frames/cs.ATG" delegateDeclr.Parameters = p; } Expect(21); while (la.kind == 127) { TypeParameterConstraintsClause( #line 475 "Frames/cs.ATG" templates); } Expect(11); #line 477 "Frames/cs.ATG" delegateDeclr.EndLocation = t.EndLocation; compilationUnit.AddChild(delegateDeclr); } } else SynErr(153); }
public virtual object TrackedVisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { return base.VisitDelegateDeclaration(delegateDeclaration, data); }
public sealed override object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { this.BeginVisit(delegateDeclaration); object result = this.TrackedVisitDelegateDeclaration(delegateDeclaration, data); this.EndVisit(delegateDeclaration); return result; }
public override object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { // fix default inner type visibility if (currentType != null && (delegateDeclaration.Modifier & Modifiers.Visibility) == 0) delegateDeclaration.Modifier |= Modifiers.Private; return base.VisitDelegateDeclaration(delegateDeclaration, data); }
void NonModuleDeclaration( #line 424 "VBNET.ATG" ModifierList m, List<AttributeSection> attributes) { #line 426 "VBNET.ATG" TypeReference typeRef = null; List<TypeReference> baseInterfaces = null; switch (la.kind) { case 71: { #line 429 "VBNET.ATG" m.Check(Modifiers.Classes); lexer.NextToken(); #line 432 "VBNET.ATG" TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); newType.StartLocation = t.Location; compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = ClassType.Class; Identifier(); #line 439 "VBNET.ATG" newType.Name = t.val; TypeParameterList( #line 440 "VBNET.ATG" newType.Templates); EndOfStmt(); #line 442 "VBNET.ATG" newType.BodyStartLocation = t.Location; if (la.kind == 127) { ClassBaseType( #line 443 "VBNET.ATG" out typeRef); #line 443 "VBNET.ATG" SafeAdd(newType, newType.BaseTypes, typeRef); } while (la.kind == 123) { TypeImplementsClause( #line 444 "VBNET.ATG" out baseInterfaces); #line 444 "VBNET.ATG" newType.BaseTypes.AddRange(baseInterfaces); } ClassBody( #line 445 "VBNET.ATG" newType); Expect(100); Expect(71); #line 446 "VBNET.ATG" newType.EndLocation = t.EndLocation; EndOfStmt(); #line 449 "VBNET.ATG" compilationUnit.BlockEnd(); break; } case 141: { lexer.NextToken(); #line 453 "VBNET.ATG" m.Check(Modifiers.VBModules); TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.StartLocation = m.GetDeclarationLocation(t.Location); newType.Type = ClassType.Module; Identifier(); #line 460 "VBNET.ATG" newType.Name = t.val; EndOfStmt(); #line 462 "VBNET.ATG" newType.BodyStartLocation = t.Location; ModuleBody( #line 463 "VBNET.ATG" newType); #line 465 "VBNET.ATG" compilationUnit.BlockEnd(); break; } case 194: { lexer.NextToken(); #line 469 "VBNET.ATG" m.Check(Modifiers.VBStructures); TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.StartLocation = m.GetDeclarationLocation(t.Location); newType.Type = ClassType.Struct; Identifier(); #line 476 "VBNET.ATG" newType.Name = t.val; TypeParameterList( #line 477 "VBNET.ATG" newType.Templates); EndOfStmt(); #line 479 "VBNET.ATG" newType.BodyStartLocation = t.Location; while (la.kind == 123) { TypeImplementsClause( #line 480 "VBNET.ATG" out baseInterfaces); #line 480 "VBNET.ATG" newType.BaseTypes.AddRange(baseInterfaces); } StructureBody( #line 481 "VBNET.ATG" newType); #line 483 "VBNET.ATG" compilationUnit.BlockEnd(); break; } case 102: { lexer.NextToken(); #line 488 "VBNET.ATG" m.Check(Modifiers.VBEnums); TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); newType.StartLocation = m.GetDeclarationLocation(t.Location); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = ClassType.Enum; Identifier(); #line 496 "VBNET.ATG" newType.Name = t.val; if (la.kind == 50) { lexer.NextToken(); NonArrayTypeName( #line 497 "VBNET.ATG" out typeRef, false); #line 497 "VBNET.ATG" SafeAdd(newType, newType.BaseTypes, typeRef); } EndOfStmt(); #line 499 "VBNET.ATG" newType.BodyStartLocation = t.Location; EnumBody( #line 500 "VBNET.ATG" newType); #line 502 "VBNET.ATG" compilationUnit.BlockEnd(); break; } case 129: { lexer.NextToken(); #line 507 "VBNET.ATG" m.Check(Modifiers.VBInterfacs); TypeDeclaration newType = new TypeDeclaration(m.Modifier, attributes); newType.StartLocation = m.GetDeclarationLocation(t.Location); compilationUnit.AddChild(newType); compilationUnit.BlockStart(newType); newType.Type = ClassType.Interface; Identifier(); #line 514 "VBNET.ATG" newType.Name = t.val; TypeParameterList( #line 515 "VBNET.ATG" newType.Templates); EndOfStmt(); #line 517 "VBNET.ATG" newType.BodyStartLocation = t.Location; while (la.kind == 127) { InterfaceBase( #line 518 "VBNET.ATG" out baseInterfaces); #line 518 "VBNET.ATG" newType.BaseTypes.AddRange(baseInterfaces); } InterfaceBody( #line 519 "VBNET.ATG" newType); #line 521 "VBNET.ATG" compilationUnit.BlockEnd(); break; } case 90: { lexer.NextToken(); #line 526 "VBNET.ATG" m.Check(Modifiers.VBDelegates); DelegateDeclaration delegateDeclr = new DelegateDeclaration(m.Modifier, attributes); delegateDeclr.ReturnType = new TypeReference("System.Void", true); delegateDeclr.StartLocation = m.GetDeclarationLocation(t.Location); List<ParameterDeclarationExpression> p = new List<ParameterDeclarationExpression>(); if (la.kind == 195) { lexer.NextToken(); Identifier(); #line 533 "VBNET.ATG" delegateDeclr.Name = t.val; TypeParameterList( #line 534 "VBNET.ATG" delegateDeclr.Templates); if (la.kind == 25) { lexer.NextToken(); if (StartOf(4)) { FormalParameterList( #line 535 "VBNET.ATG" p); } Expect(26); #line 535 "VBNET.ATG" delegateDeclr.Parameters = p; } } else if (la.kind == 114) { lexer.NextToken(); Identifier(); #line 537 "VBNET.ATG" delegateDeclr.Name = t.val; TypeParameterList( #line 538 "VBNET.ATG" delegateDeclr.Templates); if (la.kind == 25) { lexer.NextToken(); if (StartOf(4)) { FormalParameterList( #line 539 "VBNET.ATG" p); } Expect(26); #line 539 "VBNET.ATG" delegateDeclr.Parameters = p; } if (la.kind == 50) { lexer.NextToken(); #line 540 "VBNET.ATG" TypeReference type; TypeName( #line 540 "VBNET.ATG" out type); #line 540 "VBNET.ATG" delegateDeclr.ReturnType = type; } } else SynErr(231); #line 542 "VBNET.ATG" delegateDeclr.EndLocation = t.EndLocation; EndOfStmt(); #line 545 "VBNET.ATG" compilationUnit.AddChild(delegateDeclr); break; } default: SynErr(232); break; } }
public virtual object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { Debug.Assert((delegateDeclaration != null)); Debug.Assert((delegateDeclaration.Attributes != null)); Debug.Assert((delegateDeclaration.ReturnType != null)); Debug.Assert((delegateDeclaration.Parameters != null)); Debug.Assert((delegateDeclaration.Templates != null)); for (int i = 0; i < delegateDeclaration.Attributes.Count; i++) { AttributeSection o = delegateDeclaration.Attributes[i]; Debug.Assert(o != null); nodeStack.Push(o); o.AcceptVisitor(this, data); o = (AttributeSection)nodeStack.Pop(); if (o == null) delegateDeclaration.Attributes.RemoveAt(i--); else delegateDeclaration.Attributes[i] = o; } nodeStack.Push(delegateDeclaration.ReturnType); delegateDeclaration.ReturnType.AcceptVisitor(this, data); delegateDeclaration.ReturnType = ((TypeReference)(nodeStack.Pop())); for (int i = 0; i < delegateDeclaration.Parameters.Count; i++) { ParameterDeclarationExpression o = delegateDeclaration.Parameters[i]; Debug.Assert(o != null); nodeStack.Push(o); o.AcceptVisitor(this, data); o = (ParameterDeclarationExpression)nodeStack.Pop(); if (o == null) delegateDeclaration.Parameters.RemoveAt(i--); else delegateDeclaration.Parameters[i] = o; } for (int i = 0; i < delegateDeclaration.Templates.Count; i++) { TemplateDefinition o = delegateDeclaration.Templates[i]; Debug.Assert(o != null); nodeStack.Push(o); o.AcceptVisitor(this, data); o = (TemplateDefinition)nodeStack.Pop(); if (o == null) delegateDeclaration.Templates.RemoveAt(i--); else delegateDeclaration.Templates[i] = o; } return null; }
public virtual object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { throw new global::System.NotImplementedException("DelegateDeclaration"); }
public override object VisitDelegateDeclaration(DelegateDeclaration delegateDeclaration, object data) { CodeTypeDelegate codeTypeDelegate = new CodeTypeDelegate(delegateDeclaration.Name); codeTypeDelegate.Attributes = ConvMemberAttributes(delegateDeclaration.Modifier); codeTypeDelegate.ReturnType = ConvType(delegateDeclaration.ReturnType); foreach (ParameterDeclarationExpression parameter in delegateDeclaration.Parameters) { codeTypeDelegate.Parameters.Add((CodeParameterDeclarationExpression)VisitParameterDeclarationExpression(parameter, data)); } if (typeDeclarations.Count > 0) { typeDeclarations.Peek().Members.Add(codeTypeDelegate); } else { namespaceDeclarations.Peek().Types.Add(codeTypeDelegate); } return null; }