blob: dae6b4a558e9b9fc21a0eafc472ecf713ba1540b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 CEA LIST.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Arnault Lapitre (CEA LIST) arnault.lapitre@cea.fr
* - Initial API and implementation
******************************************************************************/
#ifndef PARSER_PARSERMANAGER_H_
#define PARSER_PARSERMANAGER_H_
#include <fstream>
namespace sep
{
class System;
class WObject;
class WObjectManager;
class ParserManager
{
protected:
/**
* ATTRIBUTE
*/
std::string mFileLocation;
std::string mFilename;
std::size_t mErrorCount;
std::size_t mWarningCount;
std::string mExceptionMessage;
public:
/**
* CONSTRUCTOR
* Default
*/
ParserManager(const std::string & fileLocation);
/**
* DESTRUCTOR
*/
virtual ~ParserManager()
{
//!! NOTHING
}
/**
* mErrorCount
*/
inline std::size_t getErrorCount() const
{
return( mErrorCount );
}
inline bool hasSyntaxError() const
{
return( mErrorCount > 0 );
}
inline bool hasNoSyntaxError() const
{
return( mErrorCount == 0 );
}
/**
* mWarningCount
*/
inline std::size_t getWarningCount() const
{
return( mWarningCount );
}
inline bool hasSyntaxWarning() const
{
return( mWarningCount > 0 );
}
/**
* mWarningCount
*/
inline const std::string & getExceptionMessage() const
{
return( mExceptionMessage );
}
inline bool hasExceptionMessage() const
{
return( not mExceptionMessage.empty() );
}
/**
* Parse FML, xLIA
*/
System * parseFML(WObjectManager & aWObjectManager);
System * parseFML(WObjectManager & aWObjectManager,
std::ifstream & anInputStream);
/**
* Parse SEW, FAVM
*/
WObject * parseSEW(WObjectManager & aWObjectManager,
std::ifstream & anInputStream);
};
}
#endif /*PARSER_PARSERMANAGER_H_*/