diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-11-10 17:04:12 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-11-16 21:21:37 +0300 |
| commit | a699f17483baeff87dc027331bce9a552a6b0624 (patch) | |
| tree | 5142f5ba40dd086d783cdcffed2db7d114c7801d /src/librustc_parse/parser/expr.rs | |
| parent | b85a3da421abad7d1936ec6e57e43c7b0ff10bd3 (diff) | |
| download | rust-a699f17483baeff87dc027331bce9a552a6b0624.tar.gz rust-a699f17483baeff87dc027331bce9a552a6b0624.zip | |
parse: Use string literal parsing in the `asm` macro
Diffstat (limited to 'src/librustc_parse/parser/expr.rs')
| -rw-r--r-- | src/librustc_parse/parser/expr.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/librustc_parse/parser/expr.rs b/src/librustc_parse/parser/expr.rs index df2f6822465..be1dc4f19a7 100644 --- a/src/librustc_parse/parser/expr.rs +++ b/src/librustc_parse/parser/expr.rs @@ -1073,6 +1073,22 @@ impl<'a> Parser<'a> { self.maybe_recover_from_bad_qpath(expr, true) } + pub fn parse_str_lit(&mut self) -> Result<ast::StrLit, Option<Lit>> { + match self.parse_opt_lit() { + Some(lit) => match lit.kind { + ast::LitKind::Str(symbol_unescaped, style) => Ok(ast::StrLit { + style, + symbol: lit.token.symbol, + suffix: lit.token.suffix, + span: lit.span, + symbol_unescaped, + }), + _ => Err(Some(lit)), + } + None => Err(None), + } + } + pub(super) fn parse_lit(&mut self) -> PResult<'a, Lit> { self.parse_opt_lit().ok_or_else(|| { let msg = format!("unexpected token: {}", self.this_token_descr()); |
