Simon Krajewski преди 11 години
родител
ревизия
6cb469ca2a
променени са 2 файла, в които са добавени 1 реда и са изтрити 252 реда
  1. 1 1
      std/List.hx
  2. 0 251
      std/python/_std/List.hx

+ 1 - 1
std/List.hx

@@ -159,7 +159,7 @@ class List<T> {
 		Returns an iterator on the elements of the list.
 	**/
 	public function iterator() : Iterator<T> {
-		#if (java || cs)
+		#if (java || cs || python)
 		var h = h;
 		return cast {
 			hasNext : function() {

+ 0 - 251
std/python/_std/List.hx

@@ -1,251 +0,0 @@
-/*
- * Copyright (C)2005-2012 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-/**
-	A linked-list of elements. The list is composed of two-elements arrays
-	that are chained together. It is optimized so that adding or removing an
-	element does not imply copying the whole array content every time.
-**/
-class List<T> {
-
-	private var h : Array<Dynamic>;
-	private var q : Array<Dynamic>;
-
-	/**
-		The length of `this` List.
-	**/
-	public var length(default,null) : Int;
-
-	/**
-		Creates a new empty list.
-	**/
-	public function new() {
-		length = 0;
-	}
-
-	/**
-		Adds element `item` at the end of `this` List.
-		
-		`this.length` increases by 1.
-	**/
-	public function add( item : T ) {
-		var x:Array<Dynamic> = [item];
-		if( h == null )
-			h = x;
-		else
-			q[1] = x;
-		q = x;
-		length++;
-	}
-
-	/**
-		Adds element `item` at the beginning of `this` List.
-		
-		`this.length` increases by 1.
-	**/
-	public function push( item : T ) {
-		var x : Array<Dynamic> = [item,h];
-		
-		h = x;
-		if( q == null )
-			q = x;
-		length++;
-	}
-
-	/**
-		Returns the first element of `this` List, or null if no elements exist.
-		
-		This function does not modify `this` List.
-	**/
-	public function first() : Null<T> {
-		return if( h == null ) null else h[0];
-	}
-
-	/**
-		Returns the last element of `this` List, or null if no elements exist.
-		
-		This function does not modify `this` List.
-	**/
-	public function last() : Null<T> {
-		return if( q == null ) null else q[0];
-	}
-
-
-	/**
-		Returns the first element of `this` List, or null if no elements exist.
-		
-		The element is removed from `this` List.
-	**/
-	public function pop() : Null<T> {
-		if( h == null )
-			return null;
-		var x = h[0];
-		h = h[1];
-		if( h == null )
-			q = null;
-		length--;
-		return x;
-	}
-
-	/**
-		Tells if `this` List is empty.
-	**/
-	public function isEmpty() : Bool {
-		return (h == null);
-	}
-
-	/**
-		Empties `this` List.
-		
-		This function does not traverse the elements, but simply sets the
-		internal references to null and `this.length` to 0.
-	**/
-	public function clear() : Void {
-		h = null;
-		q = null;
-		length = 0;
-	}
-
-	/**
-		Removes the first occurence of `v` in `this` List.
-		
-		If `v` is found by checking standard equality, it is removed from `this`
-		List and the function returns true.
-		
-		Otherwise, false is returned.
-	**/
-	public function remove( v : T ) : Bool {
-		var prev = null;
-		var l = h;
-		while( l != null ) {
-			if( l[0] == v ) {
-				if( prev == null )
-					h = l[1];
-				else
-					prev[1] = l[1];
-				if( q == l )
-					q = prev;
-				length--;
-				return true;
-			}
-			prev = l;
-			l = l[1];
-		}
-		return false;
-	}
-
-	/**
-		Returns an iterator on the elements of the list.
-	**/
-	public function iterator() : Iterator<T> {
-		
-		var h = h;
-		return cast {
-			hasNext : function() {
-				return (h != null);
-			},
-			next : function() {
-				{
-					if( h == null )
-						return null;
-					var x = h[0];
-					h = h[1];
-					return x;
-				}
-			}
-		}
-		
-	}
-
-	/**
-		Returns a string representation of `this` List.
-		
-		The result is enclosed in { } with the individual elements being
-		separated by a comma.
-	**/
-	public function toString() {
-		var s = new StringBuf();
-		var first = true;
-		var l = h;
-		s.add("{");
-		while( l != null ) {
-			if( first )
-				first = false;
-			else
-				s.add(", ");
-			s.add(Std.string(l[0]));
-			l = l[1];
-		}
-		s.add("}");
-		return s.toString();
-	}
-
-	/**
-		Returns a string representation of `this` List, with `sep` separating
-		each element.
-	**/
-	public function join(sep : String) {
-		var s = new StringBuf();
-		var first = true;
-		var l = h;
-		while( l != null ) {
-			if( first )
-				first = false;
-			else
-				s.add(sep);
-			s.add(l[0]);
-			l = l[1];
-		}
-		return s.toString();
-	}
-
-	/**
-		Returns a list filtered with `f`. The returned list will contain all
-		elements for which `f(x) == true`.
-	**/
-	public function filter( f : T -> Bool ) {
-		var l2 = new List();
-		var l = h;
-		while( l != null ) {
-			var v = l[0];
-			l = l[1];
-			if( f(v) )
-				l2.add(v);
-		}
-		return l2;
-	}
-
-	/**
-		Returns a new list where all elements have been converted by the
-		function `f`.
-	**/
-	public function map<X>(f : T -> X) : List<X> {
-		var b = new List();
-		var l = h;
-		while( l != null ) {
-			var v = l[0];
-			l = l[1];
-			b.add(f(v));
-		}
-		return b;
-	}
-
-}