diff extendlib.rhope @ 14:69dfca29565f

C backend close to being useable
author Mike Pavone <pavone@retrodev.com>
date Tue, 26 May 2009 23:52:32 +0000
parents b3f71490858c
children 90c20dc3f4e5
line wrap: on
line diff
--- a/extendlib.rhope	Mon May 25 23:34:36 2009 -0400
+++ b/extendlib.rhope	Tue May 26 23:52:32 2009 +0000
@@ -594,3 +594,46 @@
 		not found <- text
 	}
 }
+
+Blueprint Range
+{
+	Start
+	End
+}
+
+Range[start,end:out]
+{
+	out <- [[Build["Range"]]Start <<[start]]End <<[end]
+}
+
+First@Range[range:out]
+{
+	out <- [range]Start >>
+}
+
+Next@Range[range,val:out,done]
+{
+	next <- [val]+[1]
+	If[[next] < [[range]End >>]]
+	{
+		out <- Val[next]
+	}{
+		done <- range
+	}
+}
+
+Index@Range[range,index:out,notfound]
+{
+	If[[index] < [[range]End >>]]
+	{
+		If[[index] < [[range]Start >>]]
+		{
+			notfound <- index
+		}{
+			out <- index
+		}
+	}{
+		notfound <- index
+	}
+}
+