From ca33241ce209f2fd63b39ea14ea2fa62a49f4d6f Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 8 Aug 2024 11:40:51 -0400 Subject: [PATCH] xo-reader: refactor: mv admits_colon -> define_xs --- include/xo/reader/define_xs.hpp | 2 ++ src/reader/define_xs.cpp | 36 +++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/include/xo/reader/define_xs.hpp b/include/xo/reader/define_xs.hpp index 162bd62a..b41454e3 100644 --- a/include/xo/reader/define_xs.hpp +++ b/include/xo/reader/define_xs.hpp @@ -22,6 +22,8 @@ namespace xo { virtual bool admits_definition() const override; virtual bool admits_symbol() const override; + virtual bool admits_colon() const override; + // virtual void on_f64(..) override virtual void on_expr(ref::brw expr, exprstatestack * p_stack, diff --git a/src/reader/define_xs.cpp b/src/reader/define_xs.cpp index 6fa1bc45..5c760e5e 100644 --- a/src/reader/define_xs.cpp +++ b/src/reader/define_xs.cpp @@ -79,6 +79,42 @@ namespace xo { return false; } + bool + define_xs::admits_colon() const { + switch (exs_type_) { + case exprstatetype::expect_toplevel_expression_sequence: + /* unreachable */ + assert(false); + return false; + + case exprstatetype::def_0: + return false; + + case exprstatetype::def_1: + return true; + + case exprstatetype::def_2: + case exprstatetype::def_3: + case exprstatetype::def_4: + case exprstatetype::def_5: + return false; + + case exprstatetype::lparen_0: + case exprstatetype::lparen_1: + case exprstatetype::expect_rhs_expression: + case exprstatetype::expect_symbol: + case exprstatetype::expect_type: + case exprstatetype::expr_progress: + case exprstatetype::invalid: + case exprstatetype::n_exprstatetype: + /* unreachable */ + assert(false); + return false; + } + + return false; + } + void define_xs::on_expr(ref::brw expr, exprstatestack * /* p_stack */,