aboutsummaryrefslogtreecommitdiff
path: root/main.cpp
blob: fd528f52b5d96b48156d9d34ec21506f319c8fea (plain)
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
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <fstream>

#include "Parser.h"
#include "Circuit.h"

#include "prut.h"

using std::cout;
using std::endl;
using std::ifstream;

int main(int argc, char** argv) {
	Parser main_parser;
	Circuit circuit;

	main_parser.set_circuit(circuit);

	// ifstream file("circuits/and-test.txt");
	ifstream file("circuits/full-adder.txt");

	try {
		file >> main_parser;
		// main_parser << file;
	} catch (ParserException & e) {
		cout << "Parser error: " << e.what() << endl;
		return EXIT_FAILURE;
	}
	prutprint("parsing done!");

	try {
	  circuit.sim();
	} catch (CircuitException & e) {
	  cout << "Circuit error: " << e.what() << endl;
	  return EXIT_FAILURE;
	}

	// print results
	cout << circuit.result();

	return EXIT_SUCCESS;
}