From fc7f07cc7a86b5878ed45897cdf94961ef0d51f6 Mon Sep 17 00:00:00 2001 From: Franck Dary <franck.dary@lis-lab.fr> Date: Tue, 12 Mar 2019 18:23:55 +0100 Subject: [PATCH] Fixed bug related to undoing parser actions --- transition_machine/include/Config.hpp | 4 ++++ transition_machine/src/ActionBank.cpp | 2 ++ transition_machine/src/Config.cpp | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/transition_machine/include/Config.hpp b/transition_machine/include/Config.hpp index 7e5f8a2..a1e4a6c 100644 --- a/transition_machine/include/Config.hpp +++ b/transition_machine/include/Config.hpp @@ -336,6 +336,10 @@ class Config void setEntropy(float entropy); float getEntropy() const; void addToEntropy(float entropy); + /// \brief Print a column content for debug purpose. + /// + /// \param index Index of the column to print. + void printColumnInfos(unsigned int index); }; #endif diff --git a/transition_machine/src/ActionBank.cpp b/transition_machine/src/ActionBank.cpp index ed373d8..9306c79 100644 --- a/transition_machine/src/ActionBank.cpp +++ b/transition_machine/src/ActionBank.cpp @@ -354,6 +354,7 @@ std::vector<Action::BasicAction> ActionBank::str2sequence(const std::string & na auto apply = [](Config & c, Action::BasicAction & ba) { + ba.data = ""; auto & govs = c.getTape("GOV"); int b0 = c.getHead(); int rootIndex = -1; @@ -416,6 +417,7 @@ std::vector<Action::BasicAction> ActionBank::str2sequence(const std::string & na auto apply2 = [b2](Config & c, Action::BasicAction & ba) { + ba.data = ""; auto & labels = c.getTape("LABEL"); int b0 = c.getHead(); int rootIndex = -1; diff --git a/transition_machine/src/Config.cpp b/transition_machine/src/Config.cpp index 758716d..d733828 100644 --- a/transition_machine/src/Config.cpp +++ b/transition_machine/src/Config.cpp @@ -619,3 +619,11 @@ void Config::Tape::maskIndex(int index) ref.maskIndex(index); } +void Config::printColumnInfos(unsigned int index) +{ + for (auto & tape : tapes) + fprintf(stderr, "%s\t: %s\n", tape.getName().c_str(), tape[index-getHead()].c_str()); + + fprintf(stderr, "\n"); +} + -- GitLab