From 508fe45737e08a6749ddc5f903523dc7b3aaba1a Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 20 May 2018 16:16:20 +0800 Subject: Parse - Cleanup TODOs --- src/parse/token.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/parse/token.cpp') 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(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(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 "#"; -- cgit v1.2.3