예제 #1
0
 public static ISourceElement LocateElement(SourceElementRequest request, AbstractNode node)
 {
     return(request.Syntax switch
     {
         InternalMethodSyntax method => LocateMethodMember(method, node),
         _ => throw new ArgumentException()
     });
예제 #2
0
 public ISourceElement FindElement(Parser.Model.SourceElementRequest request)
 {
     return(request.Syntax switch
     {
         InternalTypeSyntax type => new TypeNodeLocator(_rootNode, type.Type).Locate(),
         InternalMethodSyntax method => new MethodMemberLocator(_rootNode, method).Locate(),
         InternalFieldSyntax field => new FieldMemberLocator(_rootNode, field).Locate(),
         InternalPropertySyntax field => new PropertyMemberLocator(_rootNode, field).Locate(),
         InternalEventSyntax eventField => new EventMemberLocator(_rootNode, eventField).Locate(),
         _ => throw new ArgumentException()
     });
 public MethodMemberLocator(AbstractNode root, InternalMethodSyntax method) : base(root)
 {
     _syntax = method;
 }