From ba21246f4a5d4636379767ed3ae2c2b209015b87 Mon Sep 17 00:00:00 2001
From: Franck Dary <franck.dary@lis-lab.fr>
Date: Wed, 6 Nov 2019 11:14:02 +0100
Subject: [PATCH] Fixed oracle for sequential tagparser

---
 transition_machine/src/Oracle.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/transition_machine/src/Oracle.cpp b/transition_machine/src/Oracle.cpp
index 1283b7c..ccb2d6a 100644
--- a/transition_machine/src/Oracle.cpp
+++ b/transition_machine/src/Oracle.cpp
@@ -669,6 +669,21 @@ void Oracle::createDatabase()
         newState = "tagger";
         movement = lastIndexDone[newState]-c.getHead()+1;
         lastIndexDone[previousState] = c.getHead();
+        if (lastIndexDone[newState]+1 >= c.getTape("FORM").size())
+        {
+          newState = "morpho";
+          movement = lastIndexDone[newState]-c.getHead()+1;
+          if (lastIndexDone[newState]+1 >= c.getTape("FORM").size())
+          {
+            newState = "lemmatizer_rules";
+            movement = lastIndexDone["lemmatizer_case"]-c.getHead()+1;
+            if (lastIndexDone["lemmatizer_case"]+1 >= c.getTape("FORM").size())
+            {
+              newState = "parser";
+              movement = lastIndexDone[newState]-c.getHead()+1;
+            }
+          }
+        }
         if (c.endOfTapes())
         {
           newState = "parser";
-- 
GitLab