0 | module Idris.Syntax.Pragmas
13 | | KwUnboundImplicits
26 | | KwPrefixRecordProjections
27 | | KwAutoImplicitDepth
28 | | KwNfMetavarThreshold
37 | allLangExts : List LangExt
38 | allLangExts = [ElabReflection, Borrowing]
42 | show ElabReflection = "ElabReflection"
43 | show Borrowing = "Borrowing"
47 | ElabReflection == ElabReflection = True
48 | Borrowing == Borrowing = True
58 | | AnOptionalLoggingTopic
65 | Show PragmaArg where
66 | show (AName str) = str
67 | show ANameList = "nm xs f"
68 | show APairArg = "ty fst snd"
69 | show ARewriteArg = "eq rew"
70 | show AnOnOff = "on|off"
71 | show AnOptionalLoggingTopic = "[topic]"
73 | show AnExpr = "expr"
74 | show ALangExt = concat $
intersperse "|" $
map show allLangExts
75 | show ATotalityLevel = "partial|total|covering"
78 | pragmaArgs : KwPragma -> List PragmaArg
79 | pragmaArgs KwHint = []
80 | pragmaArgs KwHide = [AName "nm"]
81 | pragmaArgs KwUnhide = [AName "nm"]
82 | pragmaArgs KwLogging = [AnOptionalLoggingTopic, ANat]
83 | pragmaArgs KwAutoLazy = [AnOnOff]
84 | pragmaArgs KwUnboundImplicits = [AnOnOff]
85 | pragmaArgs KwAmbiguityDepth = [ANat]
86 | pragmaArgs KwPair = [APairArg]
87 | pragmaArgs KwRewrite = [ARewriteArg]
88 | pragmaArgs KwIntegerLit = [AName "nm"]
89 | pragmaArgs KwStringLit = [AName "nm"]
90 | pragmaArgs KwCharLit = [AName "nm"]
91 | pragmaArgs KwDoubleLit = [AName "nm"]
92 | pragmaArgs KwName = [ANameList]
93 | pragmaArgs KwStart = [AnExpr]
94 | pragmaArgs KwAllowOverloads = [AName "nm"]
95 | pragmaArgs KwLanguage = [ALangExt]
96 | pragmaArgs KwDefault = [ATotalityLevel]
97 | pragmaArgs KwPrefixRecordProjections = [AnOnOff]
98 | pragmaArgs KwAutoImplicitDepth = [ANat]
99 | pragmaArgs KwNfMetavarThreshold = [ANat]
100 | pragmaArgs KwSearchTimeOut = [ANat]
103 | Show KwPragma where
104 | show kw = case kw of
107 | KwUnhide => "%unhide"
108 | KwLogging => "%logging"
109 | KwAutoLazy => "%auto_lazy"
110 | KwUnboundImplicits => "%unbound_implicits"
111 | KwAmbiguityDepth => "%ambiguity_depth"
113 | KwRewrite => "%rewrite"
114 | KwIntegerLit => "%integerLit"
115 | KwStringLit => "%stringLit"
116 | KwCharLit => "%charLit"
117 | KwDoubleLit => "%doubleLit"
119 | KwStart => "%start"
120 | KwAllowOverloads => "%allow_overloads"
121 | KwLanguage => "%language"
122 | KwDefault => "%default"
123 | KwPrefixRecordProjections => "%prefix_record_projections"
124 | KwAutoImplicitDepth => "%auto_implicit_depth"
125 | KwNfMetavarThreshold => "%nf_metavar_threshold"
126 | KwSearchTimeOut => "%search_timeout"
129 | allPragmas : List KwPragma
136 | , KwUnboundImplicits
149 | , KwPrefixRecordProjections
150 | , KwAutoImplicitDepth
151 | , KwNfMetavarThreshold
156 | pragmaTopics : String
158 | = concat $
intersperse "\n" $
map ("+ " ++)
159 | $
map (\ kw => unwords (show kw :: map show (pragmaArgs kw)))