public SemanticsAnalyzer(Node tree) {
		SymbolTable.resetAll();
		output = new StringBuilder();
		this.generativeTree = tree;
		Scanner fr = null;
		try {
			fr = new Scanner(new File("produkcije.txt"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		String curr = null;
		int index = 0;
		productions = new HashMap<String, List<SemanticsAnalyzer.orderedProduction>>();
		productionEnum = PPJCProduction.values();
		while (fr.hasNextLine()) {
			String ln = fr.nextLine();
			if (ln.equals("\n"))
				continue;
			if (ln.startsWith("\t")) {
				if (productions.get(curr) == null)
					productions.put(curr, new ArrayList<SemanticsAnalyzer.orderedProduction>());
				productions.get(curr).add(new orderedProduction(ln.substring(1).split("\\s+"), index));
				index++;
			} else {
				curr = ln;
			}
		}
		fr.close();
	}