mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 21:47:46 +00:00
LibJS: Parse "if" statements
This patch implements basic parsing of "if" statements. We don't yet support parsing "else", so I added a FIXME about that.
This commit is contained in:
parent
55c845713a
commit
7c48c3c8e1
4 changed files with 26 additions and 7 deletions
|
@ -211,7 +211,7 @@ private:
|
|||
|
||||
class IfStatement : public Statement {
|
||||
public:
|
||||
IfStatement(NonnullRefPtr<Expression> predicate, NonnullRefPtr<ScopeNode> consequent, NonnullRefPtr<ScopeNode> alternate)
|
||||
IfStatement(NonnullRefPtr<Expression> predicate, NonnullRefPtr<ScopeNode> consequent, RefPtr<ScopeNode> alternate)
|
||||
: m_predicate(move(predicate))
|
||||
, m_consequent(move(consequent))
|
||||
, m_alternate(move(alternate))
|
||||
|
@ -220,7 +220,7 @@ public:
|
|||
|
||||
const Expression& predicate() const { return *m_predicate; }
|
||||
const ScopeNode& consequent() const { return *m_consequent; }
|
||||
const ScopeNode& alternate() const { return *m_alternate; }
|
||||
const ScopeNode* alternate() const { return m_alternate; }
|
||||
|
||||
virtual Value execute(Interpreter&) const override;
|
||||
virtual void dump(int indent) const override;
|
||||
|
@ -230,7 +230,7 @@ private:
|
|||
|
||||
NonnullRefPtr<Expression> m_predicate;
|
||||
NonnullRefPtr<ScopeNode> m_consequent;
|
||||
NonnullRefPtr<ScopeNode> m_alternate;
|
||||
RefPtr<ScopeNode> m_alternate;
|
||||
};
|
||||
|
||||
class WhileStatement : public Statement {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue