diff --git a/aconversions2/src/aconversion.cpp b/aconversions2/src/aconversion.cpp index 664821f562e36ce83b42161fdd2c2cf4e788203a..cccc2e9902738826cd0853691ec6a10db77d203d 100644 --- a/aconversions2/src/aconversion.cpp +++ b/aconversions2/src/aconversion.cpp @@ -124,7 +124,7 @@ int main(int argc, char* argv[]) std::string input( istreambuf_iterator<char>( cin ), ( istreambuf_iterator<char>( ) ) ); SaxParseInterface::parseMemory( input, tokens ); - if(alib::api<exception::AlibException>::first(tokens)) throw alib::api<exception::AlibException>::parse(tokens); + if(alib::api<exception::AlibException>::first(tokens)) throw alib::DataFactory::fromTokens<exception::AlibException>(tokens); ConversionHandler conv( tokens, target, algorithm, cout ); conv.convert( ); diff --git a/aderivation2/src/aderivation.cpp b/aderivation2/src/aderivation.cpp index bd08316c486a00befec86724f9f45f03b66bfc61..c1bfb1bb9222884affce4424764398406039bfe1 100644 --- a/aderivation2/src/aderivation.cpp +++ b/aderivation2/src/aderivation.cpp @@ -30,6 +30,8 @@ int main(int argc, char** argv) { } else { sax::SaxParseInterface::parseFile(string.getValue(), stringTokens); } + } else { + sax::SaxParseInterface::parseStdin(stringTokens); } std::list<sax::Token> regexpTokens; @@ -39,14 +41,12 @@ int main(int argc, char** argv) { } else { sax::SaxParseInterface::parseFile(regexp.getValue(), regexpTokens); } + } else { + sax::SaxParseInterface::parseStdin(regexpTokens); } - { - regexp::RegExp regexp = alib::DataFactory::fromTokens<regexp::RegExp>(regexpTokens); - string::LinearString string = alib::DataFactory::fromTokens<string::LinearString>(stringTokens); - alib::DataFactory::toStdout(regexp::RegExpDerivation::derivation(regexp, string)); - return 0; - } + alib::DataFactory::toStdout(regexp::RegExpDerivation::derivation(alib::DataFactory::fromTokens<regexp::RegExp>(regexpTokens), alib::DataFactory::fromTokens<string::LinearString>(stringTokens))); + return 0; } catch(const exception::AlibException& exception) { alib::DataFactory::toStdout(exception); return 1; diff --git a/adeterminize2/src/adeterminize.cpp b/adeterminize2/src/adeterminize.cpp index 24bd0e23d93141dd673ffd2a68309bbe392e6399..49b0d77c53ffa0e48f57fe67483876ed60bc41b4 100644 --- a/adeterminize2/src/adeterminize.cpp +++ b/adeterminize2/src/adeterminize.cpp @@ -37,6 +37,9 @@ int main(int argc, char** argv) { } catch (const exception::AlibException& e) { alib::DataFactory::toStdout(e); return 1; + } catch(const TCLAP::ArgException& exception) { + std::cout << exception.error() << std::endl; + return 2; } catch (...) { return 127; } diff --git a/adiff2/src/adiff.cpp b/adiff2/src/adiff.cpp index 7a64bae4df8b0c74ad181e8a6a5cdf6baaddaf5f..3e63c36f187531dde09ea8f2ed832d8bc2d265bb 100644 --- a/adiff2/src/adiff.cpp +++ b/adiff2/src/adiff.cpp @@ -34,6 +34,8 @@ int main(int argc, char** argv) { } else { sax::SaxParseInterface::parseFile(input1.getValue(), tokens1); } + } else { + sax::SaxParseInterface::parseStdin(tokens1); } std::list<sax::Token> tokens2; @@ -43,6 +45,8 @@ int main(int argc, char** argv) { } else { sax::SaxParseInterface::parseFile(input2.getValue(), tokens2); } + } else { + sax::SaxParseInterface::parseStdin(tokens2); } if (tokens1.empty() || tokens2.empty()) @@ -64,8 +68,8 @@ int main(int argc, char** argv) { std::cout << "Only automata and grammars can be differenciated." << std::endl; - if(alib::api<exception::AlibException>::first(tokens1)) std::cout << alib::api<exception::AlibException>::parse(tokens1).getCause() << std::endl; - if(alib::api<exception::AlibException>::first(tokens2)) std::cout << alib::api<exception::AlibException>::parse(tokens2).getCause() << std::endl; + if(alib::api<exception::AlibException>::first(tokens1)) std::cout << alib::DataFactory::fromTokens<exception::AlibException>(tokens1).getCause() << std::endl; + if(alib::api<exception::AlibException>::first(tokens2)) std::cout << alib::DataFactory::fromTokens<exception::AlibException>(tokens2).getCause() << std::endl; return 2; } catch (const exception::AlibException& e) { diff --git a/aintegral2/src/aintegral.cpp b/aintegral2/src/aintegral.cpp index 2af07d69b8db819e8b4814331435ce308cdc8642..dd2d74e696a68a7cee3682d451c4916be54deb9d 100644 --- a/aintegral2/src/aintegral.cpp +++ b/aintegral2/src/aintegral.cpp @@ -30,6 +30,8 @@ int main(int argc, char** argv) { } else { sax::SaxParseInterface::parseFile(string.getValue(), stringTokens); } + } else { + sax::SaxParseInterface::parseStdin(stringTokens); } std::list<sax::Token> regexpTokens; @@ -39,14 +41,12 @@ int main(int argc, char** argv) { } else { sax::SaxParseInterface::parseFile(regexp.getValue(), regexpTokens); } + } else { + sax::SaxParseInterface::parseStdin(regexpTokens); } - { - regexp::RegExp regexp = alib::DataFactory::fromTokens<regexp::RegExp>(regexpTokens); - string::LinearString string = alib::DataFactory::fromTokens<string::LinearString>(stringTokens); - alib::DataFactory::toStdout(regexp::RegExpIntegral::integral(regexp, string)); - return 0; - } + alib::DataFactory::toStdout(regexp::RegExpIntegral::integral(alib::DataFactory::fromTokens<regexp::RegExp>(regexpTokens), alib::DataFactory::fromTokens<string::LinearString>(stringTokens))); + return 0; } catch(const exception::AlibException& exception) { alib::DataFactory::toStdout(exception); return 1; diff --git a/arun2/src/arun.cpp b/arun2/src/arun.cpp index 20660413f8a9299b3f20c45bd28b44a0fcabb496..dfe6c9d39d3b8db14fe0b17226e181ca32872259 100644 --- a/arun2/src/arun.cpp +++ b/arun2/src/arun.cpp @@ -42,6 +42,8 @@ int main(int argc, char* argv[]) { } else { sax::SaxParseInterface::parseFile(input.getValue(), inputTokens); } + } else { + sax::SaxParseInterface::parseStdin(inputTokens); } std::list<sax::Token> automatonTokens; @@ -51,6 +53,8 @@ int main(int argc, char* argv[]) { } else { sax::SaxParseInterface::parseFile(automaton.getValue(), automatonTokens); } + } else { + sax::SaxParseInterface::parseStdin(automatonTokens); } if( type.getValue() == "occurrences") { diff --git a/astat2/src/astat.cpp b/astat2/src/astat.cpp index e9973ffc02c170f75b49e41ca106b5103c00a68c..3b2dffd0843c8e15ad569ece6f5be44238ccd945 100644 --- a/astat2/src/astat.cpp +++ b/astat2/src/astat.cpp @@ -109,7 +109,11 @@ int main(int argc, char* argv[]) { std::list<sax::Token> tokens; if(file.isSet()) { - sax::SaxParseInterface::parseFile(file.getValue(), tokens); + if(file.getValue() == "-") { + sax::SaxParseInterface::parseStdin(tokens); + } else { + sax::SaxParseInterface::parseFile(file.getValue(), tokens); + } } else { sax::SaxParseInterface::parseStdin(tokens); } diff --git a/astringology2/src/astringology.cpp b/astringology2/src/astringology.cpp index 4f1a2ce66cea301e86ee15a5c1dc9de48fba6872..35c67edbabe602fb7c480c0096ceeaecb91e379b 100644 --- a/astringology2/src/astringology.cpp +++ b/astringology2/src/astringology.cpp @@ -42,6 +42,8 @@ int main(int argc, char* argv[]) { } else { sax::SaxParseInterface::parseFile(subject.getValue(), subjectTokens); } + } else { + sax::SaxParseInterface::parseStdin(subjectTokens); } std::list<sax::Token> patternTokens; @@ -51,6 +53,8 @@ int main(int argc, char* argv[]) { } else { sax::SaxParseInterface::parseFile(pattern.getValue(), patternTokens); } + } else { + sax::SaxParseInterface::parseStdin(patternTokens); } if( algorithm.getValue() == "exactMatch") { diff --git a/makefile b/makefile index 4a9954870520b700e9ac70c3fbd6d2ab22f67841..901c4a0edf250c93d0a22b740a02601f775ac3d4 100644 --- a/makefile +++ b/makefile @@ -21,6 +21,21 @@ SUBDIRS_BINS = acat2 \ astringology2 \ atrim2 \ + +ifneq (3.81, $(firstword $(sort $(MAKE_VERSION) 3.81))) +$(error version $(MAKE_VERSION) is not supported. You need at least 3.82 is needed for make to work) +endif + +TCLAP_EXISTS = $(shell g++ -c -o /dev/null -xc++ - <<< \\\#include\ \<tclap/CmdLine.h\> 2>/dev/null; echo $$?) +ifneq (0, $(TCLAP_EXISTS)) +$(error You need tclap installed) +endif + +TCLAP_EXISTS = $(shell g++ -c -o /dev/null -xc++ - <<< \\\#include\ \<cppunit/Test.h\> 2>/dev/null; echo $$?) +ifneq (0, $(TCLAP_EXISTS)) +$(error You need tclap installed) +endif + SUBDIRS_WITH_MAKE = $(dir $(wildcard */makefile)) .PHONY: $(addsuffix .all-debug , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS)) \ @@ -33,10 +48,6 @@ SUBDIRS_WITH_MAKE = $(dir $(wildcard */makefile)) all-release build-release build-test-release unit-test-release clean-release \ debug release clean doc all -# ifneq (3.82, $(firstword $(sort $(MAKE_VERSION) 3.81))) -# $(error version at least 3.82 is needed for make to work) -# endif - all: @echo "What to do master?"