From eb70e950796ccb6b1d44fff2240fe30da5eecf7b Mon Sep 17 00:00:00 2001 From: gatecat Date: Fri, 10 Feb 2023 13:23:31 +0100 Subject: fabulous: Improve names for BRAM bels Signed-off-by: gatecat --- generic/viaduct/fabulous/fabric_parsing.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'generic/viaduct/fabulous/fabric_parsing.h') diff --git a/generic/viaduct/fabulous/fabric_parsing.h b/generic/viaduct/fabulous/fabric_parsing.h index 3fa263ca..841b2465 100644 --- a/generic/viaduct/fabulous/fabric_parsing.h +++ b/generic/viaduct/fabulous/fabric_parsing.h @@ -68,6 +68,14 @@ struct parser_view return npos; } + size_t rfind(char tok) const + { + for (size_t i = m_length; i > 0; i--) + if (m_ptr[i - 1] == tok) + return i - 1; + return npos; + } + IdString to_id(const BaseCtx *ctx) { // This isn't really ideal, let's hope one day we can move to C++20 and have proper string_views instead :3 @@ -133,6 +141,12 @@ struct parser_view NPNR_ASSERT(pos != npos); return std::make_pair(parser_view(m_ptr, pos), parser_view(m_ptr + pos + 1, m_length - (pos + 1))); } + std::pair rsplit(char delim) const + { + size_t pos = rfind(delim); + NPNR_ASSERT(pos != npos); + return std::make_pair(parser_view(m_ptr, pos), parser_view(m_ptr + pos + 1, m_length - (pos + 1))); + } }; struct CsvParser -- cgit v1.2.3