@@ -2187,31 +2187,43 @@ impure fn parse_import(parser p) -> @ast.view_item {
2187
2187
fail;
2188
2188
}
2189
2189
2190
- impure fn parse_use_or_import ( parser p) -> @ast. view_item {
2190
+ impure fn parse_export ( parser p) -> @ast. view_item {
2191
+ auto lo = p. get_span ( ) ;
2192
+ expect ( p, token. EXPORT ) ;
2193
+ auto id = parse_ident ( p) ;
2194
+ auto hi = p. get_span ( ) ;
2195
+ expect ( p, token. SEMI ) ;
2196
+ ret @spanned ( lo, hi, ast. view_item_export ( id) ) ;
2197
+ }
2198
+
2199
+ impure fn parse_view_item ( parser p) -> @ast. view_item {
2191
2200
alt ( p. peek ( ) ) {
2192
2201
case ( token. USE ) {
2193
2202
ret parse_use ( p) ;
2194
2203
}
2195
2204
case ( token. IMPORT ) {
2196
2205
ret parse_import ( p) ;
2197
2206
}
2207
+ case ( token. EXPORT ) {
2208
+ ret parse_export ( p) ;
2209
+ }
2198
2210
}
2199
2211
}
2200
2212
2201
- fn is_use_or_import ( token . token t) -> bool {
2202
- if ( t == token . USE ) {
2203
- ret true ;
2204
- }
2205
- if ( t == token. IMPORT ) {
2206
- ret true ;
2213
+ fn is_view_item ( token . token t) -> bool {
2214
+ alt ( t) {
2215
+ case ( token . USE ) { ret true ; }
2216
+ case ( token . IMPORT ) { ret true ; }
2217
+ case ( token. EXPORT ) { ret true ; }
2218
+ case ( _ ) { }
2207
2219
}
2208
2220
ret false;
2209
2221
}
2210
2222
2211
2223
impure fn parse_view ( parser p, ast. mod_index index ) -> vec[ @ast. view_item ] {
2212
2224
let vec[ @ast. view_item] items = vec ( ) ;
2213
- while ( is_use_or_import ( p. peek ( ) ) ) {
2214
- auto item = parse_use_or_import ( p) ;
2225
+ while ( is_view_item ( p. peek ( ) ) ) {
2226
+ auto item = parse_view_item ( p) ;
2215
2227
items += vec ( item) ;
2216
2228
2217
2229
ast. index_view_item ( index, item) ;
@@ -2305,12 +2317,17 @@ impure fn parse_crate_directive(parser p) -> ast.crate_directive
2305
2317
}
2306
2318
2307
2319
case ( token. USE ) {
2308
- auto vi = parse_use_or_import ( p) ;
2320
+ auto vi = parse_view_item ( p) ;
2309
2321
ret spanned( lo, vi. span , ast. cdir_view_item ( vi) ) ;
2310
2322
}
2311
2323
2312
2324
case ( token. IMPORT ) {
2313
- auto vi = parse_use_or_import ( p) ;
2325
+ auto vi = parse_view_item ( p) ;
2326
+ ret spanned( lo, vi. span , ast. cdir_view_item ( vi) ) ;
2327
+ }
2328
+
2329
+ case ( token. EXPORT ) {
2330
+ auto vi = parse_view_item ( p) ;
2314
2331
ret spanned( lo, vi. span , ast. cdir_view_item ( vi) ) ;
2315
2332
}
2316
2333
0 commit comments