3 #ifndef __ARC_JOBDESCRIPTIONPARSERPLUGIN_H__ 4 #define __ARC_JOBDESCRIPTIONPARSERPLUGIN_H__ 15 #include <arc/loader/Loader.h> 16 #include <arc/loader/Plugin.h> 36 JobDescriptionParsingError(
const std::string& message,
const std::pair<int, int>& line_pos = std::make_pair(0, 0),
const std::string& failing_code =
"")
37 : message(message), failing_code(failing_code), line_pos(line_pos) {}
40 std::string failing_code;
41 std::pair<int, int> line_pos;
52 JobDescriptionParserPluginResult(
bool v):v_(v?Success:
Failure) { };
53 JobDescriptionParserPluginResult(
Result v):v_(v) { };
54 operator bool(
void) {
return (v_ == Success); };
55 bool operator!(
void) {
return (v_ != Success); };
56 bool operator==(
bool v) {
return ((v_ == Success) == v); };
57 bool operator==(
Result v) {
return (v_ == v); };
61 bool HasErrors()
const {
return !errors_.empty(); };
65 const std::list<JobDescriptionParsingError>&
GetErrors()
const {
return errors_; };
74 const std::pair<int, int>& location = std::make_pair(0, 0),
75 const std::string& failing_code =
"") {
92 std::list<JobDescriptionParsingError> errors_;
173 virtual JobDescriptionParserPluginResult Parse(
const std::string& source, std::list<JobDescription>& jobdescs,
const std::string& language =
"",
const std::string& dialect =
"")
const = 0;
281 operator bool() {
return !jdpl->jdpDescs.empty() || current != jdpl->jdps.end(); }
287 std::list<JobDescriptionParserPlugin*>::iterator current;
294 std::list<JobDescriptionParserPlugin*> jdps;
295 std::list<ModuleDesc> jdpDescs;
302 #endif // __ARC_JOBDESCRIPTIONPARSERPLUGIN_H__ Arc namespace contains all core ARC classes.
Definition: ArcConfig.h:11
void AddError(const IString &msg, const std::pair< int, int > &location=std::make_pair(0, 0), const std::string &failing_code="")
Definition: JobDescriptionParserPlugin.h:73
~JobDescriptionParserPluginLoader()
Definition: JobDescriptionParserPlugin.h:243
JobDescriptionParserPluginLoader()
std::list< std::string > supportedLanguages
List of supported job description languages.
Definition: JobDescriptionParserPlugin.h:224
std::string error
[DEPRECATED] Parsing error
Definition: JobDescriptionParserPlugin.h:230
A logger class.
Definition: Logger.h:493
const std::list< JobDescriptionParserPlugin * > & GetJobDescriptionParserPlugins() const
Definition: JobDescriptionParserPlugin.h:267
Class used for localised output of log messages.
Definition: IString.h:180
Abstract plugin class for different parsers.
Definition: JobDescriptionParserPlugin.h:121
void SetWrongLanguage()
Definition: JobDescriptionParserPlugin.h:89
void SetSuccess()
Definition: JobDescriptionParserPlugin.h:81
Definition: JobDescription.h:842
const std::list< JobDescriptionParsingError > & GetErrors() const
Definition: JobDescriptionParserPlugin.h:65
void SetFailure()
Definition: JobDescriptionParserPlugin.h:85
JobDescriptionParserPlugin * load(const std::string &name)
const std::string & GetError(void)
[DEPRECATED] Get parsing error
Definition: JobDescriptionParserPlugin.h:208
std::string & SourceLanguage(JobDescription &j) const
[DEPRECATED] Get reference to sourceLanguage member
bool HasErrors() const
Definition: JobDescriptionParserPlugin.h:61
const std::list< std::string > & GetSupportedLanguages() const
Get supported job description languages.
Definition: JobDescriptionParserPlugin.h:194
Result
Definition: JobDescriptionParserPlugin.h:46
virtual JobDescriptionParserPluginResult UnParse(const JobDescription &job, std::string &output, const std::string &language, const std::string &dialect="") const
[DEPRECATED] Assemble job description into string
Definition: JobDescriptionParserPlugin.h:187
virtual JobDescriptionParserPluginResult Parse(const std::string &source, std::list< JobDescription > &jobdescs, const std::string &language="", const std::string &dialect="") const =0
Parse string into JobDescription objects.
Definition: JobDescriptionParserPlugin.h:44
Definition: JobDescriptionParserPlugin.h:269
Definition: JobDescriptionParserPlugin.h:48
void AddError(const JobDescriptionParsingError &error)
Definition: JobDescriptionParserPlugin.h:69
bool IsLanguageSupported(const std::string &language) const
Check if language is supported.
Definition: JobDescriptionParserPlugin.h:202
virtual JobDescriptionParserPluginResult Assemble(const JobDescription &job, std::string &output, const std::string &language, const std::string &dialect="") const =0
Assemble job description into string.
Definition: JobDescriptionParserPlugin.h:33