diff options
| author | Simon Sapin <simon.sapin@exyr.org> | 2014-06-07 15:32:01 +0100 |
|---|---|---|
| committer | Simon Sapin <simon.sapin@exyr.org> | 2014-06-17 23:43:18 +0200 |
| commit | d7e01b5809cd600a30bab29da698acb3d1b52409 (patch) | |
| tree | 286205104bc60273b9dae149b21c10a4b94a1764 /src/libsyntax/parse/token.rs | |
| parent | bccdba02960b3cd428addbc2c856065ebb81eb04 (diff) | |
| download | rust-d7e01b5809cd600a30bab29da698acb3d1b52409.tar.gz rust-d7e01b5809cd600a30bab29da698acb3d1b52409.zip | |
Add a b"xx" byte string literal of type &'static [u8].
Diffstat (limited to 'src/libsyntax/parse/token.rs')
| -rw-r--r-- | src/libsyntax/parse/token.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index b8f13624a32..b76dcaf0b94 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -87,6 +87,7 @@ pub enum Token { LIT_FLOAT_UNSUFFIXED(ast::Ident), LIT_STR(ast::Ident), LIT_STR_RAW(ast::Ident, uint), /* raw str delimited by n hash symbols */ + LIT_BINARY(Rc<Vec<u8>>), /* Name components */ // an identifier contains an "is_mod_name" boolean, @@ -231,17 +232,22 @@ pub fn to_str(t: &Token) -> String { body } LIT_STR(s) => { - (format!("\"{}\"", get_ident(s).get().escape_default())).to_string() + format!("\"{}\"", get_ident(s).get().escape_default()) } LIT_STR_RAW(s, n) => { - (format!("r{delim}\"{string}\"{delim}", - delim="#".repeat(n), string=get_ident(s))).to_string() + format!("r{delim}\"{string}\"{delim}", + delim="#".repeat(n), string=get_ident(s)) + } + LIT_BINARY(ref v) => { + format!( + "b\"{}\"", + v.iter().map(|&b| b as char).collect::<String>().escape_default()) } /* Name components */ IDENT(s, _) => get_ident(s).get().to_string(), LIFETIME(s) => { - (format!("{}", get_ident(s))).to_string() + format!("{}", get_ident(s)) } UNDERSCORE => "_".to_string(), @@ -291,6 +297,7 @@ pub fn can_begin_expr(t: &Token) -> bool { LIT_FLOAT_UNSUFFIXED(_) => true, LIT_STR(_) => true, LIT_STR_RAW(_, _) => true, + LIT_BINARY(_) => true, POUND => true, AT => true, NOT => true, @@ -330,6 +337,7 @@ pub fn is_lit(t: &Token) -> bool { LIT_FLOAT_UNSUFFIXED(_) => true, LIT_STR(_) => true, LIT_STR_RAW(_, _) => true, + LIT_BINARY(_) => true, _ => false } } |
