private List <VPPMakro> ParseDefines(VPPTextParser parser) { int defIndex; List <VPPMakro> ret = new(); while ((defIndex = parser.Seek("#define")) != -1) { parser.Eat("#define"); parser.EatWhiteSpace(); string var = parser.EatWord(); parser.EatWhiteSpaceUntilNewLine(); if (parser.Is('(')) { ret.Add(ParseFuncDefine(defIndex, var, parser)); continue; } string value = "1"; if (parser.Is('\n')) { parser.Eat('\n'); parser.RemoveReverse(defIndex); } else { value = parser.EatUntilWhitespace(); parser.RemoveReverse(defIndex); } ret.Add( new VPPTextMakro(var, value, new List <VPPMakroParameter>()) ); } return(ret); }