• Home
  • Raw
  • Download

Lines Matching full:lexer

28 #include "lexer/lexer.h"
29 #include "lexer/ETSLexer.h"
104 static bool IsClassModifier(lexer::TokenType type) in IsClassModifier()
106 return type == lexer::TokenType::KEYW_STATIC || type == lexer::TokenType::KEYW_ABSTRACT || in IsClassModifier()
107 type == lexer::TokenType::KEYW_FINAL; in IsClassModifier()
114 while (IsClassModifier(Lexer()->GetToken().KeywordType())) { in ParseClassModifiers()
117 lexer::TokenFlags tokenFlags = Lexer()->GetToken().Flags(); in ParseClassModifiers()
118 if ((tokenFlags & lexer::TokenFlags::HAS_ESCAPE) != 0) { in ParseClassModifiers()
119 LogError(diagnostic::KEYWORD_CONTAINS_ESCAPED_CHARS); // Lexer will do it. in ParseClassModifiers()
122 switch (Lexer()->GetToken().KeywordType()) { in ParseClassModifiers()
123 case lexer::TokenType::KEYW_STATIC: { in ParseClassModifiers()
127 case lexer::TokenType::KEYW_FINAL: { in ParseClassModifiers()
131 case lexer::TokenType::KEYW_ABSTRACT: { in ParseClassModifiers()
144 Lexer()->NextToken(); in ParseClassModifiers()
161 if (Lexer()->GetToken().Type() != lexer::TokenType::KEYW_EXTENDS) { in ParseSuperClassReference()
164 Lexer()->NextToken(); // eat "extends" in ParseSuperClassReference()
179 static bool IsClassMemberAccessModifier(lexer::TokenType type) in IsClassMemberAccessModifier()
181 return type == lexer::TokenType::KEYW_PUBLIC || type == lexer::TokenType::KEYW_PRIVATE || in IsClassMemberAccessModifier()
182 type == lexer::TokenType::KEYW_PROTECTED || type == lexer::TokenType::KEYW_INTERNAL; in IsClassMemberAccessModifier()
185 void ETSParser::ReportAccessModifierError(const lexer::Token &token) in ReportAccessModifierError()
188 if (InAmbientContext() && keywordType != lexer::TokenType::KEYW_PUBLIC && in ReportAccessModifierError()
189 keywordType != lexer::TokenType::KEYW_PROTECTED) { in ReportAccessModifierError()
194 static std::tuple<ir::ModifierFlags, bool, bool> ParseAccessFlagFromToken(const lexer::Token &token) in ParseAccessFlagFromToken()
198 case lexer::TokenType::KEYW_PUBLIC: { in ParseAccessFlagFromToken()
202 case lexer::TokenType::KEYW_PRIVATE: { in ParseAccessFlagFromToken()
206 case lexer::TokenType::KEYW_PROTECTED: { in ParseAccessFlagFromToken()
210 case lexer::TokenType::KEYW_INTERNAL: { in ParseAccessFlagFromToken()
214 case lexer::TokenType::EOS: { // process invalid tokenType in ParseAccessFlagFromToken()
226 if (!IsClassMemberAccessModifier(Lexer()->GetToken().Type())) { in ParseClassMemberAccessModifiers()
230 char32_t nextCp = Lexer()->Lookahead(); in ParseClassMemberAccessModifiers()
231 …if (nextCp == lexer::LEX_CHAR_EQUALS || nextCp == lexer::LEX_CHAR_COLON || nextCp == lexer::LEX_CH… in ParseClassMemberAccessModifiers()
235 lexer::TokenFlags tokenFlags = Lexer()->GetToken().Flags(); in ParseClassMemberAccessModifiers()
236 if ((tokenFlags & lexer::TokenFlags::HAS_ESCAPE) != 0) { in ParseClassMemberAccessModifiers()
237 LogError(diagnostic::KEYWORD_CONTAINS_ESCAPED_CHARS); // Lexer will do it. in ParseClassMemberAccessModifiers()
243 const auto token = Lexer()->GetToken(); in ParseClassMemberAccessModifiers()
250 if (token.KeywordType() == lexer::TokenType::KEYW_INTERNAL) { in ParseClassMemberAccessModifiers()
251 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); in ParseClassMemberAccessModifiers()
252 if (Lexer()->GetToken().KeywordType() != lexer::TokenType::KEYW_PROTECTED) { in ParseClassMemberAccessModifiers()
264 LogError(diagnostic::LOCAL_CLASS_ACCESS_MOD, {}, Lexer()->GetToken().Start()); in ParseClassMemberAccessModifiers()
267 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); in ParseClassMemberAccessModifiers()
271 static bool IsClassFieldModifier(lexer::TokenType type) in IsClassFieldModifier()
273 return type == lexer::TokenType::KEYW_STATIC || type == lexer::TokenType::KEYW_READONLY; in IsClassFieldModifier()
280 while (IsClassFieldModifier(Lexer()->GetToken().KeywordType())) { in ParseClassFieldModifiers()
281 char32_t nextCp = Lexer()->Lookahead(); in ParseClassFieldModifiers()
282 if (!(nextCp != lexer::LEX_CHAR_EQUALS && nextCp != lexer::LEX_CHAR_COLON)) { in ParseClassFieldModifiers()
288 lexer::TokenFlags tokenFlags = Lexer()->GetToken().Flags(); in ParseClassFieldModifiers()
289 if ((tokenFlags & lexer::TokenFlags::HAS_ESCAPE) != 0) { in ParseClassFieldModifiers()
290 LogError(diagnostic::KEYWORD_CONTAINS_ESCAPED_CHARS); // Lexer will do it. in ParseClassFieldModifiers()
293 switch (Lexer()->GetToken().KeywordType()) { in ParseClassFieldModifiers()
294 case lexer::TokenType::KEYW_STATIC: { in ParseClassFieldModifiers()
298 case lexer::TokenType::KEYW_READONLY: { in ParseClassFieldModifiers()
311 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); in ParseClassFieldModifiers()
318 bool ETSParser::IsClassMethodModifier(lexer::TokenType type) noexcept in IsClassMethodModifier()
321 case lexer::TokenType::KEYW_STATIC: in IsClassMethodModifier()
322 case lexer::TokenType::KEYW_FINAL: in IsClassMethodModifier()
323 case lexer::TokenType::KEYW_NATIVE: in IsClassMethodModifier()
324 case lexer::TokenType::KEYW_ASYNC: in IsClassMethodModifier()
325 case lexer::TokenType::KEYW_OVERRIDE: in IsClassMethodModifier()
326 case lexer::TokenType::KEYW_ABSTRACT: { in IsClassMethodModifier()
340 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in HandleAmbientDeclaration()
346 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET) { in HandleAmbientDeclaration()
347 const auto startPosAmbient = Lexer()->GetToken().Start(); in HandleAmbientDeclaration()
348 auto const savePos = Lexer()->Save(); in HandleAmbientDeclaration()
349 Lexer()->NextToken(); in HandleAmbientDeclaration()
350 if (Lexer()->GetToken().Ident().Is(compiler::Signatures::SYMBOL)) { in HandleAmbientDeclaration()
351 Lexer()->Rewind(savePos); in HandleAmbientDeclaration()
354 LogUnexpectedToken(Lexer()->GetToken()); in HandleAmbientDeclaration()
355 const auto &rangeToken = Lexer()->GetToken().Loc(); in HandleAmbientDeclaration()
356 Lexer()->NextToken(); in HandleAmbientDeclaration()
360 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS || in HandleAmbientDeclaration()
361 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) { in HandleAmbientDeclaration()
376 switch (Lexer()->GetToken().KeywordType()) { in ParseClassMethodModifierFlag()
377 case lexer::TokenType::KEYW_STATIC: { in ParseClassMethodModifierFlag()
381 case lexer::TokenType::KEYW_FINAL: { in ParseClassMethodModifierFlag()
385 case lexer::TokenType::KEYW_NATIVE: { in ParseClassMethodModifierFlag()
389 case lexer::TokenType::KEYW_ASYNC: { in ParseClassMethodModifierFlag()
393 case lexer::TokenType::KEYW_OVERRIDE: { in ParseClassMethodModifierFlag()
397 case lexer::TokenType::KEYW_ABSTRACT: { in ParseClassMethodModifierFlag()
401 case lexer::TokenType::KEYW_DECLARE: { in ParseClassMethodModifierFlag()
417 while (IsClassMethodModifier(Lexer()->GetToken().KeywordType())) { in ParseClassMethodModifiers()
418 char32_t nextCp = Lexer()->Lookahead(); in ParseClassMethodModifiers()
419 if (!(nextCp != lexer::LEX_CHAR_LEFT_PAREN)) { in ParseClassMethodModifiers()
425 lexer::TokenFlags tokenFlags = Lexer()->GetToken().Flags(); in ParseClassMethodModifiers()
426 if ((tokenFlags & lexer::TokenFlags::HAS_ESCAPE) != 0) { in ParseClassMethodModifiers()
427 LogError(diagnostic::KEYWORD_CONTAINS_ESCAPED_CHARS); // Lexer will do it. in ParseClassMethodModifiers()
435 Lexer()->NextToken(lexer::NextTokenFlags::KEYWORD_TO_IDENT); in ParseClassMethodModifiers()
484 lexer::SourcePosition pos) in ValidateFieldModifiers()
512 lexer::SourcePosition endLoc = fieldName->End(); in ParseClassFieldDefinition()
517 auto start = Lexer()->GetToken().Start(); in ParseClassFieldDefinition()
518 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK)) { in ParseClassFieldDefinition()
521 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_QUESTION_MARK)) { in ParseClassFieldDefinition()
524 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK)) { in ParseClassFieldDefinition()
527 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_COLON)) { in ParseClassFieldDefinition()
540 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_SUBSTITUTION)) { in ParseClassFieldDefinition()
599 … ir::Expression *propName, lexer::SourcePosition *propEnd) in ParseClassMethod()
639 char32_t nextCp = Lexer()->Lookahead(); in UpdateMemberModifiers()
640 …if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_STATIC && nextCp != lexer::LEX_CHA… in UpdateMemberModifiers()
641 nextCp != lexer::LEX_CHAR_COLON && nextCp != lexer::LEX_CHAR_LEFT_PAREN && in UpdateMemberModifiers()
642 nextCp != lexer::LEX_CHAR_LESS_THAN) { in UpdateMemberModifiers()
643 Lexer()->NextToken(); in UpdateMemberModifiers()
650 if (IsClassFieldModifier(Lexer()->GetToken().KeywordType())) { in UpdateMemberModifiers()
652 } else if (IsClassMethodModifier(Lexer()->GetToken().Type())) { in UpdateMemberModifiers()
671 …std::tuple<bool, bool, bool> elementFlag, std::tuple<lexer::SourcePosition, lexer::LexerPosition> … in ParseClassElementHelper()
676 auto delcStartLoc = Lexer()->GetToken().Start(); in ParseClassElementHelper()
678 switch (Lexer()->GetToken().Type()) { in ParseClassElementHelper()
679 case lexer::TokenType::KEYW_INTERFACE: in ParseClassElementHelper()
680 case lexer::TokenType::KEYW_CLASS: in ParseClassElementHelper()
681 case lexer::TokenType::KEYW_ENUM: in ParseClassElementHelper()
684 case lexer::TokenType::LITERAL_IDENT: { in ParseClassElementHelper()
685 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_STRUCT) { in ParseClassElementHelper()
694 case lexer::TokenType::KEYW_CONSTRUCTOR: in ParseClassElementHelper()
697 case lexer::TokenType::KEYW_PUBLIC: in ParseClassElementHelper()
698 case lexer::TokenType::KEYW_PRIVATE: in ParseClassElementHelper()
699 case lexer::TokenType::KEYW_PROTECTED: { in ParseClassElementHelper()
701 Lexer()->NextToken(); in ParseClassElementHelper()
716 if (Lexer()->TryEatTokenType(lexer::TokenType::JS_DOC_START)) { in ParseClassElement()
718 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE || in ParseClassElement()
719 Lexer()->GetToken().Type() == lexer::TokenType::EOS) { in ParseClassElement()
724 auto startLoc = Lexer()->GetToken().Start(); in ParseClassElement()
727 if (Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_AT)) { in ParseClassElement()
732 auto savedPos = Lexer()->Save(); // NOLINT(clang-analyzer-deadcode.DeadStores) in ParseClassElement()
734 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_STATIC && in ParseClassElement()
735 Lexer()->Lookahead() == lexer::LEX_CHAR_LEFT_BRACE) { in ParseClassElement()
740 auto delcStartLoc = Lexer()->GetToken().Start(); in ParseClassElement()
750 lexer::SourcePosition pos) in ApplyAnnotationsToClassElement()
817 …desc.methodKind = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_GET ? ir::MethodDefi… in ParseClassGetterSetterMethod()
819 desc.propStart = Lexer()->GetToken().Start(); in ParseClassGetterSetterMethod()
820 Lexer()->NextToken(); // eat get/set in ParseClassGetterSetterMethod()
833 lexer::SourcePosition propEnd = methodName->End(); in ParseClassGetterSetterMethod()
852 …auto methodKind = Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_GET ? ir::MethodDefi… in ParseInterfaceGetterSetterMethod()
854 Lexer()->NextToken(); // eat get/set in ParseInterfaceGetterSetterMethod()
855 ExpectToken(lexer::TokenType::LITERAL_IDENT, false); in ParseInterfaceGetterSetterMethod()
865 method->SetRange({Lexer()->GetToken().Start(), method->Id()->End()}); in ParseInterfaceGetterSetterMethod()
891 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) { in ParseInterfaceBody()
898 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_EXTENDS) { in ParseInterfaceBody()
902 lexer::SourcePosition bodyStart = Lexer()->GetToken().Start(); in ParseInterfaceBody()
916 body->SetRange({bodyStart, Lexer()->GetToken().End()}); in ParseInterfaceBody()
924 Lexer()->NextToken(); in ParseInterfaceBody()
932 lexer::SourcePosition interfaceStart = Lexer()->GetToken().Start(); in ParseInterfaceDeclaration()
933 Lexer()->NextToken(); // eat interface keyword in ParseInterfaceDeclaration()
940 declNode->SetRange({interfaceStart, Lexer()->GetToken().End()}); in ParseInterfaceDeclaration()
947 Lexer()->NextToken(); in ParseClassDefinition()
951 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LESS_THAN) { in ParseClassDefinition()
971 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_IMPLEMENTS) { in ParseClassDefinition()
972 Lexer()->NextToken(); in ParseClassDefinition()
978 lexer::SourceRange bodyRange; in ParseClassDefinition()
981 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseClassDefinition()
983 bodyRange = lexer::SourceRange {Lexer()->GetToken().Start(), Lexer()->GetToken().Start()}; in ParseClassDefinition()
986 ExpectToken(lexer::TokenType::PUNCTUATOR_LEFT_BRACE, false); in ParseClassDefinition()
1006 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT || in ParseInterfaceMethodModifiers()
1007 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET || in ParseInterfaceMethodModifiers()
1008 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS) { in ParseInterfaceMethodModifiers()
1013 if (Lexer()->GetToken().Type() == lexer::TokenType::KEYW_PRIVATE) { in ParseInterfaceMethodModifiers()
1014 LogError(diagnostic::LOCAL_CLASS_ACCESS_MOD, {}, Lexer()->GetToken().Start()); in ParseInterfaceMethodModifiers()
1017 if (Lexer()->GetToken().KeywordType() != lexer::TokenType::KEYW_PRIVATE) { in ParseInterfaceMethodModifiers()
1021 Lexer()->NextToken(); in ParseInterfaceMethodModifiers()
1027 if (!Lexer()->TryEatTokenType(lexer::TokenType::PUNCTUATOR_COLON) && in ParseInterfaceTypeAnnotation()
1028 Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT && in ParseInterfaceTypeAnnotation()
1029 Lexer()->GetToken().Type() != lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseInterfaceTypeAnnotation()
1031 Lexer()->GetToken().SetTokenType(lexer::TokenType::PUNCTUATOR_COLON); in ParseInterfaceTypeAnnotation()
1032 Lexer()->NextToken(); in ParseInterfaceTypeAnnotation()
1045 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_EXCLAMATION_MARK) { in ParseInterfaceModifiers()
1046 Lexer()->NextToken(); in ParseInterfaceModifiers()
1052 auto start = Lexer()->GetToken().Start(); in ParseInterfaceModifiers()
1055 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_QUESTION_MARK) { in ParseInterfaceModifiers()
1056 Lexer()->NextToken(); in ParseInterfaceModifiers()
1069 ES2PANDA_ASSERT(Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT || in ParseInterfaceField()
1070Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET || in ParseInterfaceField()
1071 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS); in ParseInterfaceField()
1073 auto startLoc = Lexer()->GetToken().Start(); in ParseInterfaceField()
1075 auto *name = AllocNode<ir::Identifier>(Lexer()->GetToken().Ident(), Allocator()); in ParseInterfaceField()
1078 Lexer()->NextToken(); in ParseInterfaceField()
1079 return AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParseInterfaceField()
1097 name->SetRange(Lexer()->GetToken().Loc()); in ParseInterfaceField()
1098 Lexer()->NextToken(); in ParseInterfaceField()
1103 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_EQUAL && in ParseInterfaceField()
1104 Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseInterfaceField()
1106 Lexer()->NextToken(); // Error processing: eat '='. in ParseInterfaceField()
1114 field->SetEnd(Lexer()->GetToken().End()); in ParseInterfaceField()
1119 static lexer::SourcePosition GetEndLoc(ir::BlockStatement *body, ir::ScriptFunction *func, lexer::L… in GetEndLoc() argument
1133 return lexer->GetToken().End(); in GetEndLoc()
1140 if (Lexer()->GetToken().Type() != lexer::TokenType::LITERAL_IDENT) { in ParseInterfaceMethod()
1142 {"method name", lexer::TokenToString(Lexer()->GetToken().Type())}); in ParseInterfaceMethod()
1143 name = AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParseInterfaceMethod()
1145 name = AllocNode<ir::Identifier>(Lexer()->GetToken().Ident(), Allocator()); in ParseInterfaceMethod()
1147 name->SetRange(Lexer()->GetToken().Loc()); in ParseInterfaceMethod()
1148 Lexer()->NextToken(); in ParseInterfaceMethod()
1152 lexer::SourcePosition startLoc = Lexer()->GetToken().Start(); in ParseInterfaceMethod()
1163 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_LEFT_BRACE) { in ParseInterfaceMethod()
1187 func->SetRange({startLoc, GetEndLoc(body, func, Lexer())}); in ParseInterfaceMethod()
1208 Lexer()->NextToken(); // eat '/**' in ParseJsDocInfoInInterfaceBody()
1211 if (Lexer()->GetToken().Type() == lexer::TokenType::EOS || in ParseJsDocInfoInInterfaceBody()
1212 Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_RIGHT_BRACE) { in ParseJsDocInfoInInterfaceBody()
1225 Lexer()->NextToken(); // eat '@' in ParseAnnotationsInInterfaceBody()
1228 auto savePos = Lexer()->GetToken().Start(); in ParseAnnotationsInInterfaceBody()
1236 bool ETSParser::IsFieldStartToken(lexer::TokenType tokenType) in IsFieldStartToken()
1238 return tokenType == lexer::TokenType::LITERAL_IDENT || in IsFieldStartToken()
1239 tokenType == lexer::TokenType::PUNCTUATOR_LEFT_SQUARE_BRACKET || in IsFieldStartToken()
1240 tokenType == lexer::TokenType::PUNCTUATOR_LEFT_PARENTHESIS; in IsFieldStartToken()
1245 if (Lexer()->GetToken().Type() == lexer::TokenType::JS_DOC_START) { in ParseTypeLiteralOrInterfaceMember()
1249 if (Lexer()->GetToken().Type() == lexer::TokenType::PUNCTUATOR_AT) { in ParseTypeLiteralOrInterfaceMember()
1253 …if (Lexer()->Lookahead() != lexer::LEX_CHAR_LEFT_PAREN && Lexer()->Lookahead() != lexer::LEX_CHAR_… in ParseTypeLiteralOrInterfaceMember()
1254 (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_GET || in ParseTypeLiteralOrInterfaceMember()
1255 Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_SET)) { in ParseTypeLiteralOrInterfaceMember()
1260 char32_t nextCp = Lexer()->Lookahead(); in ParseTypeLiteralOrInterfaceMember()
1261 auto startLoc = Lexer()->GetToken().Start(); in ParseTypeLiteralOrInterfaceMember()
1262 auto readonlyTok = Lexer()->TryEatTokenKeyword(lexer::TokenType::KEYW_READONLY); in ParseTypeLiteralOrInterfaceMember()
1265 if (nextCp == lexer::LEX_CHAR_LEFT_PAREN || nextCp == lexer::LEX_CHAR_LESS_THAN) { in ParseTypeLiteralOrInterfaceMember()
1275 auto tok = Lexer()->GetToken().Type(); in ParseTypeLiteralOrInterfaceMember()
1278 return AllocBrokenExpression(Lexer()->GetToken().Loc()); in ParseTypeLiteralOrInterfaceMember()
1325 void ETSParser::CheckPredefinedMethods(ir::ScriptFunction const *function, const lexer::SourcePosit… in CheckPredefinedMethods()
1374 … ir::ModifierFlags flags, const lexer::SourcePosition &startLoc) in CreateImplicitConstructor()
1396 std::pair<ir::ModifierFlags, lexer::SourcePosition> ETSParser::ParseMemberModifiers() in ParseMemberModifiers()
1400 if (Lexer()->TryEatTokenType(lexer::TokenType::KEYW_EXPORT)) { in ParseMemberModifiers()
1401 const auto savedPos = Lexer()->Save(); in ParseMemberModifiers()
1402 if (Lexer()->TryEatTokenKeyword(lexer::TokenType::KEYW_DEFAULT)) { in ParseMemberModifiers()
1404 } else if (Lexer()->TryEatTokenKeyword(lexer::TokenType::KEYW_TYPE)) { in ParseMemberModifiers()
1405 if (Lexer()->GetToken().Type() == lexer::TokenType::LITERAL_IDENT) { in ParseMemberModifiers()
1406 Lexer()->Rewind(savedPos); in ParseMemberModifiers()
1415 lexer::SourcePosition startLoc = Lexer()->GetToken().Start(); in ParseMemberModifiers()
1417 if (Lexer()->GetToken().KeywordType() == lexer::TokenType::KEYW_DECLARE) { in ParseMemberModifiers()
1421 const auto tokenType = Lexer()->GetToken().KeywordType(); in ParseMemberModifiers()
1422 if (tokenType == lexer::TokenType::KEYW_ASYNC || tokenType == lexer::TokenType::KEYW_NATIVE) { in ParseMemberModifiers()
1423 bool isAsync = tokenType == lexer::TokenType::KEYW_ASYNC; in ParseMemberModifiers()
1430 Lexer()->NextToken(); in ParseMemberModifiers()
1432 if (Lexer()->GetToken().Type() != lexer::TokenType::KEYW_FUNCTION) { in ParseMemberModifiers()
1439 Lexer()->GetToken().SetTokenType(lexer::TokenType::KEYW_FUNCTION); in ParseMemberModifiers()