src/Pure/sign.ML
changeset 52143 36ffe23b25f8
parent 47008 8b13ebf3eda4
child 56025 d74fed45fa8b
equal deleted inserted replaced
52142:348aed032cda 52143:36ffe23b25f8
    85   val revert_abbrev: string -> string -> theory -> theory
    85   val revert_abbrev: string -> string -> theory -> theory
    86   val add_const_constraint: string * typ option -> theory -> theory
    86   val add_const_constraint: string * typ option -> theory -> theory
    87   val primitive_class: binding * class list -> theory -> theory
    87   val primitive_class: binding * class list -> theory -> theory
    88   val primitive_classrel: class * class -> theory -> theory
    88   val primitive_classrel: class * class -> theory -> theory
    89   val primitive_arity: arity -> theory -> theory
    89   val primitive_arity: arity -> theory -> theory
    90   val add_trfuns:
    90   val parse_ast_translation:
    91     (string * (Ast.ast list -> Ast.ast)) list *
       
    92     (string * (term list -> term)) list *
       
    93     (string * (term list -> term)) list *
       
    94     (string * (Ast.ast list -> Ast.ast)) list -> theory -> theory
       
    95   val add_trfunsT: (string * (typ -> term list -> term)) list -> theory -> theory
       
    96   val add_advanced_trfuns:
       
    97     (string * (Proof.context -> Ast.ast list -> Ast.ast)) list *
       
    98     (string * (Proof.context -> term list -> term)) list *
       
    99     (string * (Proof.context -> term list -> term)) list *
       
   100     (string * (Proof.context -> Ast.ast list -> Ast.ast)) list -> theory -> theory
    91     (string * (Proof.context -> Ast.ast list -> Ast.ast)) list -> theory -> theory
   101   val add_advanced_trfunsT:
    92   val parse_translation:
       
    93     (string * (Proof.context -> term list -> term)) list -> theory -> theory
       
    94   val print_translation:
       
    95     (string * (Proof.context -> term list -> term)) list -> theory -> theory
       
    96   val typed_print_translation:
   102     (string * (Proof.context -> typ -> term list -> term)) list -> theory -> theory
    97     (string * (Proof.context -> typ -> term list -> term)) list -> theory -> theory
       
    98   val print_ast_translation:
       
    99     (string * (Proof.context -> Ast.ast list -> Ast.ast)) list -> theory -> theory
   103   val add_trrules: Ast.ast Syntax.trrule list -> theory -> theory
   100   val add_trrules: Ast.ast Syntax.trrule list -> theory -> theory
   104   val del_trrules: Ast.ast Syntax.trrule list -> theory -> theory
   101   val del_trrules: Ast.ast Syntax.trrule list -> theory -> theory
   105   val new_group: theory -> theory
   102   val new_group: theory -> theory
   106   val reset_group: theory -> theory
   103   val reset_group: theory -> theory
   107   val add_path: string -> theory -> theory
   104   val add_path: string -> theory -> theory
   464 
   461 
   465 local
   462 local
   466 
   463 
   467 fun mk trs = map Syntax_Ext.mk_trfun trs;
   464 fun mk trs = map Syntax_Ext.mk_trfun trs;
   468 
   465 
   469 fun gen_add_trfuns ext non_typed (atrs, trs, tr's, atr's) =
       
   470   map_syn (ext (mk atrs, mk trs, mk (map (apsnd non_typed) tr's), mk atr's));
       
   471 
       
   472 fun gen_add_trfunsT ext tr's = map_syn (ext ([], [], mk tr's, []));
       
   473 
       
   474 in
   466 in
   475 
   467 
   476 val add_trfuns = gen_add_trfuns Syntax.update_trfuns Syntax_Trans.non_typed_tr';
   468 fun parse_ast_translation atrs = map_syn (Syntax.update_trfuns (mk atrs, [], [], []));
   477 val add_trfunsT = gen_add_trfunsT Syntax.update_trfuns;
   469 fun parse_translation trs = map_syn (Syntax.update_trfuns ([], mk trs, [], []));
   478 val add_advanced_trfuns = gen_add_trfuns Syntax.update_advanced_trfuns Syntax_Trans.non_typed_tr'';
   470 fun print_translation tr's =
   479 val add_advanced_trfunsT = gen_add_trfunsT Syntax.update_advanced_trfuns;
   471   map_syn (Syntax.update_trfuns ([], [], mk (map (apsnd Syntax_Trans.non_typed_tr') tr's), []));
       
   472 fun typed_print_translation tr's = map_syn (Syntax.update_trfuns ([], [], mk tr's, []));
       
   473 fun print_ast_translation atr's = map_syn (Syntax.update_trfuns ([], [], [], mk atr's));
   480 
   474 
   481 end;
   475 end;
   482 
   476 
   483 
   477 
   484 (* translation rules *)
   478 (* translation rules *)