private List<SyntaxToken> ExpandNestedMacro(NestedMacroExpansionLexer lexer)
{
var result = new List<SyntaxToken>();
SyntaxToken token;
while ((token = lexer.GetNextToken()) != null)
{
List<SyntaxToken> expandedTokens;
if (TryExpandMacro(token, lexer, out expandedTokens))
result.AddRange(expandedTokens);
else
result.Add(token);
}
return result;
}