Changeset 12208 for src/Pugs/Eval

Show
Ignore:
Timestamp:
08/14/06 10:04:38 (2 years ago)
Author:
audreyt
Message:

* add hash_fetchSize to unify the "get size from to-be-flattened-thing" logic

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Eval/Var.hs

    r12207 r12208  
    344344        doFindSub (sum lens) subSyms 
    345345    argSlurpLen :: Exp -> Eval Int 
    346     argSlurpLen (Val val) = join $ doArray val array_fetchSize 
     346    argSlurpLen (Val val) = valSlurpLen val 
    347347    argSlurpLen (Var name) = do 
    348348        val <- evalExp (Var name) 
    349         join $ doArray val array_fetchSize 
     349        valSlurpLen val 
    350350    argSlurpLen (Syn "," list) =  return $ length list 
    351351    argSlurpLen _ = return 1 -- XXX 
     352 
     353    valSlurpLen :: Val -> Eval Int 
     354    valSlurpLen (VList list) = return $ length list 
     355    valSlurpLen (VRef (MkRef (IArray av))) = array_fetchSize av 
     356    valSlurpLen (VRef (MkRef (IHash hv))) = hash_fetchSize hv 
     357    valSlurpLen _  = return 1 -- XXX 
     358 
    352359    doFindSub :: Int -> [(String, Val)] -> Eval (Maybe VCode) 
    353360    doFindSub slurpLen subSyms = do