Add ExprStmt::ExprStmtType WITH_BLOCK and WITHOUT_BLOCK to allow switching
This commit is contained in:
parent
4eaec85303
commit
53ce1d5ac9
|
@ -183,8 +183,14 @@ protected:
|
|||
* expression) */
|
||||
class ExprStmt : public Stmt
|
||||
{
|
||||
// TODO: add any useful virtual functions
|
||||
public:
|
||||
enum ExprStmtType
|
||||
{
|
||||
WITH_BLOCK,
|
||||
WITHOUT_BLOCK
|
||||
};
|
||||
|
||||
protected:
|
||||
Location locus;
|
||||
|
||||
public:
|
||||
|
@ -192,6 +198,8 @@ public:
|
|||
|
||||
bool is_item () const override final { return false; }
|
||||
|
||||
virtual ExprStmtType get_type () const = 0;
|
||||
|
||||
protected:
|
||||
ExprStmt (Location locus) : locus (locus) {}
|
||||
};
|
||||
|
@ -261,6 +269,11 @@ public:
|
|||
return expr;
|
||||
}
|
||||
|
||||
ExprStmtType get_type () const override
|
||||
{
|
||||
return ExprStmtType::WITHOUT_BLOCK;
|
||||
};
|
||||
|
||||
protected:
|
||||
/* Use covariance to implement clone function as returning this object rather
|
||||
* than base */
|
||||
|
@ -328,6 +341,8 @@ public:
|
|||
|
||||
bool is_semicolon_followed () const { return semicolon_followed; }
|
||||
|
||||
ExprStmtType get_type () const override { return ExprStmtType::WITH_BLOCK; };
|
||||
|
||||
protected:
|
||||
/* Use covariance to implement clone function as returning this object rather
|
||||
* than base */
|
||||
|
|
Loading…
Reference in New Issue