Discovered main error was a result of not handling epsilon productions. Currently working on a recursive solution for handling these.