An error occurred while loading the file. Please try again.
-
Paweł Kędzia authored75de5262
val_main.cpp 1.46 KiB
#include <cstdlib>
#include <libwccl/values/strset.h>
#include <libwccl/parser/Parser.h>
// ----------------------------------------------------------------------------
/**
* @desc It's simple command line tester for testing predicates
*/
int main()
{
std::string str_in;
Corpus2::Tagset tagset;
Parser parser(tagset);
boost::shared_ptr<Wccl::Bool> retValue;
boost::shared_ptr<Wccl::Function<Wccl::Bool> > retOp;
boost::shared_ptr<Corpus2::Sentence> sentence;
Wccl::SentenceContext sc(sentence);
while (1) {
std::cerr << "Enter a string predicates expression: ";
getline(std::cin, str_in);
if (str_in == "clear" || str_in == "cls") {
if (system("clear")) {
//
}
}
else if (str_in == "exit" || str_in == "quit") {
break;
}
else {
try {
retOp = parser.parsePredicate(str_in);
if (retOp.get()) {
std::cerr
<< "Parsed expression: "
<< (retValue = retOp->apply(sc))->to_raw_string()
<< std::endl;
}
else {
std::cerr << "Problem while parsing -- haven't got Function<Wccl::StrSet> object in boost::shared_ptr!" << std::endl;
}
}
catch (antlr::MismatchedTokenException &e) {
std::cerr << "Mismatch token exception!" << std::endl;
}
/*
catch (antlr::TokenStreamRecognitionException &e) {
std::cerr << "[2] Syntax error!" << std::endl;
}
*/
catch (...) {
std::cerr << "[N] Syntax error!" << std::endl;
}
}
}
return 0;
}