diff interps/rhotor/Node.hs @ 996:859f9b4339e6

<Gregor> tar xf egobot.tar.xz
author HackBot
date Sun, 09 Dec 2012 19:30:08 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/interps/rhotor/Node.hs	Sun Dec 09 19:30:08 2012 +0000
@@ -0,0 +1,31 @@
+module Node (
+	Node(Function,Application,Cons,Symbol,Nil,Break)
+)
+where
+
+import Uniqs
+
+data Node	= 	Function Node Node Node	| 
+				Application Node Node	|
+				Cons Node Node			|
+				Break Node				|
+				Symbol Uniqs			|
+				Nil
+
+
+instance Eq Node where
+	(==) Nil Nil									= True
+	(==) (Cons a1 d1) (Cons a2 d2)					= (a1 == a2) && (d1 == d2)
+	(==) (Application a1 d1) (Application a2 d2)	= (a1 == a2) && (d1 == d2)
+	(==) (Function a1 d1 c1) (Function a2 d2 c2)	= (a1 == a2) && (d1 == d2) && (c1 == c2)
+	(==) (Symbol a) (Symbol b)						= a == b
+	(==) a b										= False
+	(/=) a b = not (a == b)
+
+instance Show Node where
+	show Nil				= "Nil"
+	show (Cons a b)			= "(Cons " ++ (show a) ++ " " ++  (show b) ++ ")"
+	show (Application a b)	= "(Application " ++ (show a) ++ " " ++  (show b) ++ ")"
+	show (Function a b c)	= "(Function " ++ (show a) ++ " " ++  (show b) ++ " " ++  (show c) ++ ")"
+	show (Break a)			= "**" ++ (show a)
+	show (Symbol a)			= "#" ++ (show a) 
\ No newline at end of file