Skip to content
Snippets Groups Projects
Transition.hpp 977 B
Newer Older
  • Learn to ignore specific revisions
  • #ifndef TRANSITION__H
    #define TRANSITION__H
    
    #include <vector>
    
    #include "Action.hpp"
    
    
    class Transition
    {
      private :
    
    
      std::string name;
    
      std::string state;
    
      std::vector<Action> sequence;
    
      std::function<int(const Config & config)> cost;
    
      private :
    
      void initWrite(std::string colName, std::string object, std::string index, std::string value);
    
      void initAdd(std::string colName, std::string object, std::string index, std::string value);
    
      void initShift();
      void initLeft(std::string label);
      void initRight(std::string label);
      void initReduce();
    
    Franck Dary's avatar
    Franck Dary committed
      void initEOS();
    
      void initNothing();
    
      void initIgnoreChar();
      void initEndWord();
      void initAddCharToWord();
      void initSplitWord(std::vector<std::string> words);
    
    
      public :
    
      Transition(const std::string & name);
    
      void apply(Config & config);
      bool appliable(const Config & config) const;
      int getCost(const Config & config) const;
    
      const std::string & getName() const;