mirror of
https://github.com/RGBCube/serenity
synced 2025-05-26 01:35:08 +00:00
LibJS: Implement basic MemberExpression parsing
At last we can parse "hello friends".length :^)
This commit is contained in:
parent
ed100bc6f4
commit
f405cb6a77
2 changed files with 6 additions and 4 deletions
|
@ -1,3 +1 @@
|
||||||
function foo() {
|
"hello friends".length
|
||||||
"hello friends".length
|
|
||||||
}
|
|
||||||
|
|
|
@ -132,6 +132,9 @@ NonnullOwnPtr<Expression> Parser::parse_secondary_expression(NonnullOwnPtr<Expre
|
||||||
case TokenType::Equals:
|
case TokenType::Equals:
|
||||||
consume();
|
consume();
|
||||||
return make<AssignmentExpression>(AssignmentOp::Assign, move(lhs), parse_expression());
|
return make<AssignmentExpression>(AssignmentOp::Assign, move(lhs), parse_expression());
|
||||||
|
case TokenType::Period:
|
||||||
|
consume();
|
||||||
|
return make<MemberExpression>(move(lhs), parse_expression());
|
||||||
default:
|
default:
|
||||||
m_has_errors = true;
|
m_has_errors = true;
|
||||||
expected("secondary expression (missing switch case)");
|
expected("secondary expression (missing switch case)");
|
||||||
|
@ -239,7 +242,8 @@ bool Parser::match_secondary_expression() const
|
||||||
|| type == TokenType::Asterisk
|
|| type == TokenType::Asterisk
|
||||||
|| type == TokenType::Slash
|
|| type == TokenType::Slash
|
||||||
|| type == TokenType::Equals
|
|| type == TokenType::Equals
|
||||||
|| type == TokenType::ParenOpen;
|
|| type == TokenType::ParenOpen
|
||||||
|
|| type == TokenType::Period;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Parser::match_statement() const
|
bool Parser::match_statement() const
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue