@@ -1077,71 +1077,44 @@ Directive' ::= 'lib' CodeGen String_t
10771077-}
10781078directive :: SyntaxInfo -> IdrisParser [PDecl]
10791079directive syn = do try (lchar '%' *> reserved "lib"); cgn <- codegen_; lib <- stringLiteral;
1080− return [PDirective (do addLib cgn lib
1081− addIBC (IBCLib cgn lib))]
1080+ return [PDirective (DLib cgn lib)]
10821081 <|> do try (lchar '%' *> reserved "link"); cgn <- codegen_; obj <- stringLiteral;
1083− return [PDirective (do dirs <- allImportDirs
1084− o <- liftIO $ findInPath dirs obj
1085− addIBC (IBCObj cgn obj) -- just name, search on loading ibc
1086− addObjectFile cgn o)]
1087− <|> do try (lchar '%' *> reserved "flag"); cgn <- codegen_;
1088− flag <- stringLiteral
1089− return [PDirective (do addIBC (IBCCGFlag cgn flag)
1090− addFlag cgn flag)]
1082+ return [PDirective (DLink cgn obj)]
1083+ <|> do try (lchar '%' *> reserved "flag"); cgn <- codegen_; flag <- stringLiteral
1084+ return [PDirective (DFlag cgn flag)]
10911085 <|> do try (lchar '%' *> reserved "include"); cgn <- codegen_; hdr <- stringLiteral;
1092− return [PDirective (do addHdr cgn hdr
1093− addIBC (IBCHeader cgn hdr))]
1086+ return [PDirective (DInclude cgn hdr)]
10941087 <|> do try (lchar '%' *> reserved "hide"); n <- fnName
1095− return [PDirective (do setAccessibility n Hidden
1096− addIBC (IBCAccess n Hidden))]
1088+ return [PDirective (DHide n)]
10971089 <|> do try (lchar '%' *> reserved "freeze"); n <- iName []
1098− return [PDirective (do setAccessibility n Frozen
1099− addIBC (IBCAccess n Frozen))]
1090+ return [PDirective (DFreeze n)]
11001091 <|> do try (lchar '%' *> reserved "access"); acc <- accessibility
1101− return [PDirective (do i <- get
1102− put(i { default_access = acc }))]
1092+ return [PDirective (DAccess acc)]
11031093 <|> do try (lchar '%' *> reserved "default"); tot <- totality
11041094 i <- get
11051095 put (i { default_total = tot } )
1106− return [PDirective (do i <- get
1107− put(i { default_total = tot }))]
1096+ return [PDirective (DDefault tot)]
11081097 <|> do try (lchar '%' *> reserved "logging"); i <- natural;
1109− return [PDirective (setLogLevel (fromInteger i))]
1098+ return [PDirective (DLogging i)]
11101099 <|> do try (lchar '%' *> reserved "dynamic"); libs <- sepBy1 stringLiteral (lchar ',');
1111− return [PDirective (do added <- addDyLib libs
1112− case added of
1113− Left lib -> addIBC (IBCDyLib (lib_name lib))
1114− Right msg ->
1115− fail $ msg)]
1100+ return [PDirective (DDynamicLibs libs)]
11161101 <|> do try (lchar '%' *> reserved "name")
11171102 ty <- fnName
11181103 ns <- sepBy1 name (lchar ',')
1119− return [PDirective (do ty' <- disambiguate ty
1120− mapM_ (addNameHint ty') ns
1121− mapM_ (\n -> addIBC (IBCNameHint (ty', n))) ns)]
1104+ return [PDirective (DNameHint ty ns)]
11221105 <|> do try (lchar '%' *> reserved "error_handlers")
11231106 fn <- fnName
11241107 arg <- fnName
11251108 ns <- sepBy1 name (lchar ',')
1126− return [PDirective (do fn' <- disambiguate fn
1127− ns' <- mapM disambiguate ns
1128− addFunctionErrorHandlers fn' arg ns'
1129− mapM_ (addIBC . IBCFunctionErrorHandler fn' arg) ns')]
1109+ return [PDirective (DErrorHandlers fn arg ns) ]
11301110 <|> do try (lchar '%' *> reserved "language"); ext <- pLangExt;
1131− return [PDirective (addLangExt ext)]
1111+ return [PDirective (DLanguage ext)]
11321112 <|> do fc <- getFC
11331113 try (lchar '%' *> reserved "used")
11341114 fn <- fnName
11351115 arg <- iName []
1136− return [PDirective (addUsedName fc fn arg)]
1137−
1116+ return [PDirective (DUsed fc fn arg)]
11381117 <?> "directive"
1139− where disambiguate :: Name -> Idris Name
1140− disambiguate n = do i <- getIState
1141− case lookupCtxtName n (idris_implicits i) of
1142− [(n', _)] -> return n'
1143− [] -> throwError (NoSuchVariable n)
1144− more -> throwError (CantResolveAlts (map fst more))
11451118
11461119pLangExt :: IdrisParser LanguageExt
11471120pLangExt = (reserved "TypeProviders" >> return TypeProviders)