xo-reader: refactor: splitoff paren handline -> paren_xs

This commit is contained in:
Roland Conybeare 2024-08-09 11:55:22 -04:00
commit c1ab574a73
4 changed files with 108 additions and 140 deletions

View file

@ -20,10 +20,8 @@ namespace xo {
defexpr,
/* lparen_0: look for expression; capture + advance to lparen_1 */
lparen_0,
/* lparen_1: expect rightparen */
lparen_1,
/* handle parenthesized expression */
parenexpr,
expect_rhs_expression,
expect_symbol,
@ -45,17 +43,6 @@ namespace xo {
class exprstatestack;
#ifdef NOT_YET
class exprstateaux {
public:
};
class lparen_xsa : public exprstateaux {
public:
private:
};
#endif
class define_xs;
/** state associated with a partially-parsed expression.
@ -92,9 +79,11 @@ namespace xo {
return std::make_unique<exprstate>(exprstate(exprstatetype::expr_progress, expr));
}
#endif
#ifdef RELOCATED
static std::unique_ptr<exprstate> lparen_0() {
return std::make_unique<exprstate>(exprstate(exprstatetype::lparen_0, nullptr));
}
#endif
exprstatetype exs_type() const { return exs_type_; }

View file

@ -24,12 +24,12 @@ namespace xo {
**/
class paren_xs : public exprstate {
public:
//paren_xs(rp<Expression> valex);
paren_xs();
virtual ~paren_xs() = default;
static const paren_xs * from(const exprstate * x) { return dynamic_cast<const paren_xs *>(x); }
//static std::unique_ptr<paren_xs> make();
static std::unique_ptr<paren_xs> lparen_0();
virtual bool admits_definition() const override;
virtual bool admits_symbol() const override;
@ -71,7 +71,6 @@ namespace xo {
virtual void print(std::ostream & os) const override;
private:
#ifdef NOT_YET
/**
* ( foo ... )
* ^
@ -79,7 +78,6 @@ namespace xo {
* lparen_0
**/
parenexprstatetype parenxs_type_;
#endif
};
} /*namespace scm*/
} /*namespace xo*/