-// Copyright (C) 2006-2016 CEA/DEN, EDF R&D
+// Copyright (C) 2006-2023 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
#ifndef _PY2YACS_H_
#define _PY2YACS_H_
+#ifdef WIN32
+# if defined py2yacslib_EXPORTS
+# define PY2YACSLIB_EXPORT __declspec( dllexport )
+# else
+# define PY2YACSLIB_EXPORT __declspec( dllimport )
+# endif
+#else
+# define PY2YACSLIB_EXPORT
+#endif
+
+
#include <string>
#include <list>
#include <exception>
-class Py2yacsException: std::exception
+class PY2YACSLIB_EXPORT Py2yacsException: std::exception
{
public:
Py2yacsException(const std::string& what);
- virtual ~Py2yacsException()throw ();
- virtual const char *what() const throw ();
+ virtual ~Py2yacsException() noexcept;
+ virtual const char *what() const noexcept;
private:
std::string _what;
};
};
};
-struct FunctionProperties
+struct PY2YACSLIB_EXPORT FunctionProperties
{
public:
std::string _name;
* This class converts a string containing a python script to a yacs schema
* containing a python script node.
*/
-class Py2yacs
+class PY2YACSLIB_EXPORT Py2yacs
{
public:
Py2yacs();
*/
YACS::ENGINE::Proc* createProc(const std::string& python_function)const;
+ /*!
+ * Syntax errors when parsing python and py2yacs global errors.
+ * \return a list of errors.
+ */
const std::list<std::string>& getGlobalErrors() const;
+
const std::list<FunctionProperties>& getFunctionProperties()const;
+ /*!
+ * Get a string containing global errors and errors specific to py2yacs for
+ * every function in python script.
+ * An empty string means there is no error.
+ */
+ std::string getAllErrors()const;
+
+ /*!
+ * Same as getAllErrors but only for one function.
+ * py2yacs errors for other functions are ignored.
+ * If the function name is not found, you get an error message in the
+ * returned string.
+ */
+ std::string getFunctionErrors(const std::string& functionName)const;
+
private:
std::string _python_parser_module;
std::string _python_parser_function;