equal
deleted
inserted
replaced
129 "_variable _noargs r" => "CONST unit_when\<cdot>r" |
129 "_variable _noargs r" => "CONST unit_when\<cdot>r" |
130 |
130 |
131 parse_translation {* |
131 parse_translation {* |
132 (* rewrite (_pat x) => (succeed) *) |
132 (* rewrite (_pat x) => (succeed) *) |
133 (* rewrite (_variable x t) => (Abs_cfun (%x. t)) *) |
133 (* rewrite (_variable x t) => (Abs_cfun (%x. t)) *) |
134 [(@{syntax_const "_pat"}, fn _ => Syntax.const @{const_syntax Fixrec.succeed}), |
134 [(@{syntax_const "_pat"}, fn _ => fn _ => Syntax.const @{const_syntax Fixrec.succeed}), |
135 Syntax_Trans.mk_binder_tr (@{syntax_const "_variable"}, @{const_syntax Abs_cfun})]; |
135 Syntax_Trans.mk_binder_tr (@{syntax_const "_variable"}, @{const_syntax Abs_cfun})]; |
136 *} |
136 *} |
137 |
137 |
138 text {* Printing Case expressions *} |
138 text {* Printing Case expressions *} |
139 |
139 |
162 let val (v, t) = dest_LAM r in |
162 let val (v, t) = dest_LAM r in |
163 Syntax.const @{syntax_const "_Case1"} $ |
163 Syntax.const @{syntax_const "_Case1"} $ |
164 (Syntax.const @{syntax_const "_match"} $ p $ v) $ t |
164 (Syntax.const @{syntax_const "_match"} $ p $ v) $ t |
165 end; |
165 end; |
166 |
166 |
167 in [(@{const_syntax Rep_cfun}, Case1_tr')] end; |
167 in [(@{const_syntax Rep_cfun}, K Case1_tr')] end; |
168 *} |
168 *} |
169 |
169 |
170 translations |
170 translations |
171 "x" <= "_match (CONST succeed) (_variable x)" |
171 "x" <= "_match (CONST succeed) (_variable x)" |
172 |
172 |