Changeset 5168 for src/Pugs/Compile.hs

Show
Ignore:
Timestamp:
07/04/05 00:35:11 (3 years ago)
Author:
autrijus
svk:copy_cache_prev:
6965
Message:

* qualified names now dealt with consistently; new and

improved API moved to Pugs.Eval.Var:

isQualified, packageOf, qualify, toPackage, toQualified,

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Compile.hs

    r5115 r5168  
    1616import Pugs.Types 
    1717import Pugs.Eval 
     18import Pugs.Eval.Var 
    1819import Emit.PIR 
    1920import Text.PrettyPrint 
     
    428429varText x           = error $ "invalid name: " ++ x 
    429430 
    430 packageOf :: String -> String 
    431 packageOf name = case isQualified name of 
    432     Just (pkg, _)   -> pkg 
    433     _               -> "main" 
    434  
    435 qualify :: String -> String 
    436 qualify name = case isQualified name of 
    437     Just _  -> name 
    438     _       -> let (sigil, name') = span (not . isAlphaNum) name 
    439         in sigil ++ "main::" ++ name' 
    440  
    441 isQualified :: String -> Maybe (String, String) 
    442 isQualified name | Just (post, pre) <- breakOnGlue "::" (reverse name) = 
    443     let (sigil, pkg) = span (not . isAlphaNum) preName 
    444         name'       = possiblyFixOperatorName (sigil ++ postName) 
    445         preName     = reverse pre 
    446         postName    = reverse post 
    447     in Just (pkg, name') 
    448 isQualified _ = Nothing 
    449  
    450431initTEnv :: Eval TEnv 
    451432initTEnv = do