Eu não criei nenhuma . Eu usei um switch() para as opções, dentro de um loop e fiz o necessário dentro de cada case. Cada case não ficou extenso e não senti a necessidade de separar tudo em funções para manipular a tabela de símbolos. Algum problema nisso? Talvez tenha perdido um pouco em modularidade, mas as únicas chamadas a funções são para manipular o conjunto mesmo.
Sem problemas criar novas funções, apenas documente bem essas novas funções. Criar novas funções não é problema algum, o problema é criá-las e deixar por isso mesmo.