src/Pure/Syntax/syntax_phases.ML
changeset 42255 097c93dcd877
parent 42254 f427c9890c46
child 42264 b6c1b0c4c511
equal deleted inserted replaced
42254:f427c9890c46 42255:097c93dcd877
   266 
   266 
   267 fun parse_raw ctxt root input =
   267 fun parse_raw ctxt root input =
   268   let
   268   let
   269     val syn = ProofContext.syn_of ctxt;
   269     val syn = ProofContext.syn_of ctxt;
   270     val tr = Syntax.parse_translation syn;
   270     val tr = Syntax.parse_translation syn;
   271     val {parse_ruletab, ...} = Syntax.rep_syntax syn;
   271     val parse_rules = Syntax.parse_rules syn;
   272     val norm = Ast.normalize ctxt (Symtab.lookup_list parse_ruletab);
       
   273     val ast_to_term = ast_to_term ctxt tr;
       
   274   in
   272   in
   275     parse_asts ctxt false root input
   273     parse_asts ctxt false root input
   276     |> (map o apsnd o Exn.maps_result) (norm #> Exn.interruptible_capture ast_to_term)
   274     |> (map o apsnd o Exn.maps_result)
       
   275         (Ast.normalize ctxt parse_rules #> Exn.interruptible_capture (ast_to_term ctxt tr))
   277   end;
   276   end;
   278 
   277 
   279 
   278 
   280 (* parse logical entities *)
   279 (* parse logical entities *)
   281 
   280 
   555 local
   554 local
   556 
   555 
   557 fun unparse_t t_to_ast prt_t markup ctxt curried t =
   556 fun unparse_t t_to_ast prt_t markup ctxt curried t =
   558   let
   557   let
   559     val syn = ProofContext.syn_of ctxt;
   558     val syn = ProofContext.syn_of ctxt;
   560     val tr' = Syntax.print_translation syn;
       
   561     val ast_tr' = Syntax.print_ast_translation syn;
       
   562     val tokentr = Syntax.token_translation syn (print_mode_value ());
   559     val tokentr = Syntax.token_translation syn (print_mode_value ());
   563     val {print_ruletab, prtabs, ...} = Syntax.rep_syntax syn;
       
   564   in
   560   in
   565     t_to_ast ctxt tr' t
   561     t_to_ast ctxt (Syntax.print_translation syn) t
   566     |> Ast.normalize ctxt (Symtab.lookup_list print_ruletab)
   562     |> Ast.normalize ctxt (Syntax.print_rules syn)
   567     |> prt_t ctxt curried prtabs ast_tr' tokentr
   563     |> prt_t ctxt curried (Syntax.prtabs syn) (Syntax.print_ast_translation syn) tokentr
   568     |> Pretty.markup markup
   564     |> Pretty.markup markup
   569   end;
   565   end;
   570 
   566 
   571 in
   567 in
   572 
   568