(index<- )        ./libsyntax/ext/trace_macros.rs

    git branch:    * master           5200215 auto merge of #14035 : alexcrichton/rust/experimental, r=huonw
    modified:    Fri May  9 13:02:28 2014
  1  // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
  2  // file at the top-level directory of this distribution and at
  3  // http://rust-lang.org/COPYRIGHT.
  4  //
  5  // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
  6  // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
  7  // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
  8  // option. This file may not be copied, modified, or distributed
  9  // except according to those terms.
 10  
 11  use ast;
 12  use codemap::Span;
 13  use ext::base::ExtCtxt;
 14  use ext::base;
 15  use parse::token::{keywords, is_keyword};
 16  
 17  
 18  pub fn expand_trace_macros(cx: &mut ExtCtxt,
 19                             spSpan,
 20                             tt: &[ast::TokenTree])
 21                             -> Box<base::MacResult> {
 22      match tt {
 23          [ast::TTTok(_, ref tok)] if is_keyword(keywords::True, tok) => {
 24              cx.set_trace_macros(true);
 25          }
 26          [ast::TTTok(_, ref tok)] if is_keyword(keywords::False, tok) => {
 27              cx.set_trace_macros(false);
 28          }
 29          _ => cx.span_err(sp, "trace_macros! accepts only `true` or `false`"),
 30      }
 31  
 32      base::DummyResult::any(sp)
 33  }