@@ -160,28 +160,42 @@ impl fmt::Display for Statement {
160
160
#[ macro_export]
161
161
macro_rules! hir {
162
162
( ( CONST $( $integer: tt) +) ) => {
163
- $crate:: data:: hir:: Expression :: from( hir!( $( $integer) +) )
163
+ $crate:: data:: hir:: Expression :: from(
164
+ $crate:: data:: hir:: hir!( $( $integer) +)
165
+ )
164
166
} ;
165
167
( ( NAME $( $label: tt) +) ) => {
166
- $crate:: data:: hir:: Expression :: from( hir!( $( $label) +) )
168
+ $crate:: data:: hir:: Expression :: from(
169
+ $crate:: data:: hir:: hir!( $( $label) +)
170
+ )
167
171
} ;
168
172
( ( TEMP $( $temporary: tt) +) ) => {
169
- $crate:: data:: hir:: Expression :: from( hir!( $( $temporary) +) )
173
+ $crate:: data:: hir:: Expression :: from(
174
+ $crate:: data:: hir:: hir!( $( $temporary) +)
175
+ )
170
176
} ;
171
177
( ( MEM $expression: tt) ) => {
172
- $crate:: data:: hir:: Expression :: Memory ( Box :: new( hir!( $expression) ) )
178
+ $crate:: data:: hir:: Expression :: Memory ( Box :: new(
179
+ $crate:: data:: hir:: hir!( $expression)
180
+ ) )
173
181
} ;
174
182
( ( CALL $function: tt $returns: tt $( $argument: tt) * ) ) => {
175
183
$crate:: data:: hir:: Expression :: Call (
176
- Box :: new( hir!( $function) ) ,
177
- vec![ $( hir!( $argument) , ) * ] ,
184
+ Box :: new(
185
+ $crate:: data:: hir:: hir!( $function)
186
+ ) ,
187
+ vec![
188
+ $(
189
+ $crate:: data:: hir:: hir!( $argument) ,
190
+ ) *
191
+ ] ,
178
192
$returns,
179
193
)
180
194
} ;
181
195
( ( ESEQ $statement: tt $expression: tt) ) => {
182
196
$crate:: data:: hir:: Expression :: Sequence (
183
- Box :: new( hir!( $statement) ) ,
184
- Box :: new( hir!( $expression) ) ,
197
+ Box :: new( $crate :: data :: hir :: hir!( $statement) ) ,
198
+ Box :: new( $crate :: data :: hir :: hir!( $expression) ) ,
185
199
)
186
200
} ;
187
201
@@ -190,9 +204,9 @@ macro_rules! hir {
190
204
} ;
191
205
( ( CJUMP ( $condition: ident $left: tt $right: tt) $r#true : ident $r#false : ident) ) => {
192
206
$crate:: data:: hir:: Statement :: CJump {
193
- condition: ir!( $condition) ,
194
- left: hir!( $left) ,
195
- right: hir!( $right) ,
207
+ condition: $crate :: data :: ir :: ir!( $condition) ,
208
+ left: $crate :: data :: hir :: hir!( $left) ,
209
+ right: $crate :: data :: hir :: hir!( $right) ,
196
210
r#true: $r#true ,
197
211
r#false: $r#false ,
198
212
}
@@ -201,36 +215,47 @@ macro_rules! hir {
201
215
$crate:: data:: hir:: Statement :: Label ( $label)
202
216
} ;
203
217
( ( EXP $expression: tt) ) => {
204
- $crate:: data:: hir:: Statement :: Expression ( hir!( $expression) )
218
+ $crate:: data:: hir:: Statement :: Expression (
219
+ $crate:: data:: hir:: hir!( $expression)
220
+ )
205
221
} ;
206
222
( ( MOVE $into: tt $from: tt) ) => {
207
223
$crate:: data:: hir:: Statement :: Move {
208
- destination: hir!( $into) ,
209
- source: hir!( $from) ,
224
+ destination: $crate :: data :: hir :: hir!( $into) ,
225
+ source: $crate :: data :: hir :: hir!( $from) ,
210
226
}
211
227
} ;
212
- ( ( RETURN $returns : expr ) ) => {
213
- $crate:: data:: hir:: Statement :: Return ( $returns )
214
- } ;
215
- ( ( SEQ $statement : tt $ ( $statements : tt ) + ) ) => {
216
- $crate:: data:: hir:: Statement :: Sequence ( vec! [
217
- hir! ( $statement ) ,
218
- $ ( hir! ( $statements ) , ) *
219
- ] )
228
+ ( ( RETURN $( $expression : tt ) * ) ) => {
229
+ $crate:: data:: hir:: Statement :: Return (
230
+ vec! [
231
+ $ (
232
+ $crate:: data:: hir:: hir! ( $expression ) ,
233
+ ) *
234
+ ]
235
+ )
220
236
} ;
221
- ( ( SEQ $statements: expr) ) => {
222
- $crate:: data:: hir:: Statement :: Sequence ( $statements)
237
+ ( ( SEQ $( $statement: tt) * ) ) => {
238
+ $crate:: data:: hir:: Statement :: Sequence (
239
+ vec![
240
+ $(
241
+ $crate:: data:: hir:: hir!( $statement) ,
242
+ ) *
243
+ ] ,
244
+ )
223
245
} ;
224
-
225
246
( ( $binary: ident $left: tt $right: tt) ) => {
226
247
$crate:: data:: hir:: Expression :: Binary (
227
- ir!( $binary) ,
228
- Box :: new( hir!( $left) ) ,
229
- Box :: new( hir!( $right) ) ,
248
+ $crate :: data :: ir :: ir!( $binary) ,
249
+ Box :: new( $crate :: data :: hir :: hir!( $left) ) ,
250
+ Box :: new( $crate :: data :: hir :: hir!( $right) ) ,
230
251
)
231
252
} ;
232
253
233
254
( $expression: expr) => {
234
255
$expression
235
256
}
236
257
}
258
+
259
+ // https://github.com/rust-lang/rust/pull/52234#issuecomment-976702997
260
+ #[ doc( hidden) ]
261
+ pub use hir;
0 commit comments