-
Notifications
You must be signed in to change notification settings - Fork 0
/
MachineBuilder.h
35 lines (27 loc) · 930 Bytes
/
MachineBuilder.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#pragma once
#include "Machine.h"
#include "StatesUtil.h"
using std::invalid_argument;
class MachineBuilder {
private:
char blank_symbol;
symbol_set sigma;
symbol_set gamma;
Tape tape;
state_map states;
transitions_map transitions;
string starting;
string current;
bool machine_loaded = false;
public:
Machine& getMachine();
void setBlankSymbol(char blank_Symbol) { this->blank_symbol = blank_symbol; }
void setSigma(symbol_set& sigma) { this->sigma = sigma; }
void setGamma(symbol_set& gamma) { this->gamma = gamma; }
void setTape(Tape& tape) { this->tape = tape; }
void setStateMap(state_map& states) { this->states = states; }
void setTransitionsMap(transitions_map& transitions) { this->transitions = transitions; }
void setStartingState(string starting) { this->starting = starting; }
void setCurrentState(string current) { this->current = current; }
void setLoaded() { machine_loaded = true; }
};