equal
deleted
inserted
replaced
156 ] |
156 ] |
157 end; |
157 end; |
158 |
158 |
159 end; |
159 end; |
160 |
160 |
161 structure P = OuterParse |
|
162 and K = OuterKeyword |
|
163 and FT = Find_Theorems; |
|
164 |
|
165 val criterion = |
161 val criterion = |
166 P.reserved "name" |-- P.!!! (P.$$$ ":" |-- P.xname) >> Find_Theorems.Name || |
162 Parse.reserved "name" |-- Parse.!!! (Parse.$$$ ":" |-- Parse.xname) >> Find_Theorems.Name || |
167 P.reserved "intro" >> K Find_Theorems.Intro || |
163 Parse.reserved "intro" >> K Find_Theorems.Intro || |
168 P.reserved "elim" >> K Find_Theorems.Elim || |
164 Parse.reserved "elim" >> K Find_Theorems.Elim || |
169 P.reserved "dest" >> K Find_Theorems.Dest || |
165 Parse.reserved "dest" >> K Find_Theorems.Dest || |
170 P.reserved "solves" >> K Find_Theorems.Solves || |
166 Parse.reserved "solves" >> K Find_Theorems.Solves || |
171 P.reserved "simp" |-- P.!!! (P.$$$ ":" |-- P.term) >> Find_Theorems.Simp || |
167 Parse.reserved "simp" |-- Parse.!!! (Parse.$$$ ":" |-- Parse.term) >> Find_Theorems.Simp || |
172 P.term >> Find_Theorems.Pattern; |
168 Parse.term >> Find_Theorems.Pattern; |
173 |
169 |
174 val parse_query = |
170 val parse_query = |
175 Scan.repeat (((Scan.option P.minus >> is_none) -- criterion)); |
171 Scan.repeat (((Scan.option Parse.minus >> is_none) -- criterion)); |
176 |
172 |
177 fun app_index f xs = fold_index (fn x => K (f x)) xs (); |
173 fun app_index f xs = fold_index (fn x => K (f x)) xs (); |
178 |
174 |
179 fun find_theorems (req as ScgiReq.Req {request_method, query_string, ...}, |
175 fun find_theorems (req as ScgiReq.Req {request_method, query_string, ...}, |
180 content, send) = |
176 content, send) = |
192 |
188 |
193 val query = the_default "" (args "query"); |
189 val query = the_default "" (args "query"); |
194 fun get_query () = |
190 fun get_query () = |
195 query |
191 query |
196 |> (fn s => s ^ ";") |
192 |> (fn s => s ^ ";") |
197 |> OuterSyntax.scan Position.start |
193 |> Outer_Syntax.scan Position.start |
198 |> filter Token.is_proper |
194 |> filter Token.is_proper |
199 |> Scan.error parse_query |
195 |> Scan.error parse_query |
200 |> fst; |
196 |> fst; |
201 |
197 |
202 val limit = |
198 val limit = |