Changeset 15434 for src/Pugs/Prim.hs

Show
Ignore:
Timestamp:
03/04/07 14:28:40 (21 months ago)
Author:
audreyt
Message:

* Pugs.AST: Make oldVal boxable.
* Pugs.Prim: Move op1 "vv"'s implementation to the Value instance in Pugs.AST.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Prim.hs

    r15425 r15434  
    3636import Pugs.Eval.Var 
    3737import Pugs.Meta () 
    38 import qualified Pugs.Val as Val 
    3938import qualified Data.Map as Map 
    4039import qualified Data.Set as Set 
     
    688687    str     <- fromVal =<< fetch "is" 
    689688    return str 
    690 op1 "vv" = \v -> case v of 
    691     VV{}        -> return v 
    692     VUndef      -> return . VV . mkVal $ () 
    693     VBool x     -> return . VV . mkVal $ ((cast x) :: Val.PureBit) 
    694     VInt x      -> return . VV . mkVal $ ((cast x) :: Val.PureInt) 
    695     VNum x      -> return . VV . mkVal $ ((cast x) :: Val.PureNum) 
    696     VRat x      -> return . VV . mkVal $ ((cast x) :: Val.PureNum) 
    697     VStr x      -> return . VV . mkVal $ ((cast x) :: Val.PureStr) 
    698     _           -> fail $ "don't know how to toVV: " ++ show v 
     689op1 "vv" = op1Cast VV 
    699690 
    700691op1 other   = \_ -> fail ("Unimplemented unaryOp: " ++ other)