I'm getting infinite recursion here. I'm sorry if this is obvious but I don't see what I'm doing wrong here. program() gets called from main, then program() calls declaration_list(), then declaration_list() calls declaration(). I don't see how in the function declaration_list it ever calls declaration_list() again when right before that it calls declaration(), and declaration() never calls declaration_list().
void declaration()
{
printf("declaration().\n");
}
void declaration_list()
{
printf("declaration_list().\n");
declaration();
declaration_list();
}
void program()
{
printf("In program().\n");
declaration_list();
}