My friend and I are working on this project for our Formal Languages and Automata class that consists in building a pushdown automaton. A part of the project that is bothering me is how to visualize the automaton in action.
What mean in visualizing is, for example, this, a non-deterministic finite automaton that accepts a*+(a.b)*. You can actually try it here. In the lower left corner there is a input field for the word you wanna try and on it’s right side there is a button that starts the process. For each letter being consumed you have to click once inside the canvas, or you can select the “Leitura automática” button for automatic reading. BTW, the source code is here, even though I don’t expect anyone to understand it, it is not well written and the documentation is almost non-existent (and it’s also written in Portuguese).
I read in the internet about a deterministic PA, but this approach with the single stack is not helpful if I wanna build automata that can follow multiple paths at once(like my finite non-pushdown one, that tests all possible paths at once, instead of trying one and backtracking if it fails). So I don't know if I'm in the right place, but my question is: how can I do something similar for a non-deterministic pushdown automata?