Added basics for lexing index expressions
This commit is contained in:
@@ -139,9 +139,17 @@ ParsedStatement *Parser::ParseFunctionDeclaration(IToken *current) {
|
||||
|
||||
ParsedExpression* Parser::ParseExpression(IToken* current){
|
||||
auto expression = this -> ParseBinaryExpression(current, OperatorPrecedence::No);
|
||||
while (this -> Peek() -> GetKind() == TokenKind::OpenParenthesis){
|
||||
expression = this->ParseFunctionCallExpression(expression);
|
||||
//TODO: Function Evaluation
|
||||
auto peekKind = this->Peek()->GetKind();
|
||||
while (peekKind == TokenKind::OpenParenthesis ||
|
||||
peekKind == TokenKind::OpenSquareBracket ||
|
||||
peekKind == TokenKind::PeriodToken){
|
||||
if (peekKind == TokenKind::OpenParenthesis){
|
||||
expression = this->ParseFunctionCallExpression(expression);
|
||||
} else if (peekKind == TokenKind::OpenSquareBracket){
|
||||
//TODO: index expression
|
||||
} else {
|
||||
//TODO: index period expression
|
||||
}
|
||||
}
|
||||
return expression;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user