Website Summary Files Commits Branches @commit @diff @stats
path: root / homework / 81568 / BF_Interpreter / main.cpp
diff options
context:
space:
mode:
Commitaeb0d4f887a0c18c36b59acc7b5df08e62020c50 (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2020-10-11 21:32:48 +0300
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2020-10-11 21:33:38 +0300
Filesb6abdc6e1810326b587f2a160f39570f1f568f27 /homework/81568/BF_Interpreter/main.cpp
IPL-aeb0d4f887a0c18c36b59acc7b5df08e62020c50.tar
IPL-aeb0d4f887a0c18c36b59acc7b5df08e62020c50.tar.gz
IPL-aeb0d4f887a0c18c36b59acc7b5df08e62020c50.zip
Parent154b7cd30f21af1554ca26986ff1643e28857727 (diff)
Removed old homeworks
1 files changed, 0 insertions, 68 deletions
-rw-r--r--homework/81568/BF_Interpreter/main.cpp68
diff --git a/homework/81568/BF_Interpreter/main.cpp b/homework/81568/BF_Interpreter/main.cpp
deleted file mode 100644
index ccde7a5..0000000
--- a/homework/81568/BF_Interpreter/main.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "bf_interpreter.h"
-#include "CLI11.hpp"
-
-#include <fstream>
-#include <iostream>
-#include <iterator>
-#include <sstream>
-#include <string>
-
-#define USAGE_MSG \
- "Usage %s [-f <code file> | -c <code>] (-i <input file>) (-o <output file>)\n" \
- "If no input/output file is provided standart input/output is used instead.\n"
-
-
-// TODO: implement proper CLI parsing
-// TODO: https://github.com/CLIUtils/CLI11
-int main(int argc, char **argv) {
- CLI::App app {"Simple Brainfuck interpreter written for "
- "IPL course homework from FMI, SU, 2018." };
-
- std::string srcFile;
- CLI::Option *srcFileOpt = app.add_option("-f,--file", srcFile, "Brainfuck source file");
-
- srcFileOpt->check(CLI::ExistingFile);
-
- std::string srcCode;
- CLI::Option *srcCodeOpt = app.add_option("-c,--code", srcCode, "Brainfuck source code");
-
- srcFileOpt->excludes(srcCodeOpt);
- srcCodeOpt->excludes(srcFileOpt);
-
- std::string output;
- CLI::Option *outputOpt = app.add_option("-o,--output", output, "File to write the Brainfuck output to. Optional.");
-
- std::string input;
- CLI::Option *inputOpt = app.add_option("-i,--input", input, "File to take the Brainfuck input from. Optional.");
-
- inputOpt->check(CLI::ExistingFile);
-
- CLI11_PARSE(app, argc, argv);
-
- std::string source;
- if (*srcFileOpt) {
- std::ifstream file {srcFile};
- if (file.is_open()) {
- source.assign((std::istreambuf_iterator<char>(file)),
- std::istreambuf_iterator<char>());
- }
- } else {
- source = srcCode;
- }
-
- std::ifstream inputFile;
- if (*inputOpt)
- inputFile.open(input);
-
- std::ofstream outputFile;
- if (*outputOpt)
- outputFile.open(output);
-
- std::istream &is = *inputOpt ? inputFile : std::cin;
- std::ostream &os = *outputOpt ? outputFile : std::cout;
-
- BFInterpreter bfi{source.c_str(), is, os};
- bfi.compile();
-
- return 0;
-}