private string MakeTryParseCall(ISyntaxPart fromPart, ISyntaxPart calledPart, string outName) { var args = new LinkedList <string>(); args.AddLast("lexer"); if (calledPart is DynamicToken) { if (fromPart is Stream s) { args.AddLast(this.MakeStringArrayInit(s.StopTokens.Select(x => x.Text))); } else { args.AddLast("new string[] { }"); } } args.AddLast($"out var {outName}"); return($"this.TryParse{calledPart.GetType().Name}({string.Join(", ", args.Select(x => x))})"); }
public SyntaxDefinitionClassInfoProvider(ISyntaxPart part) { this.part = part; this.Name = part.GetType().Name; }