0 | module Idris.Syntax.Pragmas
13 | | KwUnboundImplicits
26 | | KwPrefixRecordProjections
27 | | KwAutoImplicitDepth
28 | | KwNfMetavarThreshold
36 | allLangExts : List LangExt
37 | allLangExts = [ElabReflection]
41 | show ElabReflection = "ElabReflection"
45 | ElabReflection == ElabReflection = True
54 | | AnOptionalLoggingTopic
61 | Show PragmaArg where
62 | show (AName str) = str
63 | show ANameList = "nm xs f"
64 | show APairArg = "ty fst snd"
65 | show ARewriteArg = "eq rew"
66 | show AnOnOff = "on|off"
67 | show AnOptionalLoggingTopic = "[topic]"
69 | show AnExpr = "expr"
70 | show ALangExt = concat $
intersperse "|" $
map show allLangExts
71 | show ATotalityLevel = "partial|total|covering"
74 | pragmaArgs : KwPragma -> List PragmaArg
75 | pragmaArgs KwHint = []
76 | pragmaArgs KwHide = [AName "nm"]
77 | pragmaArgs KwUnhide = [AName "nm"]
78 | pragmaArgs KwLogging = [AnOptionalLoggingTopic, ANat]
79 | pragmaArgs KwAutoLazy = [AnOnOff]
80 | pragmaArgs KwUnboundImplicits = [AnOnOff]
81 | pragmaArgs KwAmbiguityDepth = [ANat]
82 | pragmaArgs KwPair = [APairArg]
83 | pragmaArgs KwRewrite = [ARewriteArg]
84 | pragmaArgs KwIntegerLit = [AName "nm"]
85 | pragmaArgs KwStringLit = [AName "nm"]
86 | pragmaArgs KwCharLit = [AName "nm"]
87 | pragmaArgs KwDoubleLit = [AName "nm"]
88 | pragmaArgs KwName = [ANameList]
89 | pragmaArgs KwStart = [AnExpr]
90 | pragmaArgs KwAllowOverloads = [AName "nm"]
91 | pragmaArgs KwLanguage = [ALangExt]
92 | pragmaArgs KwDefault = [ATotalityLevel]
93 | pragmaArgs KwPrefixRecordProjections = [AnOnOff]
94 | pragmaArgs KwAutoImplicitDepth = [ANat]
95 | pragmaArgs KwNfMetavarThreshold = [ANat]
96 | pragmaArgs KwSearchTimeOut = [ANat]
100 | show kw = case kw of
103 | KwUnhide => "%unhide"
104 | KwLogging => "%logging"
105 | KwAutoLazy => "%auto_lazy"
106 | KwUnboundImplicits => "%unbound_implicits"
107 | KwAmbiguityDepth => "%ambiguity_depth"
109 | KwRewrite => "%rewrite"
110 | KwIntegerLit => "%integerLit"
111 | KwStringLit => "%stringLit"
112 | KwCharLit => "%charLit"
113 | KwDoubleLit => "%doubleLit"
115 | KwStart => "%start"
116 | KwAllowOverloads => "%allow_overloads"
117 | KwLanguage => "%language"
118 | KwDefault => "%default"
119 | KwPrefixRecordProjections => "%prefix_record_projections"
120 | KwAutoImplicitDepth => "%auto_implicit_depth"
121 | KwNfMetavarThreshold => "%nf_metavar_threshold"
122 | KwSearchTimeOut => "%search_timeout"
125 | allPragmas : List KwPragma
132 | , KwUnboundImplicits
145 | , KwPrefixRecordProjections
146 | , KwAutoImplicitDepth
147 | , KwNfMetavarThreshold
152 | pragmaTopics : String
154 | = concat $
intersperse "\n" $
map ("+ " ++)
155 | $
map (\ kw => unwords (show kw :: map show (pragmaArgs kw)))