src/Pure/Syntax/syntax.ML
changeset 12316 79138d75405f
parent 12292 c4090cc2aa15
child 12785 27debaf2112d
equal deleted inserted replaced
12315:edeb1bbcd479 12316:79138d75405f
    48   val print_gram: syntax -> unit
    48   val print_gram: syntax -> unit
    49   val print_trans: syntax -> unit
    49   val print_trans: syntax -> unit
    50   val print_syntax: syntax -> unit
    50   val print_syntax: syntax -> unit
    51   val test_read: syntax -> string -> string -> unit
    51   val test_read: syntax -> string -> string -> unit
    52   val read: syntax -> typ -> string -> term list
    52   val read: syntax -> typ -> string -> term list
    53   val read_typ: syntax -> ((indexname * sort) list -> indexname -> sort) -> string -> typ
    53   val read_typ: syntax -> ((indexname * sort) list -> indexname -> sort) -> (sort -> sort) ->
       
    54     string -> typ
    54   val read_sort: syntax -> string -> sort
    55   val read_sort: syntax -> string -> sort
    55   val simple_read_typ: string -> typ
       
    56   val pretty_term: syntax -> bool -> term -> Pretty.T
    56   val pretty_term: syntax -> bool -> term -> Pretty.T
    57   val pretty_typ: syntax -> typ -> Pretty.T
    57   val pretty_typ: syntax -> typ -> Pretty.T
    58   val pretty_sort: syntax -> sort -> Pretty.T
    58   val pretty_sort: syntax -> sort -> Pretty.T
    59   val simple_str_of_sort: sort -> string
    59   val simple_str_of_sort: sort -> string
    60   val simple_string_of_typ: typ -> string
    60   val simple_string_of_typ: typ -> string
   369   end;
   369   end;
   370 
   370 
   371 
   371 
   372 (* read types *)
   372 (* read types *)
   373 
   373 
   374 fun read_typ syn get_sort str =
   374 fun read_typ syn get_sort map_sort str =
   375   (case read syn SynExt.typeT str of
   375   (case read syn SynExt.typeT str of
   376     [t] => TypeExt.typ_of_term (get_sort (TypeExt.raw_term_sorts t)) t
   376     [t] => TypeExt.typ_of_term (get_sort (TypeExt.raw_term_sorts t)) map_sort t
   377   | _ => error "read_typ: ambiguous syntax");
   377   | _ => error "read_typ: ambiguous syntax");
   378 
       
   379 fun simple_read_typ str =
       
   380   let fun get_sort env xi = if_none (assoc (env, xi)) [] in
       
   381     read_typ type_syn get_sort str
       
   382   end;
       
   383 
   378 
   384 
   379 
   385 (* read sorts *)
   380 (* read sorts *)
   386 
   381 
   387 fun read_sort syn str =
   382 fun read_sort syn str =