summaryrefslogtreecommitdiff
path: root/src/parse/token.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2018-05-20 16:16:20 +0800
committerJohn Hodge <tpg@mutabah.net>2018-05-20 16:16:20 +0800
commit508fe45737e08a6749ddc5f903523dc7b3aaba1a (patch)
treee6d5dbd24e89086feb136e81c42000482d7f8e76 /src/parse/token.cpp
parent1c50e757b45f64ead016d6cd2bf27585ba5dce04 (diff)
downloadmrust-508fe45737e08a6749ddc5f903523dc7b3aaba1a.tar.gz
Parse - Cleanup TODOs
Diffstat (limited to 'src/parse/token.cpp')
-rw-r--r--src/parse/token.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/parse/token.cpp b/src/parse/token.cpp
index 6f3bafd9..eb5830a2 100644
--- a/src/parse/token.cpp
+++ b/src/parse/token.cpp
@@ -297,7 +297,7 @@ struct EscapedString {
reinterpret_cast<const ::AST::Path*>(m_data.as_Fragment())->print_pretty(ss, true);
return ss.str();
case TOK_INTERPOLATED_PATTERN:
- // TODO: Use a configurable print
+ // TODO: Use a pretty printer too?
return FMT( *reinterpret_cast<const ::AST::Pattern*>(m_data.as_Fragment()) );
case TOK_INTERPOLATED_STMT:
case TOK_INTERPOLATED_BLOCK:
@@ -312,9 +312,21 @@ struct EscapedString {
// Value tokens
case TOK_IDENT: return m_data.as_String();
case TOK_LIFETIME: return "'" + m_data.as_String();
- case TOK_INTEGER: return FMT(m_data.as_Integer().m_intval); // TODO: suffix for type
+ case TOK_INTEGER:
+ if( m_data.as_Integer().m_datatype == CORETYPE_ANY ) {
+ return FMT(m_data.as_Integer().m_intval);
+ }
+ else {
+ return FMT(m_data.as_Integer().m_intval << "_" << m_data.as_Integer().m_datatype);
+ }
case TOK_CHAR: return FMT("'\\u{"<< ::std::hex << m_data.as_Integer().m_intval << "}");
- case TOK_FLOAT: return FMT(m_data.as_Float().m_floatval);
+ case TOK_FLOAT:
+ if( m_data.as_Float().m_datatype == CORETYPE_ANY ) {
+ return FMT(m_data.as_Float().m_floatval);
+ }
+ else {
+ return FMT(m_data.as_Float().m_floatval << "_" << m_data.as_Float().m_datatype);
+ }
case TOK_STRING: return FMT("\"" << EscapedString(m_data.as_String()) << "\"");
case TOK_BYTESTRING:return FMT("b\"" << m_data.as_String() << "\"");
case TOK_HASH: return "#";