xo-reader: simplify paren handling logic

This commit is contained in:
Roland Conybeare 2024-08-09 20:40:37 -04:00
commit 538c9d90e5
8 changed files with 22 additions and 34 deletions

View file

@ -43,13 +43,13 @@ namespace xo {
defexprstatetype defxs_type() const { return defxs_type_; }
#ifdef OBSOLETE
virtual bool admits_definition() const override;
bool admits_leftparen() const;
#endif
virtual bool admits_symbol() const override;
virtual bool admits_colon() const override;
virtual bool admits_semicolon() const override;
virtual bool admits_singleassign() const override;
virtual bool admits_leftparen() const override;
virtual bool admits_rightparen() const override;
// virtual void on_f64(..) override
@ -69,9 +69,11 @@ namespace xo {
rp<Expression> * /*p_emit_expr*/) override;
virtual void on_singleassign_token(const token_type & tk,
exprstatestack * p_stack) override;
#ifdef OBSOLETE
virtual void on_leftparen_token(const token_type & tk,
exprstatestack * p_stack,
rp<Expression> * /*p_emit_expr*/) override;
#endif
virtual void on_rightparen_token(const token_type & tk,
exprstatestack * p_stack,
rp<Expression> * /*p_emit_expr*/) override;

View file

@ -87,8 +87,10 @@ namespace xo {
virtual bool admits_semicolon() const;
/** true iff this parsing state admits a singleassign '=' as next token **/
virtual bool admits_singleassign() const;
#ifdef OBSOLETE
/** true iff this parsing state admits a leftparen '(' as next token **/
virtual bool admits_leftparen() const;
#endif
/** truee iff this parsing state admits a rightparen ')' as next token **/
virtual bool admits_rightparen() const;

View file

@ -37,7 +37,9 @@ namespace xo {
virtual bool admits_colon() const override;
virtual bool admits_semicolon() const override;
virtual bool admits_singleassign() const override;
#ifdef OBSOLETE
virtual bool admits_leftparen() const override;
#endif
virtual bool admits_rightparen() const override;
virtual void on_expr(ref::brw<Expression> expr,

View file

@ -28,7 +28,9 @@ namespace xo {
virtual bool admits_colon() const override;
virtual bool admits_semicolon() const override;
virtual bool admits_singleassign() const override;
#ifdef OBSOLETE
virtual bool admits_leftparen() const override;
#endif
virtual bool admits_rightparen() const override;
virtual void on_expr(ref::brw<Expression> expr,