[project @ 2003-07-31 17:45:22 by ross]
[ghc-base.git] / Text / ParserCombinators / Parsec / examples / tiger / merge.tig
diff --git a/Text/ParserCombinators/Parsec/examples/tiger/merge.tig b/Text/ParserCombinators/Parsec/examples/tiger/merge.tig
deleted file mode 100644 (file)
index 3304748..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-let 
-
- type any = {any : int}
- var buffer := getchar()
-
- function readint(any: any) : int =
- let var i := 0
-     function isdigit(s : string) : int = 
-          ord(buffer)>=ord("0") & ord(buffer)<=ord("9")
-     function skipto() =
-       while buffer=" " | buffer="\n"
-         do buffer := getchar()
-  in skipto();
-     any.any := isdigit(buffer);
-     while isdigit(buffer)
-       do (i := i*10+ord(buffer)-ord("0"); buffer := getchar());
-     i
- end
-
- type list = {first: int, rest: list}
-
- function readlist() : list =
-    let var any := any{any=0}
-        var i := readint(any)
-     in if any.any
-         then list{first=i,rest=readlist()}
-         else nil
-    end
-
- function merge(a: list, b: list) : list =
-   if a=nil then b
-   else if b=nil then a
-   else if a.first < b.first 
-      then list{first=a.first,rest=merge(a.rest,b)}
-      else list{first=b.first,rest=merge(a,b.rest)}
-
- function printint(i: int) =
-  let function f(i:int) = if i>0 
-            then (f(i/10); print(chr(i-i/10*10+ord("0"))))
-   in if i<0 then (print("-"); f(-i))
-      else if i>0 then f(i)
-      else print("0")
-  end
-
- function printlist(l: list) =
-   if l=nil then print("\n")
-   else (printint(l.first); print(" "); printlist(l.rest))
-
-   var list1 := readlist()
-   var list2 := (buffer:=getchar(); readlist())
-
-
-  /* BODY OF MAIN PROGRAM */
- in printlist(merge(list1,list2))
-end
-