package grammar;

import java.util.List;
import java.util.Map;

public abstract class Grammar {

	private String[] vars;
	private int alphaSize;
	private Map<String, List<List<String>>> rules;
	private String start;

	protected Grammar(String[] vars, int alphaSize, String start) {
		this.setVars(vars);
		this.setAlphaSize(alphaSize);
		this.setStart(start);
	}

	public String[] getVars() {
		return vars;
	}

	public void setVars(String[] vars) {
		this.vars = vars;
	}

	public int getAlphaSize() {
		return alphaSize;
	}

	public void setAlphaSize(int alphaSize) {
		this.alphaSize = alphaSize;
	}

	public Map<String, List<List<String>>> getRules() {
		return rules;
	}

	public void setRules(Map<String, List<List<String>>> rules) {
		this.rules = rules;
	}

	public String getStart() {
		return start;
	}

	public void setStart(String start) {
		this.start = start;
	}

}