src/Pure/Syntax/syntax.ML
changeset 42255 097c93dcd877
parent 42254 f427c9890c46
child 42263 49b1b8d0782f
--- a/src/Pure/Syntax/syntax.ML	Wed Apr 06 17:00:40 2011 +0200
+++ b/src/Pure/Syntax/syntax.ML	Wed Apr 06 17:15:06 2011 +0200
@@ -100,32 +100,21 @@
       string list -> string -> (Proof.context -> string -> Pretty.T) option
   type ruletab
   type syntax
-  val rep_syntax: syntax ->
-   {input: Syn_Ext.xprod list,
-    lexicon: Scan.lexicon,
-    gram: Parser.gram,
-    consts: string list,
-    prmodes: string list,
-    parse_ast_trtab: ((Proof.context -> Ast.ast list -> Ast.ast) * stamp) Symtab.table,
-    parse_ruletab: ruletab,
-    parse_trtab: ((Proof.context -> term list -> term) * stamp) Symtab.table,
-    print_trtab: ((Proof.context -> typ -> term list -> term) * stamp) list Symtab.table,
-    print_ruletab: ruletab,
-    print_ast_trtab: ((Proof.context -> Ast.ast list -> Ast.ast) * stamp) list Symtab.table,
-    tokentrtab: (string * (string * ((Proof.context -> string -> Pretty.T) * stamp)) list) list,
-    prtabs: Printer.prtabs}
   val eq_syntax: syntax * syntax -> bool
   val is_keyword: syntax -> string -> bool
   val tokenize: syntax -> bool -> Symbol_Pos.T list -> Lexicon.token list
   val parse: Proof.context -> syntax -> string -> Lexicon.token list -> Parser.parsetree list
   val parse_ast_translation: syntax -> string -> (Proof.context -> Ast.ast list -> Ast.ast) option
+  val parse_rules: syntax -> string -> (Ast.ast * Ast.ast) list
   val parse_translation: syntax -> string -> (Proof.context -> term list -> term) option
   val print_translation: syntax -> string ->
     Proof.context -> typ -> term list -> term  (*exception Match*)
+  val print_rules: syntax -> string -> (Ast.ast * Ast.ast) list
   val print_ast_translation: syntax -> string ->
     Proof.context -> Ast.ast list -> Ast.ast  (*exception Match*)
   val token_translation: syntax -> string list ->
     string -> (Proof.context -> string -> Pretty.T) option
+  val prtabs: syntax -> Printer.prtabs
   type mode
   val mode_default: mode
   val mode_input: mode
@@ -521,10 +510,14 @@
 
 fun parse_ast_translation (Syntax ({parse_ast_trtab, ...}, _)) = lookup_tr parse_ast_trtab;
 fun parse_translation (Syntax ({parse_trtab, ...}, _)) = lookup_tr parse_trtab;
+fun parse_rules (Syntax ({parse_ruletab, ...}, _)) = Symtab.lookup_list parse_ruletab;
 fun print_translation (Syntax ({print_trtab, ...}, _)) = apply_tr' print_trtab;
+fun print_rules (Syntax ({print_ruletab, ...}, _)) = Symtab.lookup_list print_ruletab;
 fun print_ast_translation (Syntax ({print_ast_trtab, ...}, _)) = apply_ast_tr' print_ast_trtab;
 fun token_translation (Syntax ({tokentrtab, ...}, _)) = lookup_tokentr tokentrtab;
 
+fun prtabs (Syntax ({prtabs, ...}, _)) = prtabs;
+
 type mode = string * bool;
 val mode_default = ("", true);
 val mode_input = (Print_Mode.input, true);