# HG changeset patch # User wenzelm # Date 1236975915 -3600 # Node ID 1796b8ea88aaa20284998f4ec00daa05d245d695 # Parent 17b2aad869fab56b76147e497803430053314c9c eliminated type Args.T; pervasive types 'a parser and 'a context_parser; diff -r 17b2aad869fa -r 1796b8ea88aa src/Provers/blast.ML --- a/src/Provers/blast.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Provers/blast.ML Fri Mar 13 21:25:15 2009 +0100 @@ -56,7 +56,7 @@ uwrappers: (string * wrapper) list, safe0_netpair: netpair, safep_netpair: netpair, haz_netpair: netpair, dup_netpair: netpair, xtra_netpair: ContextRules.netpair} - val cla_modifiers: (Args.T list -> (Method.modifier * Args.T list)) list + val cla_modifiers: Method.modifier parser list val cla_meth': (claset -> int -> tactic) -> thm list -> Proof.context -> Proof.method end; diff -r 17b2aad869fa -r 1796b8ea88aa src/Provers/clasimp.ML --- a/src/Provers/clasimp.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Provers/clasimp.ML Fri Mar 13 21:25:15 2009 +0100 @@ -62,8 +62,8 @@ val iff_add: attribute val iff_add': attribute val iff_del: attribute - val iff_modifiers: (Args.T list -> (Method.modifier * Args.T list)) list - val clasimp_modifiers: (Args.T list -> (Method.modifier * Args.T list)) list + val iff_modifiers: Method.modifier parser list + val clasimp_modifiers: Method.modifier parser list val clasimp_setup: theory -> theory end; diff -r 17b2aad869fa -r 1796b8ea88aa src/Provers/classical.ML --- a/src/Provers/classical.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Provers/classical.ML Fri Mar 13 21:25:15 2009 +0100 @@ -146,7 +146,7 @@ val haz_elim: int option -> attribute val haz_intro: int option -> attribute val rule_del: attribute - val cla_modifiers: (Args.T list -> (Method.modifier * Args.T list)) list + val cla_modifiers: Method.modifier parser list val cla_meth: (claset -> tactic) -> thm list -> Proof.context -> Proof.method val cla_meth': (claset -> int -> tactic) -> thm list -> Proof.context -> Proof.method val cla_method: (claset -> tactic) -> Method.src -> Proof.context -> Proof.method diff -r 17b2aad869fa -r 1796b8ea88aa src/Provers/splitter.ML --- a/src/Provers/splitter.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Provers/splitter.ML Fri Mar 13 21:25:15 2009 +0100 @@ -39,7 +39,7 @@ val Delsplits : thm list -> unit val split_add: attribute val split_del: attribute - val split_modifiers : (Args.T list -> (Method.modifier * Args.T list)) list + val split_modifiers : Method.modifier parser list val setup: theory -> theory end; diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Isar/args.ML --- a/src/Pure/Isar/args.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Isar/args.ML Fri Mar 13 21:25:15 2009 +0100 @@ -7,69 +7,66 @@ signature ARGS = sig - type T = OuterLex.token + type token = OuterLex.token type src - val src: (string * T list) * Position.T -> src - val dest_src: src -> (string * T list) * Position.T + val src: (string * token list) * Position.T -> src + val dest_src: src -> (string * token list) * Position.T val pretty_src: Proof.context -> src -> Pretty.T val map_name: (string -> string) -> src -> src val morph_values: morphism -> src -> src val maxidx_values: src -> int -> int val assignable: src -> src val closure: src -> src - val context: Context.generic * T list -> Context.proof * (Context.generic * T list) - val theory: Context.generic * T list -> Context.theory * (Context.generic * T list) - val $$$ : string -> T list -> string * T list - val add: T list -> string * T list - val del: T list -> string * T list - val colon: T list -> string * T list - val query: T list -> string * T list - val bang: T list -> string * T list - val query_colon: T list -> string * T list - val bang_colon: T list -> string * T list - val parens: (T list -> 'a * T list) -> T list -> 'a * T list - val bracks: (T list -> 'a * T list) -> T list -> 'a * T list - val mode: string -> 'a * T list -> bool * ('a * T list) - val maybe: (T list -> 'a * T list) -> T list -> 'a option * T list - val name_source: T list -> string * T list - val name_source_position: T list -> (SymbolPos.text * Position.T) * T list - val name: T list -> string * T list - val binding: T list -> binding * T list - val alt_name: T list -> string * T list - val symbol: T list -> string * T list - val liberal_name: T list -> string * T list - val var: T list -> indexname * T list - val internal_text: T list -> string * T list - val internal_typ: T list -> typ * T list - val internal_term: T list -> term * T list - val internal_fact: T list -> thm list * T list - val internal_attribute: T list -> (morphism -> attribute) * T list - val named_text: (string -> string) -> T list -> string * T list - val named_typ: (string -> typ) -> T list -> typ * T list - val named_term: (string -> term) -> T list -> term * T list - val named_fact: (string -> thm list) -> T list -> thm list * T list - val named_attribute: (string -> morphism -> attribute) -> T list -> - (morphism -> attribute) * T list - val typ_abbrev: Context.generic * T list -> typ * (Context.generic * T list) - val typ: Context.generic * T list -> typ * (Context.generic * T list) - val term: Context.generic * T list -> term * (Context.generic * T list) - val term_abbrev: Context.generic * T list -> term * (Context.generic * T list) - val prop: Context.generic * T list -> term * (Context.generic * T list) - val tyname: Context.generic * T list -> string * (Context.generic * T list) - val const: Context.generic * T list -> string * (Context.generic * T list) - val const_proper: Context.generic * T list -> string * (Context.generic * T list) - val bang_facts: Context.generic * T list -> thm list * (Context.generic * T list) - val goal_spec: ((int -> tactic) -> tactic) -> ('a * T list) - -> ((int -> tactic) -> tactic) * ('a * T list) - val parse: OuterLex.token list -> T list * OuterLex.token list - val parse1: (string -> bool) -> OuterLex.token list -> T list * OuterLex.token list - val attribs: (string -> string) -> T list -> src list * T list - val opt_attribs: (string -> string) -> T list -> src list * T list - val thm_name: (string -> string) -> string -> T list -> (binding * src list) * T list - val opt_thm_name: (string -> string) -> string -> T list -> (binding * src list) * T list - val syntax: string -> ('b * T list -> 'a * ('b * T list)) -> src -> 'b -> 'a * 'b - val context_syntax: string -> (Context.generic * T list -> 'a * (Context.generic * T list)) -> - src -> Proof.context -> 'a * Proof.context + val context: Proof.context context_parser + val theory: theory context_parser + val $$$ : string -> string parser + val add: string parser + val del: string parser + val colon: string parser + val query: string parser + val bang: string parser + val query_colon: string parser + val bang_colon: string parser + val parens: ('a parser) -> 'a parser + val bracks: ('a parser) -> 'a parser + val mode: string -> bool context_parser + val maybe: 'a parser -> 'a option parser + val name_source: string parser + val name_source_position: (SymbolPos.text * Position.T) parser + val name: string parser + val binding: binding parser + val alt_name: string parser + val symbol: string parser + val liberal_name: string parser + val var: indexname parser + val internal_text: string parser + val internal_typ: typ parser + val internal_term: term parser + val internal_fact: thm list parser + val internal_attribute: (morphism -> attribute) parser + val named_text: (string -> string) -> string parser + val named_typ: (string -> typ) -> typ parser + val named_term: (string -> term) -> term parser + val named_fact: (string -> thm list) -> thm list parser + val named_attribute: (string -> morphism -> attribute) -> (morphism -> attribute) parser + val typ_abbrev: typ context_parser + val typ: typ context_parser + val term: term context_parser + val term_abbrev: term context_parser + val prop: term context_parser + val tyname: string context_parser + val const: string context_parser + val const_proper: string context_parser + val bang_facts: thm list context_parser + val goal_spec: ((int -> tactic) -> tactic) -> ((int -> tactic) -> tactic) context_parser + val parse: token list parser + val parse1: (string -> bool) -> token list parser + val attribs: (string -> string) -> src list parser + val opt_attribs: (string -> string) -> src list parser + val thm_name: (string -> string) -> string -> (binding * src list) parser + val opt_thm_name: (string -> string) -> string -> (binding * src list) parser + val syntax: string -> 'a context_parser -> src -> Context.generic -> 'a * Context.generic + val context_syntax: string -> 'a context_parser -> src -> Proof.context -> 'a * Proof.context end; structure Args: ARGS = @@ -78,13 +75,13 @@ structure T = OuterLex; structure P = OuterParse; +type token = T.token; + (** datatype src **) -type T = T.token; - -datatype src = Src of (string * T list) * Position.T; +datatype src = Src of (string * token list) * Position.T; val src = Src; fun dest_src (Src src) = src; diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Isar/attrib.ML --- a/src/Pure/Isar/attrib.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Isar/attrib.ML Fri Mar 13 21:25:15 2009 +0100 @@ -24,14 +24,13 @@ (('c * 'att list) * ('d * 'att list) list) list val crude_closure: Proof.context -> src -> src val add_attributes: (bstring * (src -> attribute) * string) list -> theory -> theory - val syntax: (Context.generic * Args.T list -> - attribute * (Context.generic * Args.T list)) -> src -> attribute + val syntax: attribute context_parser -> src -> attribute val no_args: attribute -> src -> attribute val add_del_args: attribute -> attribute -> src -> attribute - val thm_sel: Args.T list -> Facts.interval list * Args.T list - val thm: Context.generic * Args.T list -> thm * (Context.generic * Args.T list) - val thms: Context.generic * Args.T list -> thm list * (Context.generic * Args.T list) - val multi_thm: Context.generic * Args.T list -> thm list * (Context.generic * Args.T list) + val thm_sel: Facts.interval list parser + val thm: thm context_parser + val thms: thm list context_parser + val multi_thm: thm list context_parser val print_configs: Proof.context -> unit val internal: (morphism -> attribute) -> src val register_config: Config.value Config.T -> theory -> theory diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Isar/code.ML --- a/src/Pure/Isar/code.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Isar/code.ML Fri Mar 13 21:25:15 2009 +0100 @@ -44,7 +44,7 @@ val postprocess_conv: theory -> cterm -> thm val postprocess_term: theory -> term -> term - val add_attribute: string * (Args.T list -> attribute * Args.T list) -> theory -> theory + val add_attribute: string * attribute parser -> theory -> theory val print_codesetup: theory -> unit end; @@ -83,7 +83,7 @@ (** code attributes **) structure CodeAttr = TheoryDataFun ( - type T = (string * (Args.T list -> attribute * Args.T list)) list; + type T = (string * attribute parser) list; val empty = []; val copy = I; val extend = I; diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Isar/outer_syntax.ML --- a/src/Pure/Isar/outer_syntax.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Isar/outer_syntax.ML Fri Mar 13 21:25:15 2009 +0100 @@ -9,7 +9,6 @@ signature OUTER_SYNTAX = sig - type 'a parser = 'a OuterParse.parser val command: string -> string -> OuterKeyword.T -> (Toplevel.transition -> Toplevel.transition) parser -> unit val markup_command: ThyOutput.markup -> string -> string -> OuterKeyword.T -> diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Isar/spec_parse.ML --- a/src/Pure/Isar/spec_parse.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Isar/spec_parse.ML Fri Mar 13 21:25:15 2009 +0100 @@ -6,8 +6,6 @@ signature SPEC_PARSE = sig - type token = OuterParse.token - type 'a parser = 'a OuterParse.parser val attrib: Attrib.src parser val attribs: Attrib.src list parser val opt_attribs: Attrib.src list parser @@ -36,8 +34,6 @@ struct structure P = OuterParse; -type token = P.token; -type 'a parser = 'a P.parser; (* theorem specifications *) diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Isar/value_parse.ML --- a/src/Pure/Isar/value_parse.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Isar/value_parse.ML Fri Mar 13 21:25:15 2009 +0100 @@ -6,7 +6,6 @@ signature VALUE_PARSE = sig - type 'a parser = 'a OuterParse.parser val comma: 'a parser -> 'a parser val equal: 'a parser -> 'a parser val parens: 'a parser -> 'a parser @@ -20,7 +19,6 @@ struct structure P = OuterParse; -type 'a parser = 'a P.parser; (* syntax utilities *) diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/ML/ml_antiquote.ML --- a/src/Pure/ML/ml_antiquote.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/ML/ml_antiquote.ML Fri Mar 13 21:25:15 2009 +0100 @@ -6,15 +6,11 @@ signature ML_ANTIQUOTE = sig - val macro: string -> - (Context.generic * Args.T list -> Proof.context * (Context.generic * Args.T list)) -> unit + val macro: string -> Proof.context context_parser -> unit val variant: string -> Proof.context -> string * Proof.context - val inline: string -> - (Context.generic * Args.T list -> string * (Context.generic * Args.T list)) -> unit - val declaration: string -> string -> - (Context.generic * Args.T list -> string * (Context.generic * Args.T list)) -> unit - val value: string -> - (Context.generic * Args.T list -> string * (Context.generic * Args.T list)) -> unit + val inline: string -> string context_parser -> unit + val declaration: string -> string -> string context_parser -> unit + val value: string -> string context_parser -> unit end; structure ML_Antiquote: ML_ANTIQUOTE = diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/ML/ml_context.ML --- a/src/Pure/ML/ml_context.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/ML/ml_context.ML Fri Mar 13 21:25:15 2009 +0100 @@ -27,8 +27,7 @@ type antiq = {struct_name: string, background: Proof.context} -> (Proof.context -> string * string) * Proof.context - val add_antiq: string -> - (Position.T -> Context.generic * Args.T list -> antiq * (Context.generic * Args.T list)) -> unit + val add_antiq: string -> (Position.T -> antiq context_parser) -> unit val trace: bool ref val eval_wrapper: (string -> unit) * (string -> 'a) -> bool -> Position.T -> string -> unit val eval: bool -> Position.T -> string -> unit @@ -157,9 +156,7 @@ local -val global_parsers = ref (Symtab.empty: - (Position.T -> Context.generic * Args.T list -> antiq * (Context.generic * Args.T list)) - Symtab.table); +val global_parsers = ref (Symtab.empty: (Position.T -> antiq context_parser) Symtab.table); in diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/Thy/thy_output.ML --- a/src/Pure/Thy/thy_output.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/Thy/thy_output.ML Fri Mar 13 21:25:15 2009 +0100 @@ -18,8 +18,7 @@ val print_antiquotations: unit -> unit val boolean: string -> bool val integer: string -> int - val antiquotation: string -> - (Context.generic * Args.T list -> 'a * (Context.generic * Args.T list)) -> + val antiquotation: string -> 'a context_parser -> ({state: Toplevel.state, source: Args.src, context: Proof.context} -> 'a -> string) -> unit datatype markup = Markup | MarkupEnv | Verbatim val modes: string list ref diff -r 17b2aad869fa -r 1796b8ea88aa src/Pure/simplifier.ML --- a/src/Pure/simplifier.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Pure/simplifier.ML Fri Mar 13 21:25:15 2009 +0100 @@ -73,11 +73,10 @@ val def_simproc_i: {name: string, lhss: term list, proc: morphism -> simpset -> cterm -> thm option, identifier: thm list} -> local_theory -> local_theory - val cong_modifiers: (Args.T list -> (Method.modifier * Args.T list)) list - val simp_modifiers': (Args.T list -> (Method.modifier * Args.T list)) list - val simp_modifiers: (Args.T list -> (Method.modifier * Args.T list)) list - val method_setup: (Args.T list -> (Method.modifier * Args.T list)) list - -> theory -> theory + val cong_modifiers: Method.modifier parser list + val simp_modifiers': Method.modifier parser list + val simp_modifiers: Method.modifier parser list + val method_setup: Method.modifier parser list -> theory -> theory val easy_setup: thm -> thm list -> theory -> theory end; diff -r 17b2aad869fa -r 1796b8ea88aa src/Tools/code/code_target.ML --- a/src/Tools/code/code_target.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Tools/code/code_target.ML Fri Mar 13 21:25:15 2009 +0100 @@ -26,7 +26,7 @@ -> (Path.T option -> 'a -> unit) -> ('a -> string * string option list) -> 'a -> serialization - val serialize: theory -> string -> string option -> Args.T list + val serialize: theory -> string -> string option -> OuterLex.token list -> Code_Thingol.naming -> Code_Thingol.program -> string list -> serialization val serialize_custom: theory -> string * (serializer * literals) -> Code_Thingol.naming -> Code_Thingol.program -> string list -> string * string option list @@ -106,7 +106,7 @@ type serializer = string option (*module name*) - -> Args.T list (*arguments*) + -> OuterLex.token list (*arguments*) -> (string -> string) (*labelled_name*) -> string list (*reserved symbols*) -> (string * Pretty.T) list (*includes*) diff -r 17b2aad869fa -r 1796b8ea88aa src/Tools/eqsubst.ML --- a/src/Tools/eqsubst.ML Fri Mar 13 21:24:21 2009 +0100 +++ b/src/Tools/eqsubst.ML Fri Mar 13 21:25:15 2009 +0100 @@ -109,8 +109,8 @@ searchinfo -> Term.term -> match Seq.seq Seq.seq (* syntax tools *) - val ith_syntax : Args.T list -> int list * Args.T list - val options_syntax : Args.T list -> bool * Args.T list + val ith_syntax : int list parser + val options_syntax : bool parser (* Isar level hooks *) val eqsubst_asm_meth : Proof.context -> int list -> Thm.thm list -> Proof.method