mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 13:15:07 +00:00
LibJS: Let's say that Identifier is an Expression for now
This allows us to tighten typing in various other classes.
This commit is contained in:
parent
7de35118a9
commit
ddb5c995c6
1 changed files with 8 additions and 8 deletions
|
@ -189,7 +189,7 @@ enum class BinaryOp {
|
|||
|
||||
class BinaryExpression : public Expression {
|
||||
public:
|
||||
BinaryExpression(BinaryOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<ASTNode> rhs)
|
||||
BinaryExpression(BinaryOp op, NonnullOwnPtr<Expression> lhs, NonnullOwnPtr<Expression> rhs)
|
||||
: m_op(op)
|
||||
, m_lhs(move(lhs))
|
||||
, m_rhs(move(rhs))
|
||||
|
@ -203,8 +203,8 @@ private:
|
|||
virtual const char* class_name() const override { return "BinaryExpression"; }
|
||||
|
||||
BinaryOp m_op;
|
||||
NonnullOwnPtr<ASTNode> m_lhs;
|
||||
NonnullOwnPtr<ASTNode> m_rhs;
|
||||
NonnullOwnPtr<Expression> m_lhs;
|
||||
NonnullOwnPtr<Expression> m_rhs;
|
||||
};
|
||||
|
||||
enum class LogicalOp {
|
||||
|
@ -271,7 +271,7 @@ private:
|
|||
Value m_value;
|
||||
};
|
||||
|
||||
class Identifier final : public ASTNode {
|
||||
class Identifier final : public Expression {
|
||||
public:
|
||||
explicit Identifier(String string)
|
||||
: m_string(move(string))
|
||||
|
@ -314,7 +314,7 @@ enum class AssignmentOp {
|
|||
|
||||
class AssignmentExpression : public Expression {
|
||||
public:
|
||||
AssignmentExpression(AssignmentOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<ASTNode> rhs)
|
||||
AssignmentExpression(AssignmentOp op, NonnullOwnPtr<ASTNode> lhs, NonnullOwnPtr<Expression> rhs)
|
||||
: m_op(op)
|
||||
, m_lhs(move(lhs))
|
||||
, m_rhs(move(rhs))
|
||||
|
@ -329,12 +329,12 @@ private:
|
|||
|
||||
AssignmentOp m_op;
|
||||
NonnullOwnPtr<ASTNode> m_lhs;
|
||||
NonnullOwnPtr<ASTNode> m_rhs;
|
||||
NonnullOwnPtr<Expression> m_rhs;
|
||||
};
|
||||
|
||||
class VariableDeclaration : public ASTNode {
|
||||
public:
|
||||
VariableDeclaration(NonnullOwnPtr<Identifier> name, OwnPtr<ASTNode> initializer)
|
||||
VariableDeclaration(NonnullOwnPtr<Identifier> name, OwnPtr<Expression> initializer)
|
||||
: m_name(move(name))
|
||||
, m_initializer(move(initializer))
|
||||
{
|
||||
|
@ -349,7 +349,7 @@ private:
|
|||
virtual const char* class_name() const override { return "VariableDeclaration"; }
|
||||
|
||||
NonnullOwnPtr<Identifier> m_name;
|
||||
OwnPtr<ASTNode> m_initializer;
|
||||
OwnPtr<Expression> m_initializer;
|
||||
};
|
||||
|
||||
class ObjectExpression : public Expression {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue