private void getRulesUnderSymbol(String symbol, Syntax syntax, Syntax resultSyntax, IntArray deleteIndexes)	{
		for (int i = 0; i < syntax.size(); i++)	{
			Rule rule = syntax.getRule(i);
			String nonterm = rule.getNonterminal();
			
			// check if rule derives symbol and was not already appended (recursive rules!)
			if (deleteIndexes.contains(i) == false && nonterm.equals(symbol))	{
				resultSyntax.addRule(rule);
				deleteIndexes.add(i);
				
				// check for further nonterminals on right side
				for (int j = 0; j < rule.rightSize(); j++)	{
					String sym = rule.getRightSymbol(j);
					if (Token.isTerminal(sym) == false && sym.equals(Token.BUTNOT) == false && sym.equals(Token.UPTO) == false)
						getRulesUnderSymbol(sym, syntax, resultSyntax, deleteIndexes);
				}
			}
		}
	}