From 9a3bae7e213973c01d8cc527f9ad066db915a087 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Fri, 24 Nov 2017 14:58:50 +0100 Subject: [PATCH] re-thing access binary --- aaccess2/makefile.conf | 6 +- aaccess2/src/aaccess.cpp | 168 +++++++++--------- aaccess2/src/access/AutomatonAccess.cpp | 34 ++++ aaccess2/src/access/AutomatonAccess.h | 22 +++ aaccess2/src/access/GrammarAccess.cpp | 31 ++++ aaccess2/src/access/GrammarAccess.h | 22 +++ aaccess2/src/access/RegExpAccess.cpp | 25 +++ aaccess2/src/access/RegExpAccess.h | 22 +++ aaccess2/src/access/StringAccess.cpp | 25 +++ aaccess2/src/access/StringAccess.h | 22 +++ aaccess2/src/access/TreeAccess.cpp | 31 ++++ aaccess2/src/access/TreeAccess.h | 22 +++ .../src/access/settings/AutomatonSettings.h | 0 .../src/access/settings/GrammarSettings.h | 0 .../src/access/settings/RegExpSettings.h | 0 .../src/access/settings/SettingsHelper.h | 0 .../src/access/settings/StringSettings.h | 0 .../src/access/settings/TreeSettings.h | 0 alib2aux/src/access/AutomatonAccess.cpp | 163 ----------------- alib2aux/src/access/AutomatonAccess.h | 38 ---- alib2aux/src/access/ExceptionAccess.cpp | 40 ----- alib2aux/src/access/ExceptionAccess.h | 26 --- alib2aux/src/access/GrammarAccess.cpp | 67 ------- alib2aux/src/access/GrammarAccess.h | 32 ---- alib2aux/src/access/PairSetAccess.cpp | 41 ----- alib2aux/src/access/PairSetAccess.h | 30 ---- alib2aux/src/access/PairSetFirst.cpp | 16 ++ alib2aux/src/access/PairSetFirst.h | 31 ++++ alib2aux/src/access/PairSetSecond.cpp | 16 ++ alib2aux/src/access/PairSetSecond.h | 31 ++++ alib2aux/src/access/RegExpAccess.cpp | 57 ------ alib2aux/src/access/RegExpAccess.h | 32 ---- alib2aux/src/access/StringAccess.cpp | 55 ------ alib2aux/src/access/StringAccess.h | 32 ---- alib2aux/src/access/TreeAccess.cpp | 90 ---------- alib2aux/src/access/TreeAccess.h | 34 ---- alib2aux/src/access/common/AccessHelpers.hpp | 68 ------- .../src/access/settings/ExceptionSettings.h | 45 ----- .../src/access/settings/OperationSettings.h | 48 ----- .../src/access/settings/PairSetSettings.h | 42 ----- tests.aarbology.sh | 28 +-- tests.astringology.sh | 10 +- 42 files changed, 452 insertions(+), 1050 deletions(-) create mode 100644 aaccess2/src/access/AutomatonAccess.cpp create mode 100644 aaccess2/src/access/AutomatonAccess.h create mode 100644 aaccess2/src/access/GrammarAccess.cpp create mode 100644 aaccess2/src/access/GrammarAccess.h create mode 100644 aaccess2/src/access/RegExpAccess.cpp create mode 100644 aaccess2/src/access/RegExpAccess.h create mode 100644 aaccess2/src/access/StringAccess.cpp create mode 100644 aaccess2/src/access/StringAccess.h create mode 100644 aaccess2/src/access/TreeAccess.cpp create mode 100644 aaccess2/src/access/TreeAccess.h rename {alib2aux => aaccess2}/src/access/settings/AutomatonSettings.h (100%) rename {alib2aux => aaccess2}/src/access/settings/GrammarSettings.h (100%) rename {alib2aux => aaccess2}/src/access/settings/RegExpSettings.h (100%) rename {alib2aux => aaccess2}/src/access/settings/SettingsHelper.h (100%) rename {alib2aux => aaccess2}/src/access/settings/StringSettings.h (100%) rename {alib2aux => aaccess2}/src/access/settings/TreeSettings.h (100%) delete mode 100644 alib2aux/src/access/AutomatonAccess.cpp delete mode 100644 alib2aux/src/access/AutomatonAccess.h delete mode 100644 alib2aux/src/access/ExceptionAccess.cpp delete mode 100644 alib2aux/src/access/ExceptionAccess.h delete mode 100644 alib2aux/src/access/GrammarAccess.cpp delete mode 100644 alib2aux/src/access/GrammarAccess.h delete mode 100644 alib2aux/src/access/PairSetAccess.cpp delete mode 100644 alib2aux/src/access/PairSetAccess.h create mode 100644 alib2aux/src/access/PairSetFirst.cpp create mode 100644 alib2aux/src/access/PairSetFirst.h create mode 100644 alib2aux/src/access/PairSetSecond.cpp create mode 100644 alib2aux/src/access/PairSetSecond.h delete mode 100644 alib2aux/src/access/RegExpAccess.cpp delete mode 100644 alib2aux/src/access/RegExpAccess.h delete mode 100644 alib2aux/src/access/StringAccess.cpp delete mode 100644 alib2aux/src/access/StringAccess.h delete mode 100644 alib2aux/src/access/TreeAccess.cpp delete mode 100644 alib2aux/src/access/TreeAccess.h delete mode 100644 alib2aux/src/access/common/AccessHelpers.hpp delete mode 100644 alib2aux/src/access/settings/ExceptionSettings.h delete mode 100644 alib2aux/src/access/settings/OperationSettings.h delete mode 100644 alib2aux/src/access/settings/PairSetSettings.h diff --git a/aaccess2/makefile.conf b/aaccess2/makefile.conf index 4718744795..7d042f3c2b 100644 --- a/aaccess2/makefile.conf +++ b/aaccess2/makefile.conf @@ -1,4 +1,4 @@ EXECUTABLE:=aaccess2 -LINK_PATHS=../alib2aux/ ../alib2str/ ../alib2data/ ../alib2xml/ ../alib2measure/ ../alib2common/ ../alib2std/ -LINK_LIBRARIES=alib2aux alib2str alib2data alib2xml alib2measure alib2common alib2std xml2 -INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2aux/src/ \$$(SOURCES_BASE_DIR)/../../alib2str/src/ \$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/ +LINK_PATHS=../alib2cli/ ../alib2elgo/ ../alib2algo/ ../alib2str/ ../alib2data/ ../alib2xml/ ../alib2measure/ ../alib2common/ ../alib2std/ +LINK_LIBRARIES=alib2cli alib2elgo alib2algo alib2str alib2data alib2xml alib2measure alib2common alib2std xml2 +INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2cli/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/ diff --git a/aaccess2/src/aaccess.cpp b/aaccess2/src/aaccess.cpp index fb0f415ab8..39d7de7de4 100644 --- a/aaccess2/src/aaccess.cpp +++ b/aaccess2/src/aaccess.cpp @@ -8,24 +8,24 @@ #include <tclap/CmdLine.h> #include <global/GlobalData.h> #include <measure> -#include <vector> -#include <sax/FromXMLParserHelper.h> -#include <factory/XmlDataFactory.hpp> #include <exception/CommonException.h> +#include <lexer/Lexer.h> +#include <parser/Parser.h> -#include <access/AutomatonAccess.h> -#include <access/GrammarAccess.h> -#include <access/RegExpAccess.h> -#include <access/StringAccess.h> -#include <access/ExceptionAccess.h> -#include <access/TreeAccess.h> -#include <access/PairSetAccess.h> +#include <factory/XmlDataFactory.hpp> -#include <access/settings/OperationSettings.h> +#include "access/AutomatonAccess.h" +#include "access/GrammarAccess.h" +#include "access/RegExpAccess.h" +#include "access/StringAccess.h" +#include "access/TreeAccess.h" -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsPair.h> +#include "access/settings/AutomatonSettings.h" +#include "access/settings/GrammarSettings.h" +#include "access/settings/RegExpSettings.h" +#include "access/settings/StringSettings.h" +#include "access/settings/TreeSettings.h" int main ( int argc, char * argv[] ) { try { @@ -65,16 +65,6 @@ int main ( int argc, char * argv[] ) { // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - std::vector < std::string > exceptionSettings { - dataAccess::ExceptionSettings::stringsVector ( ) - }; - - TCLAP::ValuesConstraint < std::string > exceptionPrintingOptionsVals ( exceptionSettings ); - - TCLAP::ValueArg < std::string > exceptionInput ( "", "exception", "Access components of exceptions", false, "", & exceptionPrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - std::vector < std::string > stringSettings { dataAccess::StringSettings::stringsVector ( ) }; @@ -95,28 +85,16 @@ int main ( int argc, char * argv[] ) { // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - std::vector < std::string > pairSetSettings { - dataAccess::PairSetSettings::stringsVector ( ) - }; - - TCLAP::ValuesConstraint < std::string > pairSetPrintingOptionsVals ( pairSetSettings ); - - TCLAP::ValueArg < std::string > pairSetInput ( "", "pairSet", "Access components of set of pairs", false, "", & pairSetPrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - std::vector < TCLAP::Arg * > xorlist; xorlist.push_back ( & automatonInput ); xorlist.push_back ( & grammarInput ); xorlist.push_back ( & regexpInput ); - xorlist.push_back ( & exceptionInput ); xorlist.push_back ( & stringInput ); xorlist.push_back ( & treeInput ); - xorlist.push_back ( & pairSetInput ); cmd.xorAdd ( xorlist ); std::vector < std::string > operationSettings { - dataAccess::OperationSettings::stringsVector ( ) + "get", "set", "add", "remove" }; TCLAP::ValuesConstraint < std::string > allowedVals ( operationSettings ); @@ -126,8 +104,11 @@ int main ( int argc, char * argv[] ) { TCLAP::ValueArg < std::string > file ( "i", "input", "Read from file", false, "-", "file" ); cmd.add ( file ); - TCLAP::ValueArg < std::string > argument ( "a", "argument", "Operation argument", false, "", "file" ); - cmd.add ( argument ); + TCLAP::ValueArg < std::string > element ( "e", "element", "Operation argument", false, "-", "file" ); + cmd.add ( element ); + + TCLAP::ValueArg < std::string > collection ( "c", "collection", "Operation arguments collection", false, "-", "file" ); + cmd.add ( collection ); TCLAP::SwitchArg measure ( "m", "measure", "Measure times", false ); cmd.add ( measure ); @@ -143,70 +124,81 @@ int main ( int argc, char * argv[] ) { if ( measure.isSet ( ) ) common::GlobalData::measure = true; + cli::Environment environment; + environment.setBinding ( "stdin", file.getValue ( ) ); + environment.setBinding ( "element", element.getValue ( ) ); + environment.setBinding ( "collection", collection.getValue ( ) ); + environment.setBinding ( "stdout", "-" ); + measurements::start ( "Overal", measurements::Type::OVERALL ); measurements::start ( "Input read", measurements::Type::AUXILIARY ); - ext::deque < sax::Token > tokens = sax::FromXMLParserHelper::parseInput ( file ); - - ext::deque < sax::Token > argumentTokens; - if ( argument.isSet ( ) ) - argumentTokens = sax::FromXMLParserHelper::parseInput( argument ); + cli::Parser parser ( cli::Lexer ( "execute <#stdin > $data" ) ); + parser.parse ( )->run ( environment ); - if ( alib::XmlDataFactory::first < automaton::Automaton > ( tokens ) && automatonInput.isSet ( ) ) { - automaton::Automaton automaton = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); - - dataAccess::AutomatonAccess::access ( automaton, dataAccess::AutomatonSettings::fromString ( automatonInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ), argumentTokens ); - } else if ( alib::XmlDataFactory::first < grammar::Grammar > ( tokens ) && grammarInput.isSet ( ) ) { - grammar::Grammar grammar = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); - - dataAccess::GrammarAccess::access ( grammar, dataAccess::GrammarSettings::fromString ( grammarInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ), argumentTokens ); - } else if ( alib::XmlDataFactory::first < regexp::RegExp > ( tokens ) && regexpInput.isSet ( ) ) { - regexp::RegExp regexp = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); - - dataAccess::RegExpAccess::access ( regexp, dataAccess::RegExpSettings::fromString ( regexpInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ), argumentTokens ); - } else if ( alib::XmlDataFactory::first < exception::CommonException > ( tokens ) && exceptionInput.isSet ( ) ) { - exception::CommonException exception = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); + if ( collection.isSet ( ) + && ( operation.getValue ( ) == "set" || operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) + && ( automatonInput.isSet ( ) || grammarInput.isSet ( ) || regexpInput.isSet ( ) || stringInput.isSet ( ) ) ) { + parser = cli::Parser ( cli::Lexer ( "execute < { :Object } #collection > $argument" ) ); + parser.parse ( )->run ( environment ); + } + if ( collection.isSet ( ) + && ( operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) && ( treeInput.isSet ( ) ) ) { + parser = cli::Parser ( cli::Lexer ( "execute < { :ranked_symbol } #collection > $argument" ) ); + parser.parse ( )->run ( environment ); + } - dataAccess::ExceptionAccess::access ( exception, dataAccess::ExceptionSettings::fromString ( exceptionInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ) ); - } else if ( alib::XmlDataFactory::first < string::String > ( tokens ) && stringInput.isSet ( ) ) { - string::String string = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); + if ( element.isSet ( ) + && ( operation.getValue ( ) == "set" || operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) + && ( automatonInput.isSet ( ) || grammarInput.isSet ( ) || regexpInput.isSet ( ) || stringInput.isSet ( ) ) ) { + parser = cli::Parser ( cli::Lexer ( "execute < :Object #element > $argument" ) ); + parser.parse ( )->run ( environment ); + } + if ( element.isSet ( ) && ( operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) && ( treeInput.isSet ( ) ) ) { + parser = cli::Parser ( cli::Lexer ( "execute < :ranked_symbol #element > $argument" ) ); + parser.parse ( )->run ( environment ); + } - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); + measurements::end(); + measurements::start ( "Algorithm", measurements::Type::MAIN ); + + std::string cliString; + if ( automatonInput.isSet ( ) ) { + cliString = "execute " + dataAccess::AutomatonAccess::access ( automatonInput.getValue ( ) ) + "::" + operation.getValue ( ) + " $data"; + } else if ( grammarInput.isSet ( ) ) { + cliString = "execute " + dataAccess::GrammarAccess::access ( grammarInput.getValue ( ) ) + "::" + operation.getValue ( ) + " $data"; + } else if ( regexpInput.isSet ( ) ) { + cliString = "execute " + dataAccess::RegExpAccess::access ( regexpInput.getValue ( ) ) + "::" + operation.getValue ( ) + " $data"; + } else if ( stringInput.isSet ( ) ) { + cliString = "execute " + dataAccess::StringAccess::access ( stringInput.getValue ( ) ) + "::" + operation.getValue ( ) + " $data"; + } else if ( treeInput.isSet ( ) ) { + cliString = "execute " + dataAccess::TreeAccess::access ( treeInput.getValue ( ) ) + "::" + operation.getValue ( ) + " $data"; + } else { + throw exception::CommonException ( "Input not recognized." ); + } - dataAccess::StringAccess::access ( string, dataAccess::StringSettings::fromString ( stringInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ), argumentTokens ); - } else if ( alib::XmlDataFactory::first < tree::Tree > ( tokens ) && treeInput.isSet ( ) ) { - tree::Tree tree = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); + if ( operation.getValue ( ) == "add" || operation.getValue ( ) == "remove" ) + cliString += " $argument"; - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); + if ( operation.getValue ( ) == "get" ) { + cliString += " >$output"; + } - dataAccess::TreeAccess::access ( tree, dataAccess::TreeSettings::fromString ( treeInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ), argumentTokens ); - } else if ( alib::XmlDataFactory::first < ext::set < ext::pair < alib::Object, alib::Object > > > ( tokens ) && pairSetInput.isSet ( ) ) { - ext::set < ext::pair < alib::Object, alib::Object > > pairSet = alib::XmlDataFactory::fromTokens ( std::move ( tokens ) ); + parser = cli::Parser ( cli::Lexer ( cliString ) ); + parser.parse ( )->run ( environment ); - measurements::end ( ); - measurements::start ( "Accesss print", measurements::Type::MAIN ); + measurements::end(); + measurements::start("Output write", measurements::Type::AUXILIARY); - dataAccess::PairSetAccess::access ( pairSet, dataAccess::PairSetSettings::fromString ( pairSetInput.getValue ( ) ), dataAccess::OperationSettings::fromString ( operation.getValue ( ) ) ); + if ( operation.getValue ( ) == "get" ) { + parser = cli::Parser ( cli::Lexer ( "execute $output >#stdout" ) ); } else { - throw exception::CommonException ( "Input not recognized." ); + parser = cli::Parser ( cli::Lexer ( "execute $data >#stdout" ) ); } + parser.parse ( )->run ( environment ); - measurements::end ( ); - measurements::end ( ); + measurements::end(); + measurements::end(); if ( measure.getValue ( ) ) common::Streams::measure << measurements::results ( ) << std::endl; diff --git a/aaccess2/src/access/AutomatonAccess.cpp b/aaccess2/src/access/AutomatonAccess.cpp new file mode 100644 index 0000000000..44709e8c16 --- /dev/null +++ b/aaccess2/src/access/AutomatonAccess.cpp @@ -0,0 +1,34 @@ +/* + * AutomatonAccess.cpp + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#include "AutomatonAccess.h" +#include "settings/AutomatonSettings.h" + +namespace dataAccess { + +std::string AutomatonAccess::access ( const std::string & component ) { + AutomatonSettings::Settings settings = dataAccess::AutomatonSettings::fromString ( component ); + + if ( settings == AutomatonSettings::Settings::STATES ) + return "automaton::States"; + + if ( settings == AutomatonSettings::Settings::FINAL_STATES ) + return "automaton::FinalStates"; + + if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) + return "automaton::InitialState"; + + if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) + return "automaton::InputAlphabet"; + + if ( settings == AutomatonSettings::Settings::TRANSITIONS ) + return "automaton::Transitions"; + + throw exception::CommonException ( "Component not available" ); +} + +} /* namespace dataAccess */ diff --git a/aaccess2/src/access/AutomatonAccess.h b/aaccess2/src/access/AutomatonAccess.h new file mode 100644 index 0000000000..5b58d03ec6 --- /dev/null +++ b/aaccess2/src/access/AutomatonAccess.h @@ -0,0 +1,22 @@ +/* + * AutomatonAccess.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef AUTOMATA_ACCESS_H_ +#define AUTOMATA_ACCESS_H_ + +#include <string> + +namespace dataAccess { + +class AutomatonAccess { +public: + static std::string access ( const std::string & settings ); +}; + +} /* namespace dataAccess */ + +#endif /* AUTOMATA_ACCESS_H_ */ diff --git a/aaccess2/src/access/GrammarAccess.cpp b/aaccess2/src/access/GrammarAccess.cpp new file mode 100644 index 0000000000..7996e43a95 --- /dev/null +++ b/aaccess2/src/access/GrammarAccess.cpp @@ -0,0 +1,31 @@ +/* + * GrammarAccess.cpp + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#include "GrammarAccess.h" +#include "settings/GrammarSettings.h" + +namespace dataAccess { + +std::string GrammarAccess::access ( const std::string & component ) { + GrammarSettings::Settings settings = dataAccess::GrammarSettings::fromString ( component ); + + if ( settings == GrammarSettings::Settings::NONTERMINALS ) + return "grammar::NonterminalAlphabet"; + + if ( settings == GrammarSettings::Settings::TERMINALS ) + return "grammar::TerminalAlphabet"; + + if ( settings == GrammarSettings::Settings::INITIAL_SYMBOLS ) + return "grammar::InitialSymbol"; + + if ( settings == GrammarSettings::Settings::RULES ) + return "grammar::Rules"; + + throw exception::CommonException ( "Component not available" ); +} + +} /* namespace dataAccess */ diff --git a/aaccess2/src/access/GrammarAccess.h b/aaccess2/src/access/GrammarAccess.h new file mode 100644 index 0000000000..0970d469f0 --- /dev/null +++ b/aaccess2/src/access/GrammarAccess.h @@ -0,0 +1,22 @@ +/* + * GrammarAccess.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef GRAMMAR_ACCESS_H_ +#define GRAMMAR_ACCESS_H_ + +#include <string> + +namespace dataAccess { + +class GrammarAccess { +public: + static std::string access ( const std::string & settings ); +}; + +} /* namespace dataAccess */ + +#endif /* GRAMMAR_ACCESS_H_ */ diff --git a/aaccess2/src/access/RegExpAccess.cpp b/aaccess2/src/access/RegExpAccess.cpp new file mode 100644 index 0000000000..fa11a9371d --- /dev/null +++ b/aaccess2/src/access/RegExpAccess.cpp @@ -0,0 +1,25 @@ +/* + * RegExpAccess.cpp + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#include "RegExpAccess.h" +#include "settings/RegExpSettings.h" + +namespace dataAccess { + +std::string RegExpAccess::access ( const std::string & component ) { + RegExpSettings::Settings settings = dataAccess::RegExpSettings::fromString ( component ); + + if ( settings == RegExpSettings::Settings::ALPHABET ) + return "regexp::Alphabet"; + + if ( settings == RegExpSettings::Settings::CONTENT ) + return "regexp::Content"; + + throw exception::CommonException ( "Component not available" ); +} + +} /* namespace dataAccess */ diff --git a/aaccess2/src/access/RegExpAccess.h b/aaccess2/src/access/RegExpAccess.h new file mode 100644 index 0000000000..18529ba361 --- /dev/null +++ b/aaccess2/src/access/RegExpAccess.h @@ -0,0 +1,22 @@ +/* + * RegExpAccess.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef REG_EXP_ACCESS_H_ +#define REG_EXP_ACCESS_H_ + +#include <string> + +namespace dataAccess { + +class RegExpAccess { +public: + static std::string access ( const std::string & settings ); +}; + +} /* namespace dataAccess */ + +#endif /* REG_EXP_ACCESS_H_ */ diff --git a/aaccess2/src/access/StringAccess.cpp b/aaccess2/src/access/StringAccess.cpp new file mode 100644 index 0000000000..a729b82fd5 --- /dev/null +++ b/aaccess2/src/access/StringAccess.cpp @@ -0,0 +1,25 @@ +/* + * StringAccess.cpp + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#include "StringAccess.h" +#include "settings/StringSettings.h" + +namespace dataAccess { + +std::string StringAccess::access ( const std::string & component ) { + StringSettings::Settings settings = dataAccess::StringSettings::fromString ( component ); + + if ( settings == StringSettings::Settings::ALPHABET ) + return "string::GeneralAlphabet"; + + if ( settings == StringSettings::Settings::CONTENT ) + return "string::Content"; + + throw exception::CommonException ( "Component not available" ); +} + +} /* namespace dataAccess */ diff --git a/aaccess2/src/access/StringAccess.h b/aaccess2/src/access/StringAccess.h new file mode 100644 index 0000000000..cfa16f6831 --- /dev/null +++ b/aaccess2/src/access/StringAccess.h @@ -0,0 +1,22 @@ +/* + * StringAccess.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef STRING_ACCESS_H_ +#define STRING_ACCESS_H_ + +#include <string> + +namespace dataAccess { + +class StringAccess { +public: + static std::string access ( const std::string & settings ); +}; + +} /* namespace dataAccess */ + +#endif /* STRING_ACCESS_H_ */ diff --git a/aaccess2/src/access/TreeAccess.cpp b/aaccess2/src/access/TreeAccess.cpp new file mode 100644 index 0000000000..dd389ea71e --- /dev/null +++ b/aaccess2/src/access/TreeAccess.cpp @@ -0,0 +1,31 @@ +/* + * TreeAccess.cpp + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#include "TreeAccess.h" +#include "settings/TreeSettings.h" + +namespace dataAccess { + +std::string TreeAccess::access ( const std::string & component ) { + TreeSettings::Settings settings = dataAccess::TreeSettings::fromString ( component ); + + if ( settings == TreeSettings::Settings::ALPHABET ) + return "tree::GeneralAlphabet"; + + if ( settings == TreeSettings::Settings::CONTENT ) + return "tree::Content"; + + if ( settings == TreeSettings::Settings::SUBTREE_WILDCARD ) + return "tree::SubtreeWildcard"; + + if ( settings == TreeSettings::Settings::NONLINEAR_VARIABLES ) + return "tree::NonlinearAlphabet"; + + throw exception::CommonException ( "Component not available" ); +} + +} /* namespace dataAccess */ diff --git a/aaccess2/src/access/TreeAccess.h b/aaccess2/src/access/TreeAccess.h new file mode 100644 index 0000000000..b05d1cfd29 --- /dev/null +++ b/aaccess2/src/access/TreeAccess.h @@ -0,0 +1,22 @@ +/* + * TreeAccess.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef TREE_ACCESS_H_ +#define TREE_ACCESS_H_ + +#include <string> + +namespace dataAccess { + +class TreeAccess { +public: + static std::string access ( const std::string & settings ); +}; + +} /* namespace dataAccess */ + +#endif /* TREE_ACCESS_H_ */ diff --git a/alib2aux/src/access/settings/AutomatonSettings.h b/aaccess2/src/access/settings/AutomatonSettings.h similarity index 100% rename from alib2aux/src/access/settings/AutomatonSettings.h rename to aaccess2/src/access/settings/AutomatonSettings.h diff --git a/alib2aux/src/access/settings/GrammarSettings.h b/aaccess2/src/access/settings/GrammarSettings.h similarity index 100% rename from alib2aux/src/access/settings/GrammarSettings.h rename to aaccess2/src/access/settings/GrammarSettings.h diff --git a/alib2aux/src/access/settings/RegExpSettings.h b/aaccess2/src/access/settings/RegExpSettings.h similarity index 100% rename from alib2aux/src/access/settings/RegExpSettings.h rename to aaccess2/src/access/settings/RegExpSettings.h diff --git a/alib2aux/src/access/settings/SettingsHelper.h b/aaccess2/src/access/settings/SettingsHelper.h similarity index 100% rename from alib2aux/src/access/settings/SettingsHelper.h rename to aaccess2/src/access/settings/SettingsHelper.h diff --git a/alib2aux/src/access/settings/StringSettings.h b/aaccess2/src/access/settings/StringSettings.h similarity index 100% rename from alib2aux/src/access/settings/StringSettings.h rename to aaccess2/src/access/settings/StringSettings.h diff --git a/alib2aux/src/access/settings/TreeSettings.h b/aaccess2/src/access/settings/TreeSettings.h similarity index 100% rename from alib2aux/src/access/settings/TreeSettings.h rename to aaccess2/src/access/settings/TreeSettings.h diff --git a/alib2aux/src/access/AutomatonAccess.cpp b/alib2aux/src/access/AutomatonAccess.cpp deleted file mode 100644 index 0c2561ae80..0000000000 --- a/alib2aux/src/access/AutomatonAccess.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/* - * AutomatonAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "AutomatonAccess.h" - -#include <automaton/FSM/NFA.h> -#include <automaton/FSM/DFA.h> - -#include <automaton/PDA/InputDrivenNPDA.h> -#include <automaton/PDA/InputDrivenDPDA.h> - -#include <automaton/PDA/DPDA.h> -#include <automaton/PDA/NPDA.h> - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -#include "common/AccessHelpers.hpp" -#include <registration/AlgoRegistration.hpp> - -namespace dataAccess { - -void AutomatonAccess::access ( automaton::Automaton & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - dispatch ( automaton.getData ( ), settings, operation, argument ); -} - -void AutomatonAccess::access ( automaton::NFA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == AutomatonSettings::Settings::STATES ) - return handleComponent < automaton::States > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::FINAL_STATES ) - return handleComponent < automaton::FinalStates > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) - return handleElement < automaton::InitialState > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) - return handleComponent < automaton::InputAlphabet > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::TRANSITIONS && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( automaton.getTransitions ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto AutomatonAccessNFA = registration::OverloadRegister < AutomatonAccess, void, automaton::NFA < > > ( AutomatonAccess::access ); - -void AutomatonAccess::access ( automaton::DFA<> & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == AutomatonSettings::Settings::STATES ) - return handleComponent < automaton::States > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::FINAL_STATES ) - return handleComponent < automaton::FinalStates > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) - return handleElement < automaton::InitialState > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) - return handleComponent < automaton::InputAlphabet > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::TRANSITIONS && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( automaton.getTransitions ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto AutomatonAccessDFA = registration::OverloadRegister < AutomatonAccess, void, automaton::DFA<> > ( AutomatonAccess::access ); - -void AutomatonAccess::access ( automaton::InputDrivenNPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == AutomatonSettings::Settings::STATES ) - return handleComponent < automaton::States > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::FINAL_STATES ) - return handleComponent < automaton::FinalStates > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) - return handleElement < automaton::InitialState > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) - return handleComponent < automaton::InputAlphabet > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::TRANSITIONS && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( automaton.getTransitions ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto AutomatonAccessInputDrivenNPDA = registration::OverloadRegister < AutomatonAccess, void, automaton::InputDrivenNPDA < > > ( AutomatonAccess::access ); - -void AutomatonAccess::access ( automaton::InputDrivenDPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == AutomatonSettings::Settings::STATES ) - return handleComponent < automaton::States > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::FINAL_STATES ) - return handleComponent < automaton::FinalStates > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) - return handleElement < automaton::InitialState > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) - return handleComponent < automaton::InputAlphabet > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::TRANSITIONS && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( automaton.getTransitions ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto AutomatonAccessInputDrivenDPDA = registration::OverloadRegister < AutomatonAccess, void, automaton::InputDrivenDPDA < > > ( AutomatonAccess::access ); - -void AutomatonAccess::access ( automaton::NPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == AutomatonSettings::Settings::STATES ) - return handleComponent < automaton::States > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::FINAL_STATES ) - return handleComponent < automaton::FinalStates > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) - return handleElement < automaton::InitialState > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) - return handleComponent < automaton::InputAlphabet > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::TRANSITIONS && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( automaton.getTransitions ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto AutomatonAccessNPDA = registration::OverloadRegister < AutomatonAccess, void, automaton::NPDA < > > ( AutomatonAccess::access ); - -void AutomatonAccess::access ( automaton::DPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == AutomatonSettings::Settings::STATES ) - return handleComponent < automaton::States > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::FINAL_STATES ) - return handleComponent < automaton::FinalStates > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INITIAL_STATES ) - return handleElement < automaton::InitialState > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::INPUT_ALPHABET ) - return handleComponent < automaton::InputAlphabet > ( automaton, operation, argument ); - - if ( settings == AutomatonSettings::Settings::TRANSITIONS && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( automaton.getTransitions ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto AutomatonAccessDPDA = registration::OverloadRegister < AutomatonAccess, void, automaton::DPDA < > > ( AutomatonAccess::access ); - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/AutomatonAccess.h b/alib2aux/src/access/AutomatonAccess.h deleted file mode 100644 index 1629f1c22e..0000000000 --- a/alib2aux/src/access/AutomatonAccess.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * AutomatonAccess.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef AUTOMATA_ACCESS_H_ -#define AUTOMATA_ACCESS_H_ - -#include <core/multipleDispatch.hpp> - -#include "automaton/Automaton.h" -#include "automaton/AutomatonFeatures.h" - -#include "settings/AutomatonSettings.h" -#include "settings/OperationSettings.h" -#include <set> - -namespace dataAccess { - -class AutomatonAccess : public alib::SingleDispatch < AutomatonAccess, void, automaton::AutomatonBase &, const AutomatonSettings::Settings &, const OperationSettings::Settings &, ext::deque < sax::Token > & > { -public: - static void access ( automaton::Automaton & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( automaton::NFA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( automaton::DFA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( automaton::InputDrivenNPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( automaton::InputDrivenDPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( automaton::DPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( automaton::NPDA < > & automaton, const AutomatonSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); -}; - -} /* namespace dataAccess */ - -#endif /* AUTOMATA_ACCESS_H_ */ diff --git a/alib2aux/src/access/ExceptionAccess.cpp b/alib2aux/src/access/ExceptionAccess.cpp deleted file mode 100644 index 9d0f936850..0000000000 --- a/alib2aux/src/access/ExceptionAccess.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * ExceptionAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "ExceptionAccess.h" - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -namespace dataAccess { - -void ExceptionAccess::access ( const exception::CommonException & exception, const ExceptionSettings::Settings & settings, const OperationSettings::Settings & operation ) { - if ( settings == ExceptionSettings::Settings::CAUSE && operation == OperationSettings::Settings::GET ) { - common::Streams::out << exception.getCause ( ); - return; - } - - if ( settings == ExceptionSettings::Settings::BACKTRACE && operation == OperationSettings::Settings::GET ) { - common::Streams::out << exception.getBacktrace ( ); - return; - } - - if ( settings == ExceptionSettings::Settings::COMMAND && operation == OperationSettings::Settings::GET ) { - common::Streams::out << exception.getCommand ( ); - return; - } - - throw exception::CommonException ( "Component not available" ); -} - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/ExceptionAccess.h b/alib2aux/src/access/ExceptionAccess.h deleted file mode 100644 index 52852269c0..0000000000 --- a/alib2aux/src/access/ExceptionAccess.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * ExceptionAccess.h - * - * Created on: 10. 7. 2016 - * Author: Jan Travnicek - */ - -#ifndef EXCEPTION_ACCESS_H_ -#define EXCEPTION_ACCESS_H_ - -#include <exception/CommonException.h> - -#include "settings/ExceptionSettings.h" -#include "settings/OperationSettings.h" -#include <set> - -namespace dataAccess { - -class ExceptionAccess { -public: - static void access ( const exception::CommonException & exception, const ExceptionSettings::Settings & settings, const OperationSettings::Settings & operation ); -}; - -} /* namespace dataAccess */ - -#endif /* EXCEPTION_ACCESS_H_ */ diff --git a/alib2aux/src/access/GrammarAccess.cpp b/alib2aux/src/access/GrammarAccess.cpp deleted file mode 100644 index 82ec360fef..0000000000 --- a/alib2aux/src/access/GrammarAccess.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * GrammarAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "GrammarAccess.h" - -#include <grammar/Regular/RightRG.h> -#include <grammar/Regular/RightLG.h> - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -#include "common/AccessHelpers.hpp" -#include <registration/AlgoRegistration.hpp> - -namespace dataAccess { - -void GrammarAccess::access ( grammar::Grammar & grammar, const GrammarSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - dispatch ( grammar.getData ( ), settings, operation, argument ); -} - -void GrammarAccess::access ( grammar::RightRG < > & grammar, const GrammarSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == GrammarSettings::Settings::NONTERMINALS ) - return handleComponent < grammar::NonterminalAlphabet > ( grammar, operation, argument ); - - if ( settings == GrammarSettings::Settings::TERMINALS ) - return handleComponent < grammar::TerminalAlphabet > ( grammar, operation, argument ); - - if ( settings == GrammarSettings::Settings::INITIAL_SYMBOLS ) - return handleElement < grammar::InitialSymbol > ( grammar, operation, argument ); - - if ( settings == GrammarSettings::Settings::RULES && operation == OperationSettings::Settings::GET ) - alib::XmlDataFactory::toStdout ( grammar.getRules ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto GrammarAccessRightRG = registration::OverloadRegister < GrammarAccess, void, grammar::RightRG < > > ( GrammarAccess::access ); - -void GrammarAccess::access ( grammar::RightLG < > & grammar, const GrammarSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == GrammarSettings::Settings::NONTERMINALS ) - return handleComponent < grammar::NonterminalAlphabet > ( grammar, operation, argument ); - - if ( settings == GrammarSettings::Settings::TERMINALS ) - return handleComponent < grammar::TerminalAlphabet > ( grammar, operation, argument ); - - if ( settings == GrammarSettings::Settings::INITIAL_SYMBOLS ) - return handleElement < grammar::InitialSymbol > ( grammar, operation, argument ); - - if ( settings == GrammarSettings::Settings::RULES && operation == OperationSettings::Settings::GET ) - alib::XmlDataFactory::toStdout ( grammar.getRules ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto GrammarAccessRightLG = registration::OverloadRegister < GrammarAccess, void, grammar::RightLG < > > ( GrammarAccess::access ); - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/GrammarAccess.h b/alib2aux/src/access/GrammarAccess.h deleted file mode 100644 index 6331b97357..0000000000 --- a/alib2aux/src/access/GrammarAccess.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * GrammarAccess.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef GRAMMAR_ACCESS_H_ -#define GRAMMAR_ACCESS_H_ - -#include <core/multipleDispatch.hpp> - -#include "grammar/Grammar.h" -#include "grammar/GrammarFeatures.h" - -#include "settings/GrammarSettings.h" -#include "settings/OperationSettings.h" -#include <set> - -namespace dataAccess { - -class GrammarAccess : public alib::SingleDispatch < GrammarAccess, void, grammar::GrammarBase &, const GrammarSettings::Settings &, const OperationSettings::Settings &, ext::deque < sax::Token > & > { -public: - static void access ( grammar::Grammar & grammar, const GrammarSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( grammar::RightRG < > & grammar, const GrammarSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( grammar::RightLG < > & grammar, const GrammarSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); -}; - -} /* namespace dataAccess */ - -#endif /* GRAMMAR_ACCESS_H_ */ diff --git a/alib2aux/src/access/PairSetAccess.cpp b/alib2aux/src/access/PairSetAccess.cpp deleted file mode 100644 index 67e6522fad..0000000000 --- a/alib2aux/src/access/PairSetAccess.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * PairSetAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "PairSetAccess.h" - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -namespace dataAccess { - -void PairSetAccess::access ( const ext::set < ext::pair < alib::Object, alib::Object > > & pairSet, const PairSetSettings::Settings & settings, const OperationSettings::Settings & operation ) { - if ( settings == PairSetSettings::Settings::FIRST && operation == OperationSettings::Settings::GET ) { - ext::set < alib::Object > res; - for ( const ext::pair < alib::Object, alib::Object > & pair : pairSet ) - res.insert ( pair.first ); - - return alib::XmlDataFactory::toStdout ( res ); - } - - if ( settings == PairSetSettings::Settings::SECOND && operation == OperationSettings::Settings::GET ) { - ext::set < alib::Object > res; - for ( const ext::pair < alib::Object, alib::Object > & pair : pairSet ) - res.insert ( pair.second ); - - return alib::XmlDataFactory::toStdout ( res ); - } - - throw exception::CommonException ( "Component not available" ); -} - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/PairSetAccess.h b/alib2aux/src/access/PairSetAccess.h deleted file mode 100644 index 796dbaff12..0000000000 --- a/alib2aux/src/access/PairSetAccess.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * PairSetAccess.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef PAIR_SET_ACCESS_H_ -#define PAIR_SET_ACCESS_H_ - -#include <core/multipleDispatch.hpp> - -#include <object/Object.h> - -#include "settings/PairSetSettings.h" -#include "settings/OperationSettings.h" -#include <set> -#include <pair> - -namespace dataAccess { - -class PairSetAccess { -public: - static void access ( const ext::set < ext::pair < alib::Object, alib::Object > > & pairSet, const PairSetSettings::Settings & settings, const OperationSettings::Settings & operation ); - -}; - -} /* namespace dataAccess */ - -#endif /* PAIR_SET_ACCESS_H_ */ diff --git a/alib2aux/src/access/PairSetFirst.cpp b/alib2aux/src/access/PairSetFirst.cpp new file mode 100644 index 0000000000..e0e33dc5c5 --- /dev/null +++ b/alib2aux/src/access/PairSetFirst.cpp @@ -0,0 +1,16 @@ +/* + * PairSetFirst.cpp + * + * Created on: Nov 24, 2017 + * Author: Jan Travnicek + */ + +#include "PairSetFirst.h" + +#include <registration/AlgoRegistration.hpp> + +namespace { + +auto pairSetFirstObjectObject = registration::AbstractRegister < dataAccess::PairSetFirst, ext::set < alib::Object >, const ext::set < ext::pair < alib::Object, alib::Object > > & > ( dataAccess::PairSetFirst::access ); + +} /* namespace */ diff --git a/alib2aux/src/access/PairSetFirst.h b/alib2aux/src/access/PairSetFirst.h new file mode 100644 index 0000000000..f52555a960 --- /dev/null +++ b/alib2aux/src/access/PairSetFirst.h @@ -0,0 +1,31 @@ +/* + * PairSetFirst.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef PAIR_SET_FIRST_H_ +#define PAIR_SET_FIRST_H_ + +#include <set> +#include <pair> + +namespace dataAccess { + +class PairSetFirst { +public: + template < class First, class Second > + static ext::set < First > access ( const ext::set < ext::pair < First, Second > > & pairSet ) { + ext::set < First > res; + for ( const ext::pair < First, Second > & pair : pairSet ) + res.insert ( pair.first ); + + return res; + } + +}; + +} /* namespace dataAccess */ + +#endif /* PAIR_SET_FIRST_H_ */ diff --git a/alib2aux/src/access/PairSetSecond.cpp b/alib2aux/src/access/PairSetSecond.cpp new file mode 100644 index 0000000000..7d6516ba88 --- /dev/null +++ b/alib2aux/src/access/PairSetSecond.cpp @@ -0,0 +1,16 @@ +/* + * PairSetSecond.cpp + * + * Created on: Nov 24, 2017 + * Author: Jan Travnicek + */ + +#include "PairSetSecond.h" + +#include <registration/AlgoRegistration.hpp> + +namespace { + +auto pairSetSecondObjectObject = registration::AbstractRegister < dataAccess::PairSetSecond, ext::set < alib::Object >, const ext::set < ext::pair < alib::Object, alib::Object > > & > ( dataAccess::PairSetSecond::access ); + +} /* namespace */ diff --git a/alib2aux/src/access/PairSetSecond.h b/alib2aux/src/access/PairSetSecond.h new file mode 100644 index 0000000000..8101f7d1f4 --- /dev/null +++ b/alib2aux/src/access/PairSetSecond.h @@ -0,0 +1,31 @@ +/* + * PairSetSecond.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef PAIR_SET_FIRST_H_ +#define PAIR_SET_FIRST_H_ + +#include <set> +#include <pair> + +namespace dataAccess { + +class PairSetSecond { +public: + template < class First, class Second > + static ext::set < Second > access ( const ext::set < ext::pair < First, Second > > & pairSet ) { + ext::set < Second > res; + for ( const ext::pair < First, Second > & pair : pairSet ) + res.insert ( pair.first ); + + return res; + } + +}; + +} /* namespace dataAccess */ + +#endif /* PAIR_SET_FIRST_H_ */ diff --git a/alib2aux/src/access/RegExpAccess.cpp b/alib2aux/src/access/RegExpAccess.cpp deleted file mode 100644 index 3769912066..0000000000 --- a/alib2aux/src/access/RegExpAccess.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * RegExpAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "RegExpAccess.h" - -#include <exception/CommonException.h> - -#include <regexp/formal/FormalRegExp.h> -#include <regexp/formal/FormalRegExpElement.h> -#include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/unbounded/UnboundedRegExpElement.h> - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -#include "common/AccessHelpers.hpp" -#include <registration/AlgoRegistration.hpp> - -namespace dataAccess { - -void RegExpAccess::access ( regexp::RegExp & regexp, const RegExpSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - dispatch ( regexp.getData ( ), settings, operation, argument ); -} - -void RegExpAccess::access ( regexp::FormalRegExp < > & regexp, const RegExpSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == RegExpSettings::Settings::ALPHABET ) - return handleComponent < regexp::GeneralAlphabet > ( regexp, operation, argument ); - - if ( settings == RegExpSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) alib::XmlDataFactory::toStdout ( regexp.getRegExp ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto RegExpAccessFormalRegExp = registration::OverloadRegister < RegExpAccess, void, regexp::FormalRegExp < > > ( RegExpAccess::access ); - -void RegExpAccess::access ( regexp::UnboundedRegExp < > & regexp, const RegExpSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == RegExpSettings::Settings::ALPHABET ) - return handleComponent < regexp::GeneralAlphabet > ( regexp, operation, argument ); - - if ( settings == RegExpSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) alib::XmlDataFactory::toStdout ( regexp.getRegExp ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto RegExpAccessUnboundedRegExp = registration::OverloadRegister < RegExpAccess, void, regexp::UnboundedRegExp < > > ( RegExpAccess::access ); - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/RegExpAccess.h b/alib2aux/src/access/RegExpAccess.h deleted file mode 100644 index a9c3d9b143..0000000000 --- a/alib2aux/src/access/RegExpAccess.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * RegExpAccess.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef REG_EXP_ACCESS_H_ -#define REG_EXP_ACCESS_H_ - -#include <core/multipleDispatch.hpp> - -#include "regexp/RegExp.h" -#include "regexp/RegExpFeatures.h" - -#include "settings/RegExpSettings.h" -#include "settings/OperationSettings.h" -#include <set> - -namespace dataAccess { - -class RegExpAccess : public alib::SingleDispatch < RegExpAccess, void, regexp::RegExpBase &, const RegExpSettings::Settings &, const OperationSettings::Settings &, ext::deque < sax::Token > & > { -public: - static void access ( regexp::RegExp & regexp, const RegExpSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( regexp::UnboundedRegExp < > & regexp, const RegExpSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( regexp::FormalRegExp < > & regexp, const RegExpSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); -}; - -} /* namespace dataAccess */ - -#endif /* REG_EXP_ACCESS_H_ */ diff --git a/alib2aux/src/access/StringAccess.cpp b/alib2aux/src/access/StringAccess.cpp deleted file mode 100644 index b50c582941..0000000000 --- a/alib2aux/src/access/StringAccess.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * StringAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "StringAccess.h" - -#include <string/LinearString.h> -#include <string/CyclicString.h> - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -#include "common/AccessHelpers.hpp" -#include <registration/AlgoRegistration.hpp> - -namespace dataAccess { - -void StringAccess::access ( string::String & string, const StringSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - dispatch ( string.getData ( ), settings, operation, argument ); -} - -void StringAccess::access ( string::LinearString < > & string, const StringSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == StringSettings::Settings::ALPHABET ) - return handleComponent < string::GeneralAlphabet > ( string, operation, argument ); - - if ( settings == StringSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( string.getContent ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto StringAccessFormalString = registration::OverloadRegister < StringAccess, void, string::LinearString < > > ( StringAccess::access ); - -void StringAccess::access ( string::CyclicString < > & string, const StringSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == StringSettings::Settings::ALPHABET ) - return handleComponent < string::GeneralAlphabet > ( string, operation, argument ); - - if ( settings == StringSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( string.getContent ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto StringAccessUnboundedString = registration::OverloadRegister < StringAccess, void, string::CyclicString < > > ( StringAccess::access ); - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/StringAccess.h b/alib2aux/src/access/StringAccess.h deleted file mode 100644 index 7a8e94f05a..0000000000 --- a/alib2aux/src/access/StringAccess.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * StringAccess.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef STRING_ACCESS_H_ -#define STRING_ACCESS_H_ - -#include <core/multipleDispatch.hpp> - -#include "string/String.h" -#include "string/StringFeatures.h" - -#include "settings/StringSettings.h" -#include "settings/OperationSettings.h" -#include <set> - -namespace dataAccess { - -class StringAccess : public alib::SingleDispatch < StringAccess, void, string::StringBase &, const StringSettings::Settings &, const OperationSettings::Settings &, ext::deque < sax::Token > & > { -public: - static void access ( string::String & string, const StringSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( string::LinearString < > & string, const StringSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( string::CyclicString < > & string, const StringSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); -}; - -} /* namespace dataAccess */ - -#endif /* STRING_ACCESS_H_ */ diff --git a/alib2aux/src/access/TreeAccess.cpp b/alib2aux/src/access/TreeAccess.cpp deleted file mode 100644 index a296586e8b..0000000000 --- a/alib2aux/src/access/TreeAccess.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * TreeAccess.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "TreeAccess.h" - -#include <tree/ranked/RankedTree.h> -#include <tree/ranked/RankedPattern.h> -#include <tree/ranked/RankedNonlinearPattern.h> -#include <tree/unranked/UnrankedTree.h> - -#include <factory/XmlDataFactory.hpp> -#include <container/xml/ObjectsSet.h> -#include <container/xml/ObjectsMap.h> -#include <container/xml/ObjectsTuple.h> -#include <container/xml/ObjectsVector.h> -#include <container/xml/ObjectsVariant.h> -#include <container/xml/ObjectsPair.h> -#include <container/xml/ObjectsTree.h> - -#include "common/AccessHelpers.hpp" -#include <registration/AlgoRegistration.hpp> - -namespace dataAccess { - -void TreeAccess::access ( tree::Tree & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - dispatch ( tree.getData ( ), settings, operation, argument ); -} - -void TreeAccess::access ( tree::RankedTree < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == TreeSettings::Settings::ALPHABET ) - return handleComponent < tree::GeneralAlphabet > ( tree, operation, argument ); - - if ( settings == TreeSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( tree.getContent ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto TreeAccessRankedTree = registration::OverloadRegister < TreeAccess, void, tree::RankedTree < > > ( TreeAccess::access ); - -void TreeAccess::access ( tree::RankedPattern < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == TreeSettings::Settings::ALPHABET ) - return handleComponent < tree::GeneralAlphabet > ( tree, operation, argument ); - - if ( settings == TreeSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( tree.getContent ( ) ); - - if ( settings == TreeSettings::Settings::SUBTREE_WILDCARD && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( tree.getSubtreeWildcard ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto TreeAccessRankedPattern = registration::OverloadRegister < TreeAccess, void, tree::RankedPattern < > > ( TreeAccess::access ); - -void TreeAccess::access ( tree::RankedNonlinearPattern < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == TreeSettings::Settings::ALPHABET ) - return handleComponent < tree::GeneralAlphabet > ( tree, operation, argument ); - - if ( settings == TreeSettings::Settings::CONTENT ) - return alib::XmlDataFactory::toStdout ( tree.getContent ( ) ); - - if ( settings == TreeSettings::Settings::SUBTREE_WILDCARD && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( tree.getSubtreeWildcard ( ) ); - - if ( settings == TreeSettings::Settings::NONLINEAR_VARIABLES && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( tree.getNonlinearVariables ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto TreeAccessRankedNonlinearPattern = registration::OverloadRegister < TreeAccess, void, tree::RankedNonlinearPattern < > > ( TreeAccess::access ); - -void TreeAccess::access ( tree::UnrankedTree < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - if ( settings == TreeSettings::Settings::ALPHABET ) - return handleComponent < tree::GeneralAlphabet > ( tree, operation, argument ); - - if ( settings == TreeSettings::Settings::CONTENT && operation == OperationSettings::Settings::GET ) - return alib::XmlDataFactory::toStdout ( tree.getContent ( ) ); - - throw exception::CommonException ( "Component not available" ); -} - -auto TreeAccessUnrankedTree = registration::OverloadRegister < TreeAccess, void, tree::UnrankedTree < > > ( TreeAccess::access ); - -} /* namespace dataAccess */ diff --git a/alib2aux/src/access/TreeAccess.h b/alib2aux/src/access/TreeAccess.h deleted file mode 100644 index f609b1d4bb..0000000000 --- a/alib2aux/src/access/TreeAccess.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * TreeAccess.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef TREE_ACCESS_H_ -#define TREE_ACCESS_H_ - -#include <core/multipleDispatch.hpp> - -#include "tree/Tree.h" -#include "tree/TreeFeatures.h" - -#include "settings/TreeSettings.h" -#include "settings/OperationSettings.h" -#include <set> - -namespace dataAccess { - -class TreeAccess : public alib::SingleDispatch < TreeAccess, void, tree::TreeBase &, const TreeSettings::Settings &, const OperationSettings::Settings &, ext::deque < sax::Token > & > { -public: - static void access ( tree::Tree & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - - static void access ( tree::RankedTree < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( tree::RankedPattern < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( tree::RankedNonlinearPattern < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); - static void access ( tree::UnrankedTree < > & tree, const TreeSettings::Settings & settings, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ); -}; - -} /* namespace dataAccess */ - -#endif /* TREE_ACCESS_H_ */ diff --git a/alib2aux/src/access/common/AccessHelpers.hpp b/alib2aux/src/access/common/AccessHelpers.hpp deleted file mode 100644 index d1a9b9e71c..0000000000 --- a/alib2aux/src/access/common/AccessHelpers.hpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * AccessHelpers.h - * - * Created on: 5. 8. 2016 - * Author: Jan Travnicek - */ - -#ifndef ACCESS_HELPERS_HPP_ -#define ACCESS_HELPERS_HPP_ - -namespace dataAccess { - -template < class Element, class DataType > -void handleElement ( DataType & data, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - typedef typename std::remove_const < typename std::remove_reference < decltype ( data.template accessComponent < Element > ( ).get ( ) ) >::type >::type ElementDataType; - - if ( operation == OperationSettings::Settings::GET ) { - alib::XmlDataFactory::toStdout ( data.template accessComponent < Element > ( ).get ( ) ); - } - - if ( operation == OperationSettings::Settings::SET ) { - ElementDataType symbols = alib::XmlDataFactory::fromTokens ( std::move ( argument ) ); - - data.template accessComponent < Element > ( ).set ( std::move ( symbols ) ); - - alib::XmlDataFactory::toStdout ( data ); - } - - if ( operation == OperationSettings::Settings::ADD || operation == OperationSettings::Settings::REMOVE ) - throw exception::CommonException ( "Invalid access operation" ); -} - -template < class Component, class DataType > -void handleComponent ( DataType & data, const OperationSettings::Settings & operation, ext::deque < sax::Token > & argument ) { - typedef typename std::remove_const < typename std::remove_reference < decltype ( data.template accessComponent < Component > ( ).get ( ) ) >::type >::type ComponentDataType; - - if ( operation == OperationSettings::Settings::GET ) { - alib::XmlDataFactory::toStdout ( data.template accessComponent < Component > ( ).get ( ) ); - } - - if ( operation == OperationSettings::Settings::ADD ) { - ComponentDataType symbols = alib::XmlDataFactory::fromTokens ( std::move ( argument ) ); - - data.template accessComponent < Component > ( ).add ( std::move ( symbols ) ); - - alib::XmlDataFactory::toStdout ( data ); - } - - if ( operation == OperationSettings::Settings::SET ) { - ComponentDataType symbols = alib::XmlDataFactory::fromTokens ( std::move ( argument ) ); - - data.template accessComponent < Component > ( ).set ( std::move ( symbols ) ); - - alib::XmlDataFactory::toStdout ( data ); - } - - if ( operation == OperationSettings::Settings::REMOVE ) { - ComponentDataType symbols = alib::XmlDataFactory::fromTokens ( std::move ( argument ) ); - - data.template accessComponent < Component > ( ).remove ( std::move ( symbols ) ); - - alib::XmlDataFactory::toStdout ( data ); - } -} - -} /* namespace dataAccess */ - -#endif /* ACCESS_HELPERS_HPP_ */ diff --git a/alib2aux/src/access/settings/ExceptionSettings.h b/alib2aux/src/access/settings/ExceptionSettings.h deleted file mode 100644 index 3d8274e82b..0000000000 --- a/alib2aux/src/access/settings/ExceptionSettings.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * ExceptionSettings.h - * - * Created on: 10. 7. 2016 - * Author: Jan Travnicek - */ - -#ifndef __EXCEPTION_SETTINGS_H__ -#define __EXCEPTION_SETTINGS_H__ - -#include "SettingsHelper.h" - -namespace dataAccess { - -class ExceptionEnum { -public: - enum class Settings { - CAUSE, BACKTRACE, COMMAND, __MAX__ - }; - - static std::string toString ( ExceptionEnum::Settings settings ) { - switch ( settings ) { - case ExceptionEnum::Settings::CAUSE: - return "cause"; - - case ExceptionEnum::Settings::BACKTRACE: - return "backtrace"; - - case ExceptionEnum::Settings::COMMAND: - return "command"; - - case ExceptionEnum::Settings::__MAX__: - throw exception::CommonException ( "Invalid enumeration" ); - } - throw exception::CommonException ( "Invalid enumeration" ); - } - -}; - -class ExceptionSettings : public ExceptionEnum, public EnumClassHelper < ExceptionEnum > { -}; - -} /* namespace dataAccess */ - -#endif /* __EXCEPTION_SETTINGS_H__ */ diff --git a/alib2aux/src/access/settings/OperationSettings.h b/alib2aux/src/access/settings/OperationSettings.h deleted file mode 100644 index 0913d8c8bc..0000000000 --- a/alib2aux/src/access/settings/OperationSettings.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * OperationSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __OPERATION_SETTINGS_H__ -#define __OPERATION_SETTINGS_H__ - -#include "SettingsHelper.h" - -namespace dataAccess { - -class OperationEnum { -public: - enum class Settings { - GET, SET, ADD, REMOVE, __MAX__ - }; - - static std::string toString ( OperationEnum::Settings settings ) { - switch ( settings ) { - case OperationEnum::Settings::GET: - return "get"; - - case OperationEnum::Settings::SET: - return "set"; - - case OperationEnum::Settings::ADD: - return "add"; - - case OperationEnum::Settings::REMOVE: - return "remove"; - - case OperationEnum::Settings::__MAX__: - throw exception::CommonException ( "Invalid enumeration" ); - } - throw exception::CommonException ( "Invalid enumeration" ); - } - -}; - -class OperationSettings : public OperationEnum, public EnumClassHelper < OperationEnum > { -}; - -} /* namespace dataAccess */ - -#endif /* __OPERATION_SETTINGS_H__ */ diff --git a/alib2aux/src/access/settings/PairSetSettings.h b/alib2aux/src/access/settings/PairSetSettings.h deleted file mode 100644 index 5721e87a73..0000000000 --- a/alib2aux/src/access/settings/PairSetSettings.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * PairSetSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __PAIR_SET_SETTINGS_H__ -#define __PAIR_SET_SETTINGS_H__ - -#include "SettingsHelper.h" - -namespace dataAccess { - -class PairSetEnum { -public: - enum class Settings { - FIRST, SECOND, __MAX__ - }; - - static std::string toString ( PairSetEnum::Settings settings ) { - switch ( settings ) { - case PairSetEnum::Settings::FIRST: - return "first"; - - case PairSetEnum::Settings::SECOND: - return "second"; - - case PairSetEnum::Settings::__MAX__: - throw exception::CommonException ( "Invalid enumeration" ); - } - throw exception::CommonException ( "Invalid enumeration" ); - } - -}; - -class PairSetSettings : public PairSetEnum, public EnumClassHelper < PairSetEnum > { -}; - -} /* namespace dataAccess */ - -#endif /* __PAIR_SET_SETTINGS_H__ */ diff --git a/tests.aarbology.sh b/tests.aarbology.sh index 54638e2655..92d264058a 100755 --- a/tests.aarbology.sh +++ b/tests.aarbology.sh @@ -424,30 +424,30 @@ runTestPattern "Exact Pattern Matching Using Compressed Bit Vectors (PrefixRanke runTestPatternEnds "Exact Pattern Matching Using Compressed Bit Vectors (PrefixRanked)" "./aarbology2 -a compressedBitParallelIndex -s <(./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) | ./aquery2 -q compressedBitParallelismPatterns -i - -p <( ./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size" -runTestPatternEnds "Exact Pattern Matching Automaton (PrefixRanked)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <( ./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" +runTestPatternEnds "Exact Pattern Matching Automaton (PrefixRanked)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <( ./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" RAND_SIZE_SUBJECT=120 runTestPatternEnds "Exact Tree Pattern Automaton (PrefixRanked)" "./aarbology2 -a exactTreePatternAutomaton -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -w <( ./aaccess2 --tree subtree_wildcard -o get -i \"\$PATTERN_FILE\" ) | ./adeterminize2 | ./arun2 -t result -i <(./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" RAND_SIZE_SUBJECT=80 -runTestNonlinearPatternEnds "Exact Nonlinear Tree Pattern Automaton (PrefixRanked)" "./aarbology2 -a exactNonlinearTreePatternAutomaton -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -w <( ./aaccess2 --tree subtree_wildcard -o get -i \"\$PATTERN_FILE\" ) -n <( ./aaccess2 --tree nonlinear_variables -o get -i \"\$PATTERN_FILE\" ) | ./adeterminize2 | ./arun2 -t result -i <(./acast2 -t PrefixRankedNonlinearPattern -i \"\$PATTERN_FILE\" | ./acast2 -t LinearString ) -f <(echo '<Set />') | ./aaccess2 --pairSet first -o get | ./astat2 -p size" +runTestNonlinearPatternEnds "Exact Nonlinear Tree Pattern Automaton (PrefixRanked)" "./aarbology2 -a exactNonlinearTreePatternAutomaton -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -w <( ./aaccess2 --tree subtree_wildcard -o get -i \"\$PATTERN_FILE\" ) -n <( ./aaccess2 --tree nonlinear_variables -o get -i \"\$PATTERN_FILE\" ) | ./adeterminize2 | ./arun2 -t result -i <(./acast2 -t PrefixRankedNonlinearPattern -i \"\$PATTERN_FILE\" | ./acast2 -t LinearString ) -f <(echo '<Set />') | ./aql2 -q 'execute < :pair_set #stdin | dataAccess::PairSetFirst - >#stdout' | ./astat2 -p size" RAND_SIZE_SUBJECT=1000 -runTestSubtree "Exact Boyer Moore Horspool (Subtree PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarTree -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestSubtree "Exact Boyer Moore Horspool (Subtree PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarTree -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" runTestSubtree "Exact Subtree Automaton (Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactSubtreeMatchingAutomaton -p \"\$PATTERN_FILE\" | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" runTestSubtree "Exact Minimized Subtree Automaton (Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactSubtreeMatchingAutomaton -p \"\$PATTERN_FILE\" | ./adeterminize2 | ./atrim2 -r -u | ./aminimize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" -runTestPattern "Exact Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestNonlinearPattern "Exact Pattern Match (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a exactPatternMatch -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestNonlinearPattern "Exact Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Pattern Match (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a exactPatternMatch -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedNonlinearPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" runTestPattern "Exact Knuth Morris Pratt (Pattern PrefixRankedBar)" "./aarbology2 -a knuthMorrisPratt -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size" runTestPattern "Exact Knuth Morris Pratt (Pattern PrefixRanked)" "./aarbology2 -a knuthMorrisPratt -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size" -runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRanked)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRankedBar)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRanked)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRankedBar)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" -runTestPattern "Exact Pattern Matching Automaton (Pattern Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactPatternMatchingAutomaton -p <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" -runTestPattern "Exact Pattern Matching Automaton (PrefixRankedBar)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -a <( ./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" +runTestPattern "Exact Pattern Matching Automaton (Pattern Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactPatternMatchingAutomaton -p <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" +runTestPattern "Exact Pattern Matching Automaton (PrefixRankedBar)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedBarPattern -i <(./aaccess2 --tree alphabet -o add -i \"\$PATTERN_FILE\" -c <( ./aaccess2 --tree alphabet -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" diff --git a/tests.astringology.sh b/tests.astringology.sh index da14ddd99f..56110840da 100755 --- a/tests.astringology.sh +++ b/tests.astringology.sh @@ -214,13 +214,13 @@ function runTest { runTest "DAWG Factors" "./astringology2 -a suffixAutomaton -s \"\$SUBJECT_FILE\" | ./aquery2 -q suffixAutomatonFactors -p \"\$PATTERN_FILE\" | ./astat2 -p size" runTest "BNDM Matcher" "./astringology2 -a bndmMatcher -p \"\$PATTERN_FILE\" | ./astringology2 -a bndmOccurrences -p - -s \"\$SUBJECT_FILE\" | ./astat2 -p size" -runTest "Exact Boyer Moore" "./astringology2 -a boyerMoore -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" +runTest "Exact Boyer Moore" "./astringology2 -a boyerMoore -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" runTest "Compressed Bit Parallelism Factors" "./astringology2 -a compressedBitParallelIndex -s \"\$SUBJECT_FILE\" | ./aquery2 -q compressedBitParallelismFactors -p \"\$PATTERN_FILE\" | ./astat2 -p size" runTest "Bit Parallelism Factors" "./astringology2 -a bitParallelIndex -s \"\$SUBJECT_FILE\" | ./aquery2 -q bitParallelismFactors -p \"\$PATTERN_FILE\" | ./astat2 -p size" runTest "Position Heap Factors" "./astringology2 -a positionHeap -s \"\$SUBJECT_FILE\" | ./aquery2 -q positionHeapFactors -p \"\$PATTERN_FILE\" | ./astat2 -p size" runTest "Suffix Array Factors" "./astringology2 -a suffixArray -s \"\$SUBJECT_FILE\" | ./aquery2 -q suffixArrayFactors -p \"\$PATTERN_FILE\" | ./astat2 -p size" runTest "Suffix Trie Factors" "./astringology2 -a suffixTrie -s \"\$SUBJECT_FILE\" | ./aquery2 -q suffixTrieFactors -p \"\$PATTERN_FILE\" | ./astat2 -p size" -runTest "Exact Boyer Moore Horspool" "./astringology2 -a boyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" -runTest "Exact Reversed Boyer Moore Horspool" "./astringology2 -a reversedBoyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" -runTest "Exact Matching Automaton" "./arun2 -t occurrences -a <(./astringology2 -a exactMatchingAutomaton -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" -runTest "Exact Dead Zone Using Bad Character Shift" "./astringology2 -a deadZoneUsingBadCharacterShift -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -a <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" +runTest "Exact Boyer Moore Horspool" "./astringology2 -a boyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" +runTest "Exact Reversed Boyer Moore Horspool" "./astringology2 -a reversedBoyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" +runTest "Exact Matching Automaton" "./arun2 -t occurrences -a <(./astringology2 -a exactMatchingAutomaton -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" +runTest "Exact Dead Zone Using Bad Character Shift" "./astringology2 -a deadZoneUsingBadCharacterShift -s \"\$SUBJECT_FILE\" -p <(./aaccess2 --string alphabet -o add -i \"\$PATTERN_FILE\" -c <(./aaccess2 --string alphabet -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" -- GitLab