doc-src/Classes/Thy/Setup.thy
author haftmann
Tue, 03 Mar 2009 11:00:51 +0100
changeset 30226 2f4684e2ea95
parent 28565 doc-src/IsarAdvanced/Classes/Thy/Setup.thy@519b17118926
child 30227 853abb4853cc
permissions -rw-r--r--
more canonical directory structure of manuals
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28565
haftmann
parents:
diff changeset
     1
theory Setup
haftmann
parents:
diff changeset
     2
imports Main Code_Integer
haftmann
parents:
diff changeset
     3
uses
haftmann
parents:
diff changeset
     4
  "../../../antiquote_setup"
haftmann
parents:
diff changeset
     5
  "../../../more_antiquote"
haftmann
parents:
diff changeset
     6
begin
haftmann
parents:
diff changeset
     7
haftmann
parents:
diff changeset
     8
ML {* Code_Target.code_width := 74 *}
haftmann
parents:
diff changeset
     9
haftmann
parents:
diff changeset
    10
syntax
haftmann
parents:
diff changeset
    11
  "_alpha" :: "type"  ("\<alpha>")
haftmann
parents:
diff changeset
    12
  "_alpha_ofsort" :: "sort \<Rightarrow> type"  ("\<alpha>()\<Colon>_" [0] 1000)
haftmann
parents:
diff changeset
    13
  "_beta" :: "type"  ("\<beta>")
haftmann
parents:
diff changeset
    14
  "_beta_ofsort" :: "sort \<Rightarrow> type"  ("\<beta>()\<Colon>_" [0] 1000)
haftmann
parents:
diff changeset
    15
haftmann
parents:
diff changeset
    16
parse_ast_translation {*
haftmann
parents:
diff changeset
    17
  let
haftmann
parents:
diff changeset
    18
    fun alpha_ast_tr [] = Syntax.Variable "'a"
haftmann
parents:
diff changeset
    19
      | alpha_ast_tr asts = raise Syntax.AST ("alpha_ast_tr", asts);
haftmann
parents:
diff changeset
    20
    fun alpha_ofsort_ast_tr [ast] =
haftmann
parents:
diff changeset
    21
      Syntax.Appl [Syntax.Constant "_ofsort", Syntax.Variable "'a", ast]
haftmann
parents:
diff changeset
    22
      | alpha_ofsort_ast_tr asts = raise Syntax.AST ("alpha_ast_tr", asts);
haftmann
parents:
diff changeset
    23
    fun beta_ast_tr [] = Syntax.Variable "'b"
haftmann
parents:
diff changeset
    24
      | beta_ast_tr asts = raise Syntax.AST ("beta_ast_tr", asts);
haftmann
parents:
diff changeset
    25
    fun beta_ofsort_ast_tr [ast] =
haftmann
parents:
diff changeset
    26
      Syntax.Appl [Syntax.Constant "_ofsort", Syntax.Variable "'b", ast]
haftmann
parents:
diff changeset
    27
      | beta_ofsort_ast_tr asts = raise Syntax.AST ("beta_ast_tr", asts);
haftmann
parents:
diff changeset
    28
  in [
haftmann
parents:
diff changeset
    29
    ("_alpha", alpha_ast_tr), ("_alpha_ofsort", alpha_ofsort_ast_tr),
haftmann
parents:
diff changeset
    30
    ("_beta", beta_ast_tr), ("_beta_ofsort", beta_ofsort_ast_tr)
haftmann
parents:
diff changeset
    31
  ] end
haftmann
parents:
diff changeset
    32
*}
haftmann
parents:
diff changeset
    33
haftmann
parents:
diff changeset
    34
end