internal static RequestSignature Parse(string signature) { var scanner = new Scanner(signature); var builder = ImmutableArray.CreateBuilder<Token>(); Token token; do { scanner.MoveNext(); token = scanner.CurrentToken; builder.Add(token); } while (token.Kind != TokenKind.End); var parser = new MemberSignatureParser(builder.ToImmutable()); try { return parser.Parse(); } catch (InvalidSignatureException) { return null; } }
internal static RequestSignature Parse(string signature) { var scanner = new Scanner(signature); var builder = ImmutableArray.CreateBuilder <Token>(); Token token; do { scanner.MoveNext(); token = scanner.CurrentToken; builder.Add(token); } while (token.Kind != TokenKind.End); var parser = new MemberSignatureParser(builder.ToImmutable()); try { return(parser.Parse()); } catch (InvalidSignatureException) { return(null); } }
internal override RequestSignature GetParsedSignature(DkmRuntimeFunctionResolutionRequest request) { return(MemberSignatureParser.Parse(request.FunctionName)); }