je voudrais mettre en œuvre un EFM/analyseur « automate pushdown » pour cette syntaxe: parser with scopes and conditionals qui a déjà été « lexed » dans Finite State Machine parserC++ conception EFM et la propriété
Je donne les résultats suivants:
class State
{
public:
virtual State* event(const string &token);
State* deleteDaughter();
private:
A* m_parent;
A* m_daughter;
}
class SomeState : public State
{
public:
State* event(const std::string &token);
}
Avec B
event()
faisant (après beaucoup de if-elseif) return m_parent->deleteDaughter()
. Je sais que c'est poisson (et il se bloque), mais j'ai besoin de façon à retourner le parent State
de la fille State
et assurez-vous que la fille State
n'est pas fui.
Ma boucle d'événement ressemble à ceci:
while(somestringstream >> token)
state = state->event();
Avant de gronder la conception et le dernier morceau de code, j'ai essayé l'extension d'un exemple beaucoup trop simple de here, ce qui semble assez correct. Je déplace la partie décisionnelle vers les États eux-mêmes, pour plus de clarté et de concision. Je comprends qu'il ya beaucoup de livres sur ce sujet, mais je ne suis pas un informaticien/programmeur et je veux apprendre à le faire moi-même (bien sûr, avec l'aide de tous les gens sympathiques à SO). Si le concept n'est pas clair, veuillez demander. Merci!