Snel
A shell implementation for A.U.TH (Operating Systems Lab)
Snel.cpp
Go to the documentation of this file.
1 
10 #include "sequencer.h"
11 
34 int main(int argc, char* argv[]) try {
35  snel::Sequencer seq{};
36  std::string line, filtered;
37 
38  if (argc > 1) { // batch mode
39  std::ifstream file(argv[1]);
40 
41  while (std::getline (file, line, '\n')) {
42  //^ We use \n as delimiter. No further parsing here
43  filtered = snel::filter(line); // simple filtering
44  if (filtered == "quit")
45  break;
46  seq.parse(filtered).execute();
47  }
48  }
49  else { // interactive mode
50  std::cout << "Snel. A shell implementation for A.U.TH (OS Lab)." << std::endl;
51  do {
52  std::cout << "Choutouridis_8997>";
53  std::getline (std::cin, line, '\n'); //< We use \n as delimiter. No parsing here
54  filtered = snel::filter(line); // simple filtering
55  if (filtered == "quit")
56  break;
57  seq.parse(filtered).execute();
58  } while (1);
59  }
60  return 0;
61 
62 } catch (std::exception& e) {
63  // we probably pollute the user's screen. Comment `cerr << ...` if you don't like it.
64  // std::cerr << e.what() << '\n';
65  exit(1);
66 }
int main(int argc, char *argv[])
Definition: Snel.cpp:34
A basic sequence interpreter for snel.