Lines Matching full:lexer
23 #include "lexer/TSLexer.h"
121 if (Lexer()->GetToken().KeywordType() != lexer::TokenType::KEYW_AS) { in ParsePotentialAsExpression()
125 Lexer()->NextToken(); // eat 'as' in ParsePotentialAsExpression()
138 lexer::SourcePosition startLoc = expr->Start(); in ParsePotentialAsExpression()
140 asExpr->SetRange({startLoc, Lexer()->GetToken().End()}); in ParsePotentialAsExpression()
142 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_AS) { in ParsePotentialAsExpression()
151 switch (Lexer()->GetToken().Type()) { in ParsePatternElementGetReturnNode()
152 case lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET: { in ParsePatternElementGetReturnNode()
157 case lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD: { in ParsePatternElementGetReturnNode()
164 case lexer::TokenType::PUNCTUATOR_LEFT_BRACE: { in ParsePatternElementGetReturnNode()
170 case lexer::TokenType::LITERAL_IDENT: { in ParsePatternElementGetReturnNode()
171 …ir::AnnotatedExpression *returnNode = AllocNode<ir::Identifier>(Lexer()->GetToken().Ident(), Alloc… in ParsePatternElementGetReturnNode()
174 returnNode->SetRange(Lexer()->GetToken().Loc()); in ParsePatternElementGetReturnNode()
177 … {returnNode->AsIdentifier()->Decorators().front()->Start(), Lexer()->GetToken().End()}); in ParsePatternElementGetReturnNode()
180 Lexer()->NextToken(); in ParsePatternElementGetReturnNode()
182 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK) { in ParsePatternElementGetReturnNode()
190 Lexer()->NextToken(); in ParsePatternElementGetReturnNode()
193 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParsePatternElementGetReturnNode()
194 Lexer()->NextToken(); // eat ':' in ParsePatternElementGetReturnNode()
216 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParsePatternElement()
232 Lexer()->NextToken(); in ParsePatternElement()
235 Lexer()->GetToken().Type() == lexer::TokenType::KEYW_YIELD) { in ParsePatternElement()
242 …ir::AstNodeType::ASSIGNMENT_PATTERN, returnNode, rightNode, lexer::TokenType::PUNCTUATOR_SUBSTITUT… in ParsePatternElement()
278 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_THIS) { in ParseFunctionParameter()
279 Lexer()->GetToken().SetTokenType(lexer::TokenType::LITERAL_IDENT); in ParseFunctionParameter()
280 Lexer()->GetToken().SetTokenStr(ERROR_LITERAL); in ParseFunctionParameter()
283 lexer::SourcePosition parameterStart = Lexer()->GetToken().Start(); in ParseFunctionParameter()
290 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParseFunctionParameter()
320 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_REQUIRE && in ParseModuleReference()
321 Lexer()->Lookahead() == lexer::LEX_CHAR_LEFT_PAREN) { in ParseModuleReference()
322 lexer::SourcePosition start = Lexer()->GetToken().Start(); in ParseModuleReference()
323 Lexer()->NextToken(); // eat 'require' in ParseModuleReference()
324 Lexer()->NextToken(); // eat '(' in ParseModuleReference()
326 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_STRING) { in ParseModuleReference()
330 result = AllocNode<ir::StringLiteral>(Lexer()->GetToken().String()); in ParseModuleReference()
331 result->SetRange(Lexer()->GetToken().Loc()); in ParseModuleReference()
332 Lexer()->NextToken(); in ParseModuleReference()
334 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseModuleReference()
339 result->SetRange({start, Lexer()->GetToken().End()}); in ParseModuleReference()
340 Lexer()->NextToken(); // eat ')' in ParseModuleReference()
342 result = AllocNode<ir::Identifier>(Lexer()->GetToken().Ident(), Allocator()); in ParseModuleReference()
343 result->SetRange(Lexer()->GetToken().Loc()); in ParseModuleReference()
344 Lexer()->NextToken(); in ParseModuleReference()
346 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD) { in ParseModuleReference()
356 auto *identRef = AllocNode<ir::Identifier>(Lexer()->GetToken().Ident(), Allocator()); in ParseConstExpression()
357 identRef->SetRange(Lexer()->GetToken().Loc()); in ParseConstExpression()
360 typeReference->SetRange(Lexer()->GetToken().Loc()); in ParseConstExpression()
362 Lexer()->NextToken(); in ParseConstExpression()
364 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_COMMA && in ParseConstExpression()
365 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SEMI_COLON && in ParseConstExpression()
366 Lexer()->GetToken().Type() != lexer::TokenType::EOS && in ParseConstExpression()
367 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_SQUARE_BRACKET && in ParseConstExpression()
368 ((Lexer()->GetToken().Flags() & lexer::TokenFlags::NEW_LINE) == 0)) { in ParseConstExpression()
375 bool TSParser::ParsePotentialNonNullExpression(ir::Expression **returnExpression, lexer::SourcePosi… in ParsePotentialNonNullExpression()
377 if (returnExpression == nullptr || Lexer()->GetToken().NewLine()) { in ParsePotentialNonNullExpression()
382 (*returnExpression)->SetRange({startLoc, Lexer()->GetToken().End()}); in ParsePotentialNonNullExpression()
383 Lexer()->NextToken(); in ParsePotentialNonNullExpression()
404 … const lexer::SourcePosition &startLoc);
407 static ir::ArrowFunctionExpression *CreateCallExpression(TSParser *parser, lexer::Lexer *lexer, in CreateCallExpression() argument
410 const lexer::SourcePosition &startLoc) in CreateCallExpression()
415 if (lexer->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in CreateCallExpression()
416 lexer->NextToken(); // eat ':' in CreateCallExpression()
421 if (lexer->GetToken().Type() == lexer::TokenType::PUNCTUATOR_ARROW) { in CreateCallExpression()
439 … const lexer::SourcePosition &startLoc) in ParsePotentialArrowExpression()
443 switch (Lexer()->GetToken().Type()) { in ParsePotentialArrowExpression()
444 case lexer::TokenType::KEYW_FUNCTION: { in ParsePotentialArrowExpression()
449 case lexer::TokenType::LITERAL_IDENT: { in ParsePotentialArrowExpression()
456 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParsePotentialArrowExpression()
465 case lexer::TokenType::PUNCTUATOR_ARROW: { in ParsePotentialArrowExpression()
471 case lexer::TokenType::PUNCTUATOR_LESS_THAN: { in ParsePotentialArrowExpression()
472 const auto savedPos = Lexer()->Save(); in ParsePotentialArrowExpression()
477 Lexer()->Rewind(savedPos); in ParsePotentialArrowExpression()
481 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParsePotentialArrowExpression()
487 case lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS: { in ParsePotentialArrowExpression()
488 … return ParsePotentialArrowExpressionHelper::CreateCallExpression(this, Lexer(), returnExpression, in ParsePotentialArrowExpression()
503 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseVariableDeclaratorKey()
504 Lexer()->NextToken(); // eat ':' in ParseVariableDeclaratorKey()
516 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK) { in ParseOptionalFunctionParameter()
550 Lexer()->NextToken(); // eat '?' in ParseOptionalFunctionParameter()
553 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseOptionalFunctionParameter()
554 Lexer()->NextToken(); // eat ':' in ParseOptionalFunctionParameter()
559 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_SUBSTITUTION) { in ParseOptionalFunctionParameter()
576 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ValidateArrowFunctionRestParameter()
583 ir::Expression *TSParser::ParseArrowFunctionRestParameter(lexer::SourcePosition start) in ParseArrowFunctionRestParameter()
592 Lexer()->NextToken(); in ParseArrowFunctionRestParameter()
596 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseArrowFunctionRestParameter()
597 Lexer()->NextToken(); // eat ':' in ParseArrowFunctionRestParameter()
601 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseArrowFunctionRestParameter()
608 ir::Expression *TSParser::ParseArrowFunctionNoParameter(lexer::SourcePosition start) in ParseArrowFunctionNoParameter()
610 Lexer()->NextToken(); in ParseArrowFunctionNoParameter()
614 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseArrowFunctionNoParameter()
615 Lexer()->NextToken(); // eat ':' in ParseArrowFunctionNoParameter()
619 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseArrowFunctionNoParameter()
634 ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseCoverParenthesizedExpressionAndArrowParameterList()
635 lexer::SourcePosition start = Lexer()->GetToken().Start(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
636 Lexer()->NextToken(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
639 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_PERIOD_PERIOD_PERIOD) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
643 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
650 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_PARENTHESIS) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
655 expr->SetRange({start, Lexer()->GetToken().End()}); in ParseCoverParenthesizedExpressionAndArrowParameterList()
656 Lexer()->NextToken(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
658 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_COLON) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
659 auto savedPos = Lexer()->Save(); in ParseCoverParenthesizedExpressionAndArrowParameterList()
660 Lexer()->NextToken(); // eat ':' in ParseCoverParenthesizedExpressionAndArrowParameterList()
665 Lexer()->Rewind(savedPos); in ParseCoverParenthesizedExpressionAndArrowParameterList()
669 if (Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_ARROW) { in ParseCoverParenthesizedExpressionAndArrowParameterList()
670 Lexer()->Rewind(savedPos); in ParseCoverParenthesizedExpressionAndArrowParameterList()