Changeset 15489 for src/Pugs/AST.hs

Show
Ignore:
Timestamp:
03/06/07 11:44:24 (21 months ago)
Author:
audreyt
Message:

* The "HOW" call is now dispatched by ."".
* Also rename ITEM and LIST back to ITEM and LIST

as they are not super-magical; indeed the user is free
to define them.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/AST.hs

    r15477 r15489  
    7373 
    7474dispatchOldVal :: Val.Val -> Call -> Eval Val.Val 
    75 dispatchOldVal inv call = do 
    76     inv' <- castVal inv 
    77     rv   <- evalExp $ App (_Var ('&':cast (mi_name call))) 
    78                           (Just $ Val inv') 
    79                           [Syn "|" [Val . VV . mkVal $ mi_arguments call]] 
    80     fromVal rv 
     75dispatchOldVal inv call 
     76    | meth == nullID = do 
     77        typ <- evalValType =<< castVal inv 
     78        (fromVal =<<) . evalExp $ _Var (':':'*':showType typ) 
     79    | otherwise      = do  
     80        inv' <- castVal inv 
     81        (fromVal =<<) . evalExp $ App 
     82            (_Var ('&':cast meth)) 
     83            (Just $ Val inv') 
     84            [Syn "|" [Val . VV . mkVal $ mi_arguments call]] 
     85    where 
     86    meth = mi_name call 
    8187 
    8288{-| 
     
    428434 
    429435__LIST__ :: Call 
    430 __LIST__ = cast "__LIST__" 
     436__LIST__ = cast "LIST" 
    431437 
    432438__ITEM__ :: Call 
    433 __ITEM__ = cast "__ITEM__" 
     439__ITEM__ = cast "ITEM"