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