xo-reader: refactor: splitoff paren handline -> paren_xs
This commit is contained in:
parent
67e76b5d8c
commit
c1ab574a73
4 changed files with 108 additions and 140 deletions
|
|
@ -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_; }
|
||||
|
||||
|
|
|
|||
|
|
@ -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*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue