X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FjavaGen%2FJava.lhs;h=ec2c5061d3a353f216709ba892457c381e76d796;hb=9e6162f9d0102d1f5738bf78258b24ea5a647ea4;hp=ede6ac28e41b90ac3623d20d61faba7ef58d5130;hpb=483f06bdb54f2c5f8eb80ebb493cf535accfc482;p=ghc-hetmet.git diff --git a/ghc/compiler/javaGen/Java.lhs b/ghc/compiler/javaGen/Java.lhs index ede6ac2..ec2c506 100644 --- a/ghc/compiler/javaGen/Java.lhs +++ b/ghc/compiler/javaGen/Java.lhs @@ -63,6 +63,7 @@ data Expr | InstanceOf Expr Type | Call Expr Name [Expr] | Op Expr String Expr + | Raise TypeName [Expr] | New Type [Expr] (Maybe [Decl]) -- anonymous innerclass deriving (Show) @@ -80,7 +81,7 @@ data Type = PrimType PrimType | ArrayType Type | Type TypeName - deriving (Show) + deriving (Show, Eq) data PrimType = PrimInt @@ -91,7 +92,7 @@ data PrimType | PrimDouble | PrimByte | PrimVoid - deriving (Show) + deriving (Show, Eq) type PackageName = String -- A package name -- like "java.awt.Button" @@ -112,18 +113,25 @@ data Name = Name String Type -- So variables might be Int or Object. -- ** method calls store the returned - -- ** type, not a complete. + -- ** type, not a complete arg x result type. -- -- Thinking: -- ... foo1.foo2(...).foo3 ... -- here you want to know the *result* - -- after callling foo1, then foo2, + -- after calling foo1, then foo2, -- then foo3. +instance Eq Name where + (Name nm _) == (Name nm' _) = nm == nm' + + +instance Ord Name where + (Name nm _) `compare` (Name nm' _) = nm `compare` nm' + data Lit = IntLit Integer -- unboxed - | CharLit Char -- unboxed + | CharLit Int -- unboxed | StringLit String -- java string deriving Show