From 4de8384380292f7ec7c4a1b73f42314a202beb6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Pecka?= <peckato1@fit.cvut.cz>
Date: Tue, 18 Mar 2014 10:05:25 +0100
Subject: [PATCH] Fix aconversions: Do not pop tokens before actual parsing

---
 aconversions/src/aconversion/ConversionHandler.cpp | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/aconversions/src/aconversion/ConversionHandler.cpp b/aconversions/src/aconversion/ConversionHandler.cpp
index bc8b8084bc..c7f8637b50 100644
--- a/aconversions/src/aconversion/ConversionHandler.cpp
+++ b/aconversions/src/aconversion/ConversionHandler.cpp
@@ -388,7 +388,8 @@ ConversionHandler::TFormalism ConversionHandler::parseFormalismFromTokens( void
         bool ll, rl, lr, rr;
         ll = rl = lr = rr = true;
 
-        UnknownGrammar grammar = GrammarParser::parse( m_tokens );
+        list<Token> tokens_copy = m_tokens;
+        UnknownGrammar grammar = GrammarParser::parse( tokens_copy );
 
         try
         {
@@ -398,6 +399,7 @@ ConversionHandler::TFormalism ConversionHandler::parseFormalismFromTokens( void
         {
             rr = false;
         }
+        if( rr ) return RIGHT_REGULAR_GRAMMAR;
 
         try
         {
@@ -407,6 +409,7 @@ ConversionHandler::TFormalism ConversionHandler::parseFormalismFromTokens( void
         {
             lr = false;
         }
+        if( lr ) return LEFT_REGULAR_GRAMMAR;
 
         try
         {
@@ -416,6 +419,7 @@ ConversionHandler::TFormalism ConversionHandler::parseFormalismFromTokens( void
         {
             rl = false;
         }
+        if( rl ) return RIGHT_LINEAR_GRAMMAR;
 
         try
         {
@@ -425,11 +429,7 @@ ConversionHandler::TFormalism ConversionHandler::parseFormalismFromTokens( void
         {
             ll = false;
         }
-
         if( ll ) return LEFT_LINEAR_GRAMMAR;
-        if( rl ) return RIGHT_LINEAR_GRAMMAR;
-        if( lr ) return LEFT_REGULAR_GRAMMAR;
-        if( rr ) return RIGHT_REGULAR_GRAMMAR;
     }
 
     throw AlibException( "ConversionHandler: Invalid input formalism." );
-- 
GitLab