xo-reader: refactor: mv exprstate.cvt_expr -> define_xs
This commit is contained in:
parent
fccff55001
commit
cbd411bbf8
4 changed files with 20 additions and 15 deletions
|
|
@ -27,6 +27,9 @@ namespace xo {
|
|||
* @brief state to provide parsing of a define-expression
|
||||
**/
|
||||
class define_xs : public exprstate {
|
||||
public:
|
||||
using ConvertExprAccess = xo::ast::ConvertExprAccess;
|
||||
|
||||
public:
|
||||
define_xs(rp<DefineExprAccess> def_expr);
|
||||
virtual ~define_xs() = default;
|
||||
|
|
@ -66,6 +69,8 @@ namespace xo {
|
|||
exprstatestack * p_stack,
|
||||
rp<Expression> * /*p_emit_expr*/) override;
|
||||
|
||||
virtual void print(std::ostream & os) const override;
|
||||
|
||||
private:
|
||||
/**
|
||||
* def foo : f64 = 1 ;
|
||||
|
|
@ -88,6 +93,10 @@ namespace xo {
|
|||
*
|
||||
**/
|
||||
defexprstatetype defxs_type_;
|
||||
/** scafford a convert-expression here.
|
||||
* May be nested within a def_expr
|
||||
**/
|
||||
rp<ConvertExprAccess> cvt_expr_;
|
||||
};
|
||||
} /*namespace scm*/
|
||||
} /*namespace xo*/
|
||||
|
|
|
|||
|
|
@ -21,14 +21,6 @@ namespace xo {
|
|||
expect_toplevel_expression_sequence,
|
||||
|
||||
defexpr,
|
||||
#ifdef OBSOLETE
|
||||
def_0,
|
||||
def_1,
|
||||
def_2,
|
||||
def_3,
|
||||
def_4,
|
||||
def_5,
|
||||
#endif
|
||||
|
||||
/* lparen_0: look for expression; capture + advance to lparen_1 */
|
||||
lparen_0,
|
||||
|
|
@ -74,7 +66,6 @@ namespace xo {
|
|||
public:
|
||||
using Expression = xo::ast::Expression;
|
||||
using DefineExprAccess = xo::ast::DefineExprAccess;
|
||||
using ConvertExprAccess = xo::ast::ConvertExprAccess;
|
||||
using exprtype = xo::ast::exprtype;
|
||||
using token_type = token<char>;
|
||||
using TypeDescr = xo::reflect::TypeDescr;
|
||||
|
|
@ -173,10 +164,6 @@ namespace xo {
|
|||
rp<Expression> gen_expr_;
|
||||
/** scaffold a define-expression here **/
|
||||
rp<DefineExprAccess> def_expr_;
|
||||
/** scafford a convert-expression here.
|
||||
* May be nested within a def_expr
|
||||
**/
|
||||
rp<ConvertExprAccess> cvt_expr_;
|
||||
}; /*exprstate*/
|
||||
|
||||
inline std::ostream &
|
||||
|
|
|
|||
|
|
@ -462,6 +462,17 @@ namespace xo {
|
|||
|
||||
assert(false);
|
||||
}
|
||||
|
||||
void
|
||||
define_xs::print(std::ostream & os) const {
|
||||
os << "<define_xs"
|
||||
<< xtag("type", exs_type_);
|
||||
if (def_expr_)
|
||||
os << xtag("def_expr", def_expr_);
|
||||
if (cvt_expr_)
|
||||
os << xtag("cvt_expr", cvt_expr_);
|
||||
os << ">";
|
||||
}
|
||||
} /*namespace scm*/
|
||||
} /*namespace xo*/
|
||||
|
||||
|
|
|
|||
|
|
@ -930,8 +930,6 @@ namespace xo {
|
|||
<< xtag("type", exs_type_);
|
||||
if (def_expr_)
|
||||
os << xtag("def_expr", def_expr_);
|
||||
if (cvt_expr_)
|
||||
os << xtag("cvt_expr", cvt_expr_);
|
||||
os << ">";
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue