Changeset 8705 for src/Pugs/Eval/Var.hs
- Timestamp:
- 01/16/06 18:57:28 (3 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Eval/Var.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Eval/Var.hs
r8267 r8705 38 38 case maybeCaller of 39 39 Just env -> local (const env) $ do 40 findVarRef (sig ++ name') 40 rv <- findVarRef (sig ++ name') 41 return rv 41 42 Nothing -> retError "cannot access CALLER:: in top level" name 42 43 | Just (package, name') <- breakOnGlue "::" name … … 47 48 findVarRef (sig ++ name') 48 49 Nothing -> retError "cannot access OUTER:: in top level" name 50 | (sig:'+':name') <- name = findVarRef (sig:("CALLER::"++name')) 49 51 | (_:'?':_) <- name = do 50 52 rv <- getMagical name … … 489 491 490 492 isQualified :: String -> Maybe (String, String) 491 isQualified name | Just (post, pre) <- breakOnGlue "::" (reverse name) = 493 isQualified name 494 | Just (post, pre) <- breakOnGlue "::" (reverse name) = 492 495 let (sigil, pkg) = span (not . isAlphaNum) preName 493 496 name' = possiblyFixOperatorName (sigil ++ postName) 494 497 preName = reverse pre 495 498 postName = reverse post 496 in Just (pkg, name') 499 in case takeWhile isAlphaNum pkg of 500 "OUTER" -> Nothing 501 "CALLER" -> Nothing 502 _ -> Just (pkg, name') 497 503 isQualified _ = Nothing 498 504 … … 500 506 toQualified name@(_:'*':_) = return name 501 507 toQualified name@(_:'?':_) = return name 508 toQualified name@(_:'+':_) = return name 502 509 toQualified name@(_:"!") = return name 503 510 toQualified name@(_:"/") = return name
