#include "Rule.h"
#include <vector>


Rule::Rule(char C, int i) { // char is a false
	left.push_back('#');
	right = C;
}
Rule::Rule(char C) { // char is a truth
	left.push_back('*');
	right = C;
}
Rule::Rule(char* C) { // char[] is in format AB>C
	if(C[1] == NULL)
	{
		C[2] = C[0];
		C[1] = '>';
		C[0] = '*';
	}
	int j=0; 
	while(C[j] != NULL && C[j] != '>')
	{
		left.push_back(C[j++]);
	}
	if(C[j] == '>')
	{
		right = C[j+1];
	}
}
bool
operator==(const Rule& a, const Rule& b) { // Compares two rules.
	int i;

	if(a.left.size() == b.left.size())
	{
		for(i=0; i<a.left.size(); i++)
			if(a.left[i] != b.left[i])
				return false;
		if(a.right != b.right)
			return false;
	}
	else 
		return false;
	return true;
}
void
Rule::print() { // Prints a single rule in format AB>C
	int j=0;
	while(j<left.size())
		cout << left[j++];
	cout << ">";
	cout << right << endl;

}

