58 val opt_mixfix: token list -> Syntax.mixfix * token list |
58 val opt_mixfix: token list -> Syntax.mixfix * token list |
59 val opt_infix': token list -> Syntax.mixfix * token list |
59 val opt_infix': token list -> Syntax.mixfix * token list |
60 val opt_mixfix': token list -> Syntax.mixfix * token list |
60 val opt_mixfix': token list -> Syntax.mixfix * token list |
61 val mixfix': token list -> Syntax.mixfix * token list |
61 val mixfix': token list -> Syntax.mixfix * token list |
62 val const: token list -> (bstring * string * Syntax.mixfix) * token list |
62 val const: token list -> (bstring * string * Syntax.mixfix) * token list |
|
63 val param: token list -> (bstring * string option * Syntax.mixfix) * token list |
63 val term: token list -> string * token list |
64 val term: token list -> string * token list |
64 val prop: token list -> string * token list |
65 val prop: token list -> string * token list |
65 val propp: token list -> (string * (string list * string list)) * token list |
66 val propp: token list -> (string * (string list * string list)) * token list |
66 val termp: token list -> (string * string list) * token list |
67 val termp: token list -> (string * string list) * token list |
67 val arguments: token list -> Args.T list * token list |
68 val arguments: token list -> Args.T list * token list |
68 val attribs: token list -> Attrib.src list * token list |
69 val attribs: token list -> Attrib.src list * token list |
69 val opt_attribs: token list -> Attrib.src list * token list |
70 val opt_attribs: token list -> Attrib.src list * token list |
70 val thm_name: string -> token list -> (bstring * Attrib.src list) * token list |
71 val thm_name: string -> token list -> (bstring * Attrib.src list) * token list |
71 val opt_thm_name: string -> token list -> (bstring * Attrib.src list) * token list |
72 val opt_thm_name: string -> token list -> (bstring * Attrib.src list) * token list |
|
73 val spec: token list -> ((bstring * Attrib.src list) * string list) * token list |
|
74 val named_spec: token list -> ((bstring * Attrib.src list) * string list) * token list |
72 val spec_name: token list -> ((bstring * string) * Attrib.src list) * token list |
75 val spec_name: token list -> ((bstring * string) * Attrib.src list) * token list |
73 val spec_opt_name: token list -> ((bstring * string) * Attrib.src list) * token list |
76 val spec_opt_name: token list -> ((bstring * string) * Attrib.src list) * token list |
74 val xthm: token list -> (thmref * Attrib.src list) * token list |
77 val xthm: token list -> (thmref * Attrib.src list) * token list |
75 val xthms1: token list -> (thmref * Attrib.src list) list * token list |
78 val xthms1: token list -> (thmref * Attrib.src list) list * token list |
76 val name_facts: token list -> |
79 val name_facts: token list -> |
303 val opt_attribs = Scan.optional attribs []; |
306 val opt_attribs = Scan.optional attribs []; |
304 |
307 |
305 fun thm_name s = name -- opt_attribs --| $$$ s; |
308 fun thm_name s = name -- opt_attribs --| $$$ s; |
306 fun opt_thm_name s = |
309 fun opt_thm_name s = |
307 Scan.optional ((name -- opt_attribs || (attribs >> pair "")) --| $$$ s) ("", []); |
310 Scan.optional ((name -- opt_attribs || (attribs >> pair "")) --| $$$ s) ("", []); |
|
311 |
|
312 val spec = opt_thm_name ":" -- Scan.repeat1 prop; |
|
313 val named_spec = thm_name ":" -- Scan.repeat1 prop; |
308 |
314 |
309 val spec_name = thm_name ":" -- prop >> (fn ((x, y), z) => ((x, z), y)); |
315 val spec_name = thm_name ":" -- prop >> (fn ((x, y), z) => ((x, z), y)); |
310 val spec_opt_name = opt_thm_name ":" -- prop >> (fn ((x, y), z) => ((x, z), y)); |
316 val spec_opt_name = opt_thm_name ":" -- prop >> (fn ((x, y), z) => ((x, z), y)); |
311 |
317 |
312 val thm_sel = $$$ "(" |-- list1 |
318 val thm_sel = $$$ "(" |-- list1 |