@@ -110,10 +110,12 @@ loadSource lidr f
110 namespaces (x:xs) ds = [PNamespace x (namespaces xs ds)]
110 namespaces (x:xs) ds = [PNamespace x (namespaces xs ds)]
112addHides :: [(Name, Maybe Accessibility)] -> Idris ()
112addHides :: [(Name, Maybe Accessibility)] -> Idris ()
113+addHides xs = do i <- getIState
114+ let defh = default_access i
113−addHides xs = let (hs, as) = partition isNothing xs in
115+ let (hs, as) = partition isNothing xs
114− if null as then return ()
116+ if null as then return ()
115− else mapM_ doHide
117+ else mapM_ doHide
116− (map (\ (n, _) -> (n, Hidden)) hs ++
118+ (map (\ (n, _) -> (n, defh)) hs ++
117 map (\ (n, Just a) -> (n, a)) as)
119 map (\ (n, Just a) -> (n, a)) as)
118 where isNothing (_, Nothing) = True
120 where isNothing (_, Nothing) = True
119 isNothing _ = False
121 isNothing _ = False
@@ -484,11 +486,15 @@ pName = do i <- getState
484pfName = try pName
486pfName = try pName
485 <|> do lchar '('; o <- operator; lchar ')'; return (UN o)
487 <|> do lchar '('; o <- operator; lchar ')'; return (UN o)
489+pAccessibility' :: IParser Accessibility
491+ = do reserved "public"; return Public
492+ <|> do reserved "abstract"; return Frozen
493+ <|> do reserved "private"; return Hidden
487pAccessibility :: IParser (Maybe Accessibility)
495pAccessibility :: IParser (Maybe Accessibility)
488pAccessibility
496pAccessibility
489− = do reserved "public"; return (Just Public)
497+ = do acc <- pAccessibility'; return (Just acc)
490− <|> do reserved "abstract"; return (Just Frozen)
491− <|> do reserved "private"; return (Just Hidden)
492 <|> return Nothing
498 <|> return Nothing
494addAcc :: Name -> Maybe Accessibility -> IParser ()
500addAcc :: Name -> Maybe Accessibility -> IParser ()
@@ -908,6 +914,9 @@ pDirective = try (do lchar '%'; reserved "lib"; lib <- strlit;
908 <|> try (do lchar '%'; reserved "freeze"; n <- iName []
914 <|> try (do lchar '%'; reserved "freeze"; n <- iName []
909 return [PDirective (do setAccessibility n Frozen
915 return [PDirective (do setAccessibility n Frozen
910 addIBC (IBCAccess n Frozen))])
916 addIBC (IBCAccess n Frozen))])
917+ <|> try (do lchar '%'; reserved "access"; acc <- pAccessibility'
918+ return [PDirective (do i <- getIState
919+ putIState (i { default_access = acc }))])
911 <|> do lchar '%'; reserved "logging"; i <- natural;
920 <|> do lchar '%'; reserved "logging"; i <- natural;
912 return [PDirective (setLogLevel (fromInteger i))]
921 return [PDirective (setLogLevel (fromInteger i))]