private Syntax addStartSymbol(Syntax syntax)
		throws ParserBuildException
	{
		String startSym = null;
		List startRules = syntax.findStartRules();
		
		if (startRules.size() <= 0)	{	// no toplevel rule
			//throw new ParserBuildException("Grammatik hat keine Start-Regel!");
			Rule rule = syntax.getRule(0);
			System.err.println("WARNING: Grammar has no top level rule, taking first rule >"+rule+"<");
			startSym = rule.getNonterminal();
		}
		else
		if (startRules.size() > 1)	{	// more than one toplevel rules
			for (int i = 0; i < startRules.size(); i++)	{	// check if all start rules have the same nonterminal on left side
				Rule r = (Rule) startRules.get(i);
				String nt = r.getNonterminal();

				if (startSym == null)
					startSym = nt;
				else
				if (startSym.equals(nt) == false)
					throw new ParserBuildException("Grammar has more than one toplevel rules: "+startRules);
			}
		}
		else	{	// exactly one toplevel rule found
			startSym = ((Rule) startRules.get(0)).getNonterminal();
		}
		
		Rule start = new Rule("<START>", 1);
		start.addRightSymbol(startSym);
		syntax.insertRule(0, start);
		
		return syntax;
	}