src/Tools/Code/code_scala.ML
changeset 80086 1b986e5f9764
parent 78594 1cce41dc0c41
child 82380 ceb4f33d3073
equal deleted inserted replaced
80085:5c73934777fc 80086:1b986e5f9764
   186                 val (p_pat, vars') = print_bind tyvars some_thm NOBR pat vars;
   186                 val (p_pat, vars') = print_bind tyvars some_thm NOBR pat vars;
   187                 val p_body = print_term tyvars false some_thm vars' NOBR body
   187                 val p_body = print_term tyvars false some_thm vars' NOBR body
   188               in concat [str "case", p_pat, str "=>", p_body] end;
   188               in concat [str "case", p_pat, str "=>", p_body] end;
   189           in
   189           in
   190             map print_select clauses
   190             map print_select clauses
   191             |> Pretty.block_enclose (concat [print_term tyvars false some_thm vars NOBR t, str "match", str "{"], str "}")
   191             |> Pretty.block_enclose (concat [print_term tyvars false some_thm vars NOBR t, str "match {"], str "}")
   192             |> single
   192             |> single
   193             |> enclose "(" ")"
   193             |> enclose "(" ")"
   194           end;
   194           end;
   195     fun print_context tyvars vs s = applify "[" "]"
   195     fun print_context tyvars vs s = applify "[" "]"
   196       (fn (v, sort) => (Pretty.block o map str)
   196       (fn (v, sort) => (Pretty.block o map str)
   247           in if simple then
   247           in if simple then
   248             concat [head, print_rhs vars2 (hd eqs)]
   248             concat [head, print_rhs vars2 (hd eqs)]
   249           else
   249           else
   250             Pretty.block_enclose
   250             Pretty.block_enclose
   251               (concat [head, tuplify (map (str o lookup_var vars2) params),
   251               (concat [head, tuplify (map (str o lookup_var vars2) params),
   252                 str "match", str "{"], str "}")
   252                 str "match {"], str "}")
   253               (map print_clause eqs)
   253               (map print_clause eqs)
   254           end;
   254           end;
   255     val print_method = str o Library.enclose "`" "`" o deresolve_full o Constant;
   255     val print_method = str o Library.enclose "`" "`" o deresolve_full o Constant;
   256     fun print_inst class (tyco, { vs, inst_params, superinst_params }) =
   256     fun print_inst class (tyco, { vs, inst_params, superinst_params }) =
   257       let
   257       let