src/Pure/Syntax/syntax_phases.ML
changeset 55828 42ac3cfb89f6
parent 55550 bcc643ac071a
child 55829 b7bdea5336dd
equal deleted inserted replaced
55827:8a881f83e206 55828:42ac3cfb89f6
   438               SOME p => Ast.mk_appl (decode (p :: ps) ast) (map (decode ps) args)
   438               SOME p => Ast.mk_appl (decode (p :: ps) ast) (map (decode ps) args)
   439             | NONE => decode_appl ps asts)
   439             | NONE => decode_appl ps asts)
   440           else decode_appl ps asts
   440           else decode_appl ps asts
   441       | decode ps (Ast.Appl asts) = decode_appl ps asts;
   441       | decode ps (Ast.Appl asts) = decode_appl ps asts;
   442 
   442 
   443     val (syms, pos) = Syntax.read_token str;
   443     val {text, pos, ...} = Syntax.read_token_source str;
       
   444     val syms = Symbol_Pos.explode (text, pos);
   444     val ast =
   445     val ast =
   445       parse_asts ctxt true root (syms, pos)
   446       parse_asts ctxt true root (syms, pos)
   446       |> uncurry (report_result ctxt pos)
   447       |> uncurry (report_result ctxt pos)
   447       |> decode [];
   448       |> decode [];
   448     val _ = Context_Position.reports ctxt (! reports);
   449     val _ = Context_Position.reports ctxt (! reports);
   747     |> pretty_ast markup
   748     |> pretty_ast markup
   748   end;
   749   end;
   749 
   750 
   750 in
   751 in
   751 
   752 
   752 val unparse_sort = unparse_t sort_to_ast Printer.pretty_typ_ast Markup.language_sort;
   753 val unparse_sort = unparse_t sort_to_ast Printer.pretty_typ_ast (Markup.language_sort false);
   753 val unparse_typ = unparse_t typ_to_ast Printer.pretty_typ_ast Markup.language_type;
   754 val unparse_typ = unparse_t typ_to_ast Printer.pretty_typ_ast (Markup.language_type false);
   754 
   755 
   755 fun unparse_term ctxt =
   756 fun unparse_term ctxt =
   756   let
   757   let
   757     val thy = Proof_Context.theory_of ctxt;
   758     val thy = Proof_Context.theory_of ctxt;
   758     val syn = Proof_Context.syn_of ctxt;
   759     val syn = Proof_Context.syn_of ctxt;
   759     val idents = Local_Syntax.idents_of (Proof_Context.syntax_of ctxt);
   760     val idents = Local_Syntax.idents_of (Proof_Context.syntax_of ctxt);
   760   in
   761   in
   761     unparse_t (term_to_ast idents (is_some o Syntax.lookup_const syn))
   762     unparse_t (term_to_ast idents (is_some o Syntax.lookup_const syn))
   762       (Printer.pretty_term_ast (not (Pure_Thy.old_appl_syntax thy)))
   763       (Printer.pretty_term_ast (not (Pure_Thy.old_appl_syntax thy)))
   763       Markup.language_term ctxt
   764       (Markup.language_term false) ctxt
   764   end;
   765   end;
   765 
   766 
   766 end;
   767 end;
   767 
   768 
   768 
   769