signature PARSE_SPEC = sig val thm_name: string -> Attrib.binding parser val opt_thm_name: string -> Attrib.binding parser val name_facts: (Attrib.binding * (Facts.ref * Token.src list) list) list parser val simple_spec: (Attrib.binding * string) parser val simple_specs: (Attrib.binding * stringlist) parser val if_assumes: stringlist parser val multi_specs: Specification.multi_specs_cmd parser val where_multi_specs: Specification.multi_specs_cmd parser val specification:
((binding * stringoption * mixfix) list * Specification.multi_specs_cmd) parser val constdecl: (binding * stringoption * mixfix) parser val bundles: Bundle.xname list parser val includes: Bundle.xname list parser val opening: Bundle.xname list parser val locale_fixes: (binding * stringoption * mixfix) list parser val locale_insts: (stringoptionlist * (Attrib.binding * string) list) parser val class_expression: stringlist parser val locale_prefix: (string * bool) parser val locale_keyword: string parser val locale_expression: Expression.expression parser val context_element: Element.context parser val statement': (string * string list) list list parser val if_statement': (string * string list) list list parser val statement: (Attrib.binding * (string * stringlist) list) list parser val if_statement: (Attrib.binding * (string * stringlist) list) list parser val cond_statement: (bool * (Attrib.binding * (string * stringlist) list) list) parser val obtains: Element.obtains parser val long_statement: (Element.context list * Element.statement) parser val long_statement_keyword: string parser val overloaded: bool parser end;
structure Parse_Spec: PARSE_SPEC = struct
(* simple specifications *)
fun thm_name s = Parse.binding -- Parse.opt_attribs --| Parse.$$$ s;
fun opt_thm_name s =
Scan.optional
((Parse.binding -- Parse.opt_attribs || Parse.attribs >> pair Binding.empty) --| Parse.$$$ s)
Binding.empty_atts;
val simple_spec = opt_thm_name ":" -- Parse.prop; val simple_specs = opt_thm_name ":" -- Scan.repeat1 Parse.prop;
val name_facts = Parse.and_list1 (opt_thm_name "=" -- Parse.thms1);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.