private VPPMakro ParseFuncDefine(int start, string var, VPPTextParser parser) { parser.Eat('('); List <string> p = ParseList(parser, x => x.Is(')')); parser.Eat(')'); parser.EatWhiteSpace(); int pStart = parser.Eat('{'); int end = parser.FindClosing('{', '}'); parser.SetPosition(pStart + 1); string block = parser.Get(end - pStart - 1).Trim(); parser.SetPosition(start); parser.Remove(end + 1 - start); return(new VPPTextMakro(var, block, p.Select(x => new VPPMakroParameter { Name = x }).ToList())); }