From 9e90dea08fe2203f79809f8d4a423b180a045725 Mon Sep 17 00:00:00 2001 From: Philipp Paulweber Date: Sun, 7 May 2017 15:58:29 +0200 Subject: [PATCH] Symbol Resolve * fixed logger integration in the symbol resolver pass, due to an API change in the libstdhl::Logger implementation - see: https://github.com/ppaulweber/libstdhl/commit/84fe1dfbdfa017c1710db2f5e0ab6385f680722a - related to casm-lang/casm#22 --- src/analyze/SymbolResolverPass.cpp | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/src/analyze/SymbolResolverPass.cpp b/src/analyze/SymbolResolverPass.cpp index 0afd4ac11..87052ac37 100644 --- a/src/analyze/SymbolResolverPass.cpp +++ b/src/analyze/SymbolResolverPass.cpp @@ -61,19 +61,15 @@ class SymbolTableVisitor final : public RecursiveVisitor void visit( RuleDefinition& node ) override; void visit( EnumerationDefinition& node ) override; - u64 errors( void ) const; - Namespace::Ptr symboltable( void ) const; private: Logger& m_log; - u64 m_err; Namespace::Ptr m_symboltable; }; SymbolTableVisitor::SymbolTableVisitor( Logger& log ) : m_log( log ) -, m_err( 0 ) { } @@ -94,7 +90,6 @@ void SymbolTableVisitor::visit( FunctionDefinition& node ) auto symbol = m_symboltable->find( node ); const auto name = node.identifier()->name(); - m_err++; if( name.compare( "program" ) == 0 ) { m_log.error( @@ -121,7 +116,6 @@ void SymbolTableVisitor::visit( DerivedDefinition& node ) } catch( const std::domain_error& e ) { - m_err++; m_log.error( { node.sourceLocation() }, e.what() ); } RecursiveVisitor::visit( node ); @@ -135,7 +129,6 @@ void SymbolTableVisitor::visit( RuleDefinition& node ) } catch( const std::domain_error& e ) { - m_err++; m_log.error( { node.sourceLocation() }, e.what() ); } RecursiveVisitor::visit( node ); @@ -149,7 +142,6 @@ void SymbolTableVisitor::visit( EnumerationDefinition& node ) } catch( const std::domain_error& e ) { - m_err++; m_log.error( { node.sourceLocation() }, e.what() ); } RecursiveVisitor::visit( node ); @@ -160,11 +152,6 @@ Namespace::Ptr SymbolTableVisitor::symboltable( void ) const return m_symboltable; } -u64 SymbolTableVisitor::errors( void ) const -{ - return m_err; -} - // // SymbolResolveVisitor // @@ -185,14 +172,11 @@ class SymbolResolveVisitor final : public RecursiveVisitor void visit( LetRule& node ) override; void visit( ForallRule& node ) override; - u64 errors( void ) const; - private: void push( VariableDefinition& identifier ); void pop( VariableDefinition& identifier ); Logger& m_log; - u64 m_err; Namespace& m_symboltable; class Variable @@ -236,7 +220,6 @@ class SymbolResolveVisitor final : public RecursiveVisitor SymbolResolveVisitor::SymbolResolveVisitor( Logger& log, Namespace& symboltable ) : m_log( log ) -, m_err( 0 ) , m_symboltable( symboltable ) , m_maxNumberOfLocals( 0 ) { @@ -294,7 +277,6 @@ void SymbolResolveVisitor::visit( DirectCallExpression& node ) if( path.identifiers()->size() != 1 ) { - m_err++; m_log.error( { node.sourceLocation() }, "invalid relative path '" + path.path() + "' found" ); } @@ -356,7 +338,6 @@ void SymbolResolveVisitor::visit( DirectCallExpression& node ) } catch( const std::domain_error& e ) { - m_err++; m_log.error( { node.sourceLocation() }, e.what() ); } } @@ -375,7 +356,6 @@ void SymbolResolveVisitor::visit( DirectCallExpression& node ) } else { - m_err++; m_log.error( { node.sourceLocation() }, "invalid symbol '" + path.path() + "' found" ); } @@ -428,7 +408,6 @@ void SymbolResolveVisitor::push( VariableDefinition& node ) if( variable != m_variables.rend() ) { - m_err++; m_log.error( { node.sourceLocation() }, "symbol '" + name + "' already defined" ); } @@ -446,11 +425,6 @@ void SymbolResolveVisitor::pop( VariableDefinition& node ) m_variables.pop_back(); } -u64 SymbolResolveVisitor::errors( void ) const -{ - return m_err; -} - // // SymbolResolverPass // @@ -470,7 +444,7 @@ u1 SymbolResolverPass::run( libpass::PassResult& pr ) SymbolTableVisitor symTblVisitor( log ); specification->accept( symTblVisitor ); - const auto symTblErr = symTblVisitor.errors(); + const auto symTblErr = log.errors(); if( symTblErr ) { log.debug( @@ -481,7 +455,7 @@ u1 SymbolResolverPass::run( libpass::PassResult& pr ) SymbolResolveVisitor symResVisitor( log, *symTblVisitor.symboltable() ); specification->accept( symResVisitor ); - const auto symResErr = symResVisitor.errors(); + const auto symResErr = log.errors(); if( symResErr ) { log.debug( "found %lu error(s) during symbol resolving", symResErr );