dev #7

Merged
Trianta merged 2 commits from dev into master 2023-12-07 21:40:05 -06:00
4 changed files with 7270 additions and 3 deletions

View File

@ -0,0 +1,40 @@
#include "generator.hpp"
#include <iostream>
void Generator::SetArguments(int argc, char* argv[]) {
std::string tempStr;
for (int i = 1; i < argc; ++i) {
tempStr.assign(argv[i]);
if (tempStr == "-i") {
setup.isFileSet = true;
++i;
setup.filename.assign(argv[i]);
}
if (tempStr == "-k") {
setup.isPrefixSet = true;
++i;
setup.prefixLength = std::stoi(argv[i]);
}
if (tempStr == "-n") {
setup.isOutputSet = true;
++i;
setup.outputLength = std::stoi(argv[i]);
}
if (tempStr == "-h") {
PrintUsage();
exit(0);
}
}
if (!setup.isFileSet) { std::cerr << "[Setup - Error] Filename not specified" << std::endl; }
if (!setup.prefixLength) { std::cerr << "[Setup - Error] Prefix length not specified" << std::endl; }
if (!setup.outputLength) { std::cerr << "[Setup - Error] Output length not specified" << std::endl; }
if (!setup.isFileSet || !setup.isPrefixSet || !setup.isOutputSet) { PrintUsage(); }
}
void PrintUsage(void) {
std::cout << "Usage: markov -i input_file -k prefix_length -n output_length" << std::endl;
std::cout << " -i: Direct path to input file for basis" << std::endl;
std::cout << " -k: Prefix length for Markov chain" << std::endl;
std::cout << " -n: Length of output to be generated (words)" << std::endl;
std::cout << " -h: Prints this usage text" << std::endl;
}

View File

@ -1,13 +1,26 @@
#ifndef GENERATOR_HPP
#define GENERATOR_HPP
#include <string>
void PrintUsage(void);
struct ArgumentList {
std::string filename = "";
bool isFileSet = false;
int prefixLength = 0;
bool isPrefixSet = false;
int outputLength = 0;
bool isOutputSet = false;
};
struct Generator {
public:
Generator(void);
Generator(void) = default;
~Generator(void) = default;
void SetArguments(int argc, char* argv[]);
private:
int prefixLength = 0;
int outputLength = 0;
ArgumentList setup;
};
#endif // !GENERATOR_HPP

View File

@ -1,6 +1,10 @@
#include "generator.hpp"
int main(int argc, char* argv[]) {
if (argc == 1) {
PrintUsage();
exit(0);
}
Generator markovChain;
markovChain.SetArguments(argc, argv);
return 0;

7210
test/aces-up.txt Normal file

File diff suppressed because it is too large Load Diff