Skip to content
Snippets Groups Projects
Select Git revision
  • a0865827253143f5c4b1678a4962f17df743983b
  • master default protected
  • 2-read-not-only-txt-files-2
  • jakubbalicki-master-patch-50863
  • tox-test
5 results

test_worker.py

Blame
  • bool_main.cpp 2.07 KiB
    #include <cstdlib>
    #include <libwccl/values/bool.h>
    #include <libwccl/parser/Parser.h>
    #include <libwccl/parser/ANTLRParserResult.h>
    #include <antlr/NoViableAltException.hpp>
    #include <antlr/MismatchedTokenException.hpp>
    
    // ----------------------------------------------------------------------------
    
    /**
     * @desc It's simple command line tester for testing predicates
     */
    
    int main()
    {
    	std::string str_in;
    	Corpus2::Tagset tagset;
    	Wccl::Parser parser(tagset);
    
    	boost::shared_ptr<const Wccl::Bool> retVal;
    	boost::shared_ptr<ANTLRParserResult<Wccl::Bool> > retOp;
    	boost::shared_ptr<Corpus2::Sentence> sentence;
    	Wccl::SentenceContext sc(sentence);
    
    	if (system("clear")) {
    		//
    	}
    
    	std::cerr << "Simple command line tester for testing bool operators"
    						<< std::endl;
    
    	while (1) {
    		std::cerr << "Enter a bool operator 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()) {
    					Wccl::FunExecContext cx(sc, retOp->variables);
    
    					if ((retVal = retOp->op->apply(cx)).get()) {
    						std::cerr << "Parsed expression: " << retVal->to_raw_string()
    								<< std::endl;
    					}
    					else {
    						std::cerr << "Problem while parsing -- Bool is NULL!" << std::endl;
    					}
    				}
    				else {
    					std::cerr << "Problem while parsing -- "
    							<< "Function<Wccl::Bool> is NULL!" << std::endl;
    				}
    			}
    			catch (antlr::MismatchedTokenException &e) {
    				std::cerr << e.getFileLineColumnString()
    						<< " " << e.getMessage() << std::endl;
    			} catch(antlr::NoViableAltException &e) {
    				std::cerr << e.getFileLineColumnString()
    						<< " " << e.getMessage() << std::endl;
    			} catch (Wccl::InvalidVariableName &e) {
    				std::cerr << "Wccl::InvalidVariableName" << std::endl;
    			} catch (Wccl::VariableTypeMismatch &e) {
    				std::cerr << "Wccl::VariableTypeMismatch" << std::endl;
    			} catch (...) {
    				std::cerr << "[N] Syntax error!" << std::endl;
    			}
    		}
    	}
    
      return 0;
    }