private DeclarationList declaration_list(int fallbackLineNumber, int fallbackCharPosition) throws RequiredTokenException 
	{
		enterRule(NonTerminal.DECLARATION_LIST);
		ArrayList<Declaration> declarations = new ArrayList<Declaration>();
		while(firstSetSatisfied(NonTerminal.DECLARATION))
		{
			declarations.add(declaration());			
		}
		require(Token.Kind.EOF);
		exitRule();
		return new DeclarationList(
			declarations.size() > 0 ? ((Command)declarations.get(0)).lineNumber() : fallbackLineNumber,
			declarations.size() > 0 ? ((Command)declarations.get(0)).charPosition() : fallbackCharPosition,
			declarations);
	}