doc-src/Classes/Thy/Setup.thy
author Walther Neuper <neuper@ist.tugraz.at>
Thu, 12 Aug 2010 15:03:34 +0200
branchisac-from-Isabelle2009-2
changeset 37913 20e3616b2d9c
parent 35116 1a0c129bb2e0
child 38545 7edf0ab9d5cb
permissions -rw-r--r--
prepare reactivation of isac-update-Isa09-2
haftmann@28565
     1
theory Setup
haftmann@28565
     2
imports Main Code_Integer
haftmann@28565
     3
uses
haftmann@30210
     4
  "../../antiquote_setup"
haftmann@30210
     5
  "../../more_antiquote"
haftmann@28565
     6
begin
haftmann@28565
     7
haftmann@34071
     8
setup {* Code_Target.set_default_code_width 74 *}
haftmann@28565
     9
haftmann@28565
    10
syntax
haftmann@28565
    11
  "_alpha" :: "type"  ("\<alpha>")
haftmann@28565
    12
  "_alpha_ofsort" :: "sort \<Rightarrow> type"  ("\<alpha>()\<Colon>_" [0] 1000)
haftmann@28565
    13
  "_beta" :: "type"  ("\<beta>")
haftmann@28565
    14
  "_beta_ofsort" :: "sort \<Rightarrow> type"  ("\<beta>()\<Colon>_" [0] 1000)
haftmann@28565
    15
haftmann@28565
    16
parse_ast_translation {*
haftmann@28565
    17
  let
haftmann@28565
    18
    fun alpha_ast_tr [] = Syntax.Variable "'a"
haftmann@28565
    19
      | alpha_ast_tr asts = raise Syntax.AST ("alpha_ast_tr", asts);
haftmann@28565
    20
    fun alpha_ofsort_ast_tr [ast] =
wenzelm@35116
    21
      Syntax.Appl [Syntax.Constant @{syntax_const "_ofsort"}, Syntax.Variable "'a", ast]
haftmann@28565
    22
      | alpha_ofsort_ast_tr asts = raise Syntax.AST ("alpha_ast_tr", asts);
haftmann@28565
    23
    fun beta_ast_tr [] = Syntax.Variable "'b"
haftmann@28565
    24
      | beta_ast_tr asts = raise Syntax.AST ("beta_ast_tr", asts);
haftmann@28565
    25
    fun beta_ofsort_ast_tr [ast] =
wenzelm@35116
    26
      Syntax.Appl [Syntax.Constant @{syntax_const "_ofsort"}, Syntax.Variable "'b", ast]
haftmann@28565
    27
      | beta_ofsort_ast_tr asts = raise Syntax.AST ("beta_ast_tr", asts);
wenzelm@35116
    28
  in
wenzelm@35116
    29
   [(@{syntax_const "_alpha"}, alpha_ast_tr),
wenzelm@35116
    30
    (@{syntax_const "_alpha_ofsort"}, alpha_ofsort_ast_tr),
wenzelm@35116
    31
    (@{syntax_const "_beta"}, beta_ast_tr),
wenzelm@35116
    32
    (@{syntax_const "_beta_ofsort"}, beta_ofsort_ast_tr)]
wenzelm@35116
    33
  end
haftmann@28565
    34
*}
haftmann@28565
    35
haftmann@28565
    36
end