From 8b63fbaaa2ba2f2b994c3d3e54dd9e9c19b1f445 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sun, 25 Jan 2026 10:47:28 -0500 Subject: [PATCH] xo-reader2: bugfix: prior refactor requires switch remodel on_token --- xo-reader2/src/reader2/DDefineSsm.cpp | 29 ++++++++++----------- xo-reader2/src/reader2/DExpectSymbolSsm.cpp | 6 ++--- xo-reader2/src/reader2/DExpectTypeSsm.cpp | 7 +++-- xo-reader2/src/reader2/DExprSeqState.cpp | 20 +++++++------- xo-reader2/src/reader2/DProgressSsm.cpp | 23 +++++++++------- 5 files changed, 43 insertions(+), 42 deletions(-) diff --git a/xo-reader2/src/reader2/DDefineSsm.cpp b/xo-reader2/src/reader2/DDefineSsm.cpp index b8c5b0ae..0cd488e5 100644 --- a/xo-reader2/src/reader2/DDefineSsm.cpp +++ b/xo-reader2/src/reader2/DDefineSsm.cpp @@ -500,43 +500,43 @@ namespace xo { switch (tk.tk_type()) { case tokentype::tk_symbol: this->on_symbol_token(tk, p_psm); - break; + return; case tokentype::tk_def: this->on_def_token(tk, p_psm); - break; + return; case tokentype::tk_if: this->on_if_token(tk, p_psm); - break; + return; case tokentype::tk_colon: this->on_colon_token(tk, p_psm); - break; + return; case tokentype::tk_singleassign: this->on_singleassign_token(tk, p_psm); - break; + return; case tokentype::tk_string: this->on_string_token(tk, p_psm); - break; + return; case tokentype::tk_f64: this->on_f64_token(tk, p_psm); - break; + return; case tokentype::tk_i64: this->on_i64_token(tk, p_psm); - break; + return; case tokentype::tk_bool: this->on_bool_token(tk, p_psm); - break; + return; case tokentype::tk_semicolon: this->on_semicolon_token(tk, p_psm); - break; + return; // all the not-yet handled cases case tokentype::tk_invalid: @@ -569,12 +569,11 @@ namespace xo { case tokentype::tk_in: case tokentype::tk_end: case tokentype::N: - break; + p_psm->illegal_input_on_token("DDefineSsm::on_token", + tk, + this->get_expect_str()); + return; } - - p_psm->illegal_input_on_token("DDefineSsm::on_token", - tk, - this->get_expect_str()); } void diff --git a/xo-reader2/src/reader2/DExpectSymbolSsm.cpp b/xo-reader2/src/reader2/DExpectSymbolSsm.cpp index cbfb1c91..c10678f2 100644 --- a/xo-reader2/src/reader2/DExpectSymbolSsm.cpp +++ b/xo-reader2/src/reader2/DExpectSymbolSsm.cpp @@ -170,12 +170,12 @@ namespace xo { case tokentype::tk_in: case tokentype::tk_end: case tokentype::N: + p_psm->illegal_input_on_token("DExpectSymbolSsm::on_token", + tk, + this->get_expect_str()); break; } - p_psm->illegal_input_on_token("DExpectSymbolSsm::on_token", - tk, - this->get_expect_str()); } void diff --git a/xo-reader2/src/reader2/DExpectTypeSsm.cpp b/xo-reader2/src/reader2/DExpectTypeSsm.cpp index 2feaee26..d99ff817 100644 --- a/xo-reader2/src/reader2/DExpectTypeSsm.cpp +++ b/xo-reader2/src/reader2/DExpectTypeSsm.cpp @@ -134,12 +134,11 @@ namespace xo { case tokentype::tk_in: case tokentype::tk_end: case tokentype::N: + p_psm->illegal_input_on_token("DExpectTypeSsm::on_token", + tk, + this->get_expect_str()); break; } - - p_psm->illegal_input_on_token("DExpectTypeSsm::on_token", - tk, - this->get_expect_str()); } void diff --git a/xo-reader2/src/reader2/DExprSeqState.cpp b/xo-reader2/src/reader2/DExprSeqState.cpp index 9691d665..d6037908 100644 --- a/xo-reader2/src/reader2/DExprSeqState.cpp +++ b/xo-reader2/src/reader2/DExprSeqState.cpp @@ -114,43 +114,43 @@ namespace xo { switch (tk.tk_type()) { case tokentype::tk_symbol: this->on_symbol_token(tk, p_psm); - break; + return; case tokentype::tk_def: this->on_def_token(tk, p_psm); - break; + return; case tokentype::tk_if: this->on_if_token(tk, p_psm); - break; + return; case tokentype::tk_colon: this->on_colon_token(tk, p_psm); - break; + return; case tokentype::tk_singleassign: this->on_singleassign_token(tk, p_psm); - break; + return; case tokentype::tk_string: this->on_string_token(tk, p_psm); - break; + return; case tokentype::tk_f64: this->on_f64_token(tk, p_psm); - break; + return; case tokentype::tk_i64: this->on_i64_token(tk, p_psm); - break; + return; case tokentype::tk_bool: this->on_bool_token(tk, p_psm); - break; + return; case tokentype::tk_semicolon: this->on_semicolon_token(tk, p_psm); - break; + return; // all the not-yet handled cases case tokentype::tk_invalid: diff --git a/xo-reader2/src/reader2/DProgressSsm.cpp b/xo-reader2/src/reader2/DProgressSsm.cpp index a40b6f59..f501d5fe 100644 --- a/xo-reader2/src/reader2/DProgressSsm.cpp +++ b/xo-reader2/src/reader2/DProgressSsm.cpp @@ -167,43 +167,43 @@ namespace xo { switch (tk.tk_type()) { case tokentype::tk_symbol: this->on_symbol_token(tk, p_psm); - break; + return; case tokentype::tk_def: this->on_def_token(tk, p_psm); - break; + return; case tokentype::tk_if: this->on_if_token(tk, p_psm); - break; + return; case tokentype::tk_colon: this->on_colon_token(tk, p_psm); - break; + return; case tokentype::tk_singleassign: this->on_singleassign_token(tk, p_psm); - break; + return; case tokentype::tk_string: this->on_string_token(tk, p_psm); - break; + return; case tokentype::tk_f64: this->on_f64_token(tk, p_psm); - break; + return; case tokentype::tk_i64: this->on_i64_token(tk, p_psm); - break; + return; case tokentype::tk_bool: this->on_bool_token(tk, p_psm); - break; + return; case tokentype::tk_semicolon: this->on_semicolon_token(tk, p_psm); - break; + return; // all the not-yet handled cases case tokentype::tk_invalid: @@ -224,7 +224,10 @@ namespace xo { case tokentype::tk_yields: case tokentype::tk_plus: case tokentype::tk_minus: + break; case tokentype::tk_star: + this->on_operator_token(tk, p_psm); + return; case tokentype::tk_slash: case tokentype::tk_cmpeq: case tokentype::tk_cmpne: