added basic syntax;
authorwenzelm
Thu, 19 Jan 2006 21:22:25 +0100
changeset 18720 dd1ebba12151
parent 18719 dca3ae4f6dd6
child 18721 54693225c2f4
added basic syntax; removed pure syntax;
src/Pure/Syntax/syntax.ML
--- a/src/Pure/Syntax/syntax.ML	Thu Jan 19 21:22:24 2006 +0100
+++ b/src/Pure/Syntax/syntax.ML	Thu Jan 19 21:22:25 2006 +0100
@@ -60,7 +60,10 @@
     string * bool -> (string * typ * mixfix) list -> syntax -> syntax
   val map_trrule: ('a -> 'b) -> 'a trrule -> 'b trrule
   val merge_syntaxes: syntax -> syntax -> syntax
-  val pure_syn: syntax
+  val basic_syn: syntax
+  val basic_nonterms: string list
+  val appl_syntax: (string * string * mixfix) list
+  val applC_syntax: (string * string * mixfix) list
   val print_gram: syntax -> unit
   val print_trans: syntax -> unit
   val print_syntax: syntax -> unit
@@ -292,13 +295,28 @@
   end;
 
 
-(* pure_syn *)
+(* basic syntax *)
 
-val pure_syn =
+val basic_syn =
   empty_syntax
   |> extend_syntax default_mode TypeExt.type_ext
   |> extend_syntax default_mode SynExt.pure_ext;
 
+val basic_nonterms =
+  (Lexicon.terminals @ [SynExt.logic, "type", "types", "sort", "classes",
+    SynExt.args, SynExt.cargs, "pttrn", "pttrns", "idt", "idts", "aprop",
+    "asms", SynExt.any, SynExt.sprop, "num_const", "index", "struct"]);
+
+val appl_syntax =
+ [("_appl", "[('b => 'a), args] => logic", Mixfix.Mixfix ("(1_/(1'(_')))", [1000, 0], 1000)),
+  ("_appl", "[('b => 'a), args] => aprop", Mixfix.Mixfix ("(1_/(1'(_')))", [1000, 0], 1000))];
+
+val applC_syntax =
+ [("",       "'a => cargs",                  Mixfix.Delimfix "_"),
+  ("_cargs", "['a, cargs] => cargs",         Mixfix.Mixfix ("_/ _", [1000, 1000], 1000)),
+  ("_applC", "[('b => 'a), cargs] => logic", Mixfix.Mixfix ("(1_/ _)", [1000, 1000], 999)),
+  ("_applC", "[('b => 'a), cargs] => aprop", Mixfix.Mixfix ("(1_/ _)", [1000, 1000], 999))];
+
 
 
 (** print syntax **)