src/HOL/HoareParallel/Quote_Antiquote.thy
author nipkow
Mon, 13 May 2002 15:27:28 +0200
changeset 13145 59bc43b51aa2
parent 13020 791e3b4c4039
child 16417 9bc16273c2d4
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13020
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     1
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     2
header {* \section{Concrete Syntax} *}
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     3
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     4
theory Quote_Antiquote = Main:
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     5
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     6
syntax
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     7
  "_quote"     :: "'b \<Rightarrow> ('a \<Rightarrow> 'b)"                ("(\<guillemotleft>_\<guillemotright>)" [0] 1000)
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     8
  "_antiquote" :: "('a \<Rightarrow> 'b) \<Rightarrow> 'b"                ("\<acute>_" [1000] 1000)
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
     9
  "_Assert"    :: "'a \<Rightarrow> 'a set"                    ("(.{_}.)" [0] 1000)
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    10
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    11
syntax (xsymbols)
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    12
  "_Assert"    :: "'a \<Rightarrow> 'a set"            ("(\<lbrace>_\<rbrace>)" [0] 1000)
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    13
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    14
translations
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    15
  ".{b}." \<rightharpoonup> "Collect \<guillemotleft>b\<guillemotright>"
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    16
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    17
parse_translation {*
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    18
  let
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    19
    fun quote_tr [t] = Syntax.quote_tr "_antiquote" t
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    20
      | quote_tr ts = raise TERM ("quote_tr", ts);
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    21
  in [("_quote", quote_tr)] end
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    22
*}
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    23
791e3b4c4039 HoareParallel Theories
prensani
parents:
diff changeset
    24
end