Changeset 12466 for src/Pugs/Eval
- Timestamp:
- 08/19/06 17:48:35 (2 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Eval/Var.hs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Eval/Var.hs
r12463 r12466 328 328 -- firstArg :: (_args :: [Exp]) => [Exp] 329 329 firstArg = [maybe (Val undef) id (listToMaybe _args)] 330 firstTwoArgs 331 | [] <- _args = [Val undef, Val undef] 332 | [arg] <- _args = [arg, Val undef] 333 | otherwise = take 2 _args 330 334 331 335 buildPrefixHyper name var = do … … 357 361 buildInfixHyper name var = do 358 362 let rv = fmap (either (const Nothing) Just) $ 359 findSub var Nothing (take 2 (_args ++ [Val undef, Val undef]))363 findSub var Nothing firstTwoArgs 360 364 maybeM rv $ \code -> return $ mkPrim 361 365 { subName = name … … 380 384 buildInfixHyper buf var{ v_name = cast $ Str.init (Str.tail buf) } 381 385 | C_infix <- cat, __">>" `Str.isPrefixOf` buf, __"<<" `Str.isSuffixOf` buf = do 382 buildInfixHyper buf var{ v_name = cast $ Str. take2 (dropEnd 2 buf) }386 buildInfixHyper buf var{ v_name = cast $ Str.drop 2 (dropEnd 2 buf) } 383 387 | C_prefix <- cat, '[' <- Str.head buf, ']' <- Str.last buf = do 384 388 -- Strip the trailing "]" from op … … 392 396 rv = fmap (either (const Nothing) Just) $ 393 397 findSub (var{ v_categ = C_infix, v_name = cast op }) Nothing 394 (take 2 $ _args ++ [Val undef, Val undef])398 firstTwoArgs 395 399 maybeM rv $ \code -> return $ mkPrim 396 400 { subName = buf … … 450 454 return $ deltaType cls x typ 451 455 456 findAttrs :: Pkg -> Eval (Maybe [Pkg]) 452 457 findAttrs pkg = do 453 458 maybeM (findVar $ metaVar pkg) $ \ref -> do
