• Home
  • Raw
  • Download

Lines Matching full:ir

21 #include "ir/base/scriptFunctionSignature.h"
105 static ir::VariableDeclaratorFlag GetFlag(VariableParsingFlags flags);
111 ir::Property *ParseShorthandProperty(const lexer::LexerPosition *startPos);
113 …bool ParsePropertyModifiers(ExpressionParseFlags flags, ir::PropertyKind *propertyKind, ParserStat…
114ir::Expression *ParsePropertyValue(const ir::PropertyKind *propertyKind, const ParserStatus *metho…
121 ir::Expression *ParseKeywordExpression();
122 ir::Expression *ParseBinaryExpression(ir::Expression *left,
124 void ValidateUpdateExpression(ir::Expression *returnExpression, bool isChainExpression);
125 ir::Expression *ParseMemberExpression(bool ignoreCallExpression = false,
127 ir::Expression *SetupChainExpr(ir::Expression *const top, lexer::SourcePosition startLoc);
128 ir::MetaProperty *ParsePotentialNewTarget();
129 void ValidateParenthesizedExpression(ir::Expression *lhsExpression);
130 bool ValidateGroupedExpression(ir::Expression *lhsExpression);
131 ir::Expression *ParseImportExpression();
132 ir::Expression *ParseOptionalChain(ir::Expression *leftSideExpr);
133 ir::Expression *ParsePropertyKey(ExpressionParseFlags flags);
134 void ValidateAssignmentTarget(ExpressionParseFlags flags, ir::Expression *node);
135 void ValidateLvalueAssignmentTarget(ir::Expression *node);
136 void ValidateArrowParameterBindings(const ir::Expression *node);
137 ir::Identifier *ParseNamedExport(lexer::Token *exportedToken);
138 virtual void ParseTrailingBlock([[maybe_unused]] ir::CallExpression *callExpr) {} in ParseTrailingBlock()
139 ir::Expression *CreateBinaryAssignmentExpression(ir::Expression *assignmentExpression,
140ir::Expression *lhsExpression, lexer::TokenType tokenType);
145 void CheckLabelledFunction(const ir::Statement *node);
146 bool ParseDirective(ArenaVector<ir::Statement *> *statements);
147 void ParseDirectivePrologue(ArenaVector<ir::Statement *> *statements);
148 ir::BlockStatement *ParseFunctionBody();
149 std::tuple<ForStatementKind, ir::AstNode *, ir::Expression *, ir::Expression *> ParseIsForInOf(
150 ir::Expression *leftNode, ExpressionParseFlags exprFlags);
151 std::tuple<ForStatementKind, ir::AstNode *, ir::Expression *, ir::Expression *> ParseForInOf(
152 ir::Expression *leftNode, ExpressionParseFlags exprFlags, bool isAwait);
153 …std::tuple<ForStatementKind, ir::Expression *, ir::Expression *> ParseForInOf(ir::AstNode *initNod…
156 std::tuple<ir::Expression *, ir::Expression *> ParseForUpdate(bool isAwait);
157 std::tuple<ir::Expression *, ir::AstNode *> ParseForLoopInitializer();
158 ir::SwitchCaseStatement *ParseSwitchCaseStatement(bool *seenDefault);
159 virtual ir::Expression *ParseCatchParam();
160 ir::CatchClause *ParseCatchClause();
161 ir::VariableDeclaration *ParseContextualLet(VariableParsingFlags flags,
163 ir::Statement *CreateForStatement(struct ForStatementNodes &&nodes, ForStatementKind forKind,
183 void LogParameterModifierError(ir::ModifierFlags status);
210 ir::Identifier *ExpectIdentifier(bool isReference = false, bool isUserDefinedType = false);
215ir::SpreadElement *ParseSpreadElement(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS);
216 ir::YieldExpression *ParseYieldExpression();
217 …virtual ir::Expression *ParsePotentialExpressionSequence(ir::Expression *expr, ExpressionParseFlag…
218ir::ArrowFunctionExpression *ParseArrowFunctionExpressionBody(ArrowFunctionContext *arrowFunctionC…
220ir::TSTypeParameterDeclaration *typeParamDecl,
221ir::TypeNode *returnTypeAnnotation);
222 ir::Expression *ParseAssignmentExpressionHelper();
223 ir::Expression *ParseAssignmentExpression(ir::Expression *lhsExpression,
225ir::Expression *ParseAssignmentBinaryExpression(lexer::TokenType tokenType, ir::Expression *lhsExp…
227ir::Expression *ParseAssignmentEqualExpression(lexer::TokenType tokenType, ir::Expression *lhsExpr…
229ir::SequenceExpression *ParseSequenceExpression(ir::Expression *startExpr, bool acceptRest = false…
230 ir::FunctionExpression *ParseFunctionExpression(ParserStatus newStatus = ParserStatus::NO_OPTS);
231 ir::ArrowFunctionExpression *ParseArrowFunctionExpression(ir::Expression *expr,
232ir::TSTypeParameterDeclaration *typeParamDecl,
233ir::TypeNode *returnTypeAnnotation, bool isAsync);
234 ir::CallExpression *ParseCallExpression(ir::Expression *callee, bool isOptionalChain = false,
236 ArenaVector<ir::Expression *> ParseCallExpressionArguments(bool &trailingComma);
238 ir::TemplateLiteral *ParseTemplateLiteral();
239ir::Expression *ParseLeftHandSideExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_…
240 void ParseNameSpaceImport(ArenaVector<ir::AstNode *> *specifiers);
241 void ParseNamedImportSpecifiers(ArenaVector<ir::AstNode *> *specifiers);
242 ir::StringLiteral *ParseFromClause(bool requireFrom = true);
244 ir::BooleanLiteral *ParseBooleanLiteral();
245 ir::NullLiteral *ParseNullLiteral();
246 ir::Literal *ParseNumberLiteral();
247 ir::CharLiteral *ParseCharLiteral();
248 ir::StringLiteral *ParseStringLiteral();
249 ir::UndefinedLiteral *ParseUndefinedLiteral();
250 virtual ir::ThisExpression *ParseThisExpression();
251 ir::RegExpLiteral *ParseRegularExpression();
252 ir::SuperExpression *ParseSuperExpression();
253 ir::MemberExpression *ParseElementAccess(ir::Expression *primaryExpr, bool isOptional = false);
254 ir::MemberExpression *ParsePrivatePropertyAccess(ir::Expression *primaryExpr);
255 ir::MemberExpression *ParsePropertyAccess(ir::Expression *primaryExpr, bool isOptional = false);
256 …void CreateAmendedBinaryExpression(ir::Expression *left, ir::Expression *right, lexer::TokenType o…
259 …ArenaVector<ir::Statement *> ParseStatementList(StatementParsingFlags flags = StatementParsingFlag…
260 virtual ir::Statement *ParseAssertStatement();
262 ir::BlockStatement *ParseBlockStatement();
263 ir::EmptyStatement *ParseEmptyStatement();
264 ir::Statement *ParseForStatement();
265 ir::IfStatement *ParseIfStatement();
266 virtual ir::Statement *ParseFunctionStatement(StatementParsingFlags flags);
268 virtual ir::ClassDeclaration *ParseClassStatement(StatementParsingFlags flags,
269 ir::ClassDefinitionModifiers modifiers,
270ir::ModifierFlags modFlags = ir::ModifierFlags::NONE);
272 virtual ir::ETSStructDeclaration *ParseStructStatement(StatementParsingFlags flags,
273 ir::ClassDefinitionModifiers modifiers,
274ir::ModifierFlags modFlags = ir::ModifierFlags::NONE);
275 ir::Statement *ParseStatementBasedOnTokenType(StatementParsingFlags flags);
276 ir::Statement *ParseVarStatement();
277 ir::Statement *ParseLetStatement(StatementParsingFlags flags);
278 ir::BreakStatement *ParseBreakStatement();
279 ir::ContinueStatement *ParseContinueStatement();
280 ir::DoWhileStatement *ParseDoWhileStatement();
281 ir::WhileStatement *ParseWhileStatement();
282 ir::SwitchStatement *ParseSwitchStatement();
283 ir::ReturnStatement *ParseReturnStatement();
284ir::Statement *ParseExpressionStatement(StatementParsingFlags flags = StatementParsingFlags::NONE);
285 ir::LabelledStatement *ParseLabelledStatement(const lexer::LexerPosition &pos);
286 virtual void ValidateRestParameter(ir::Expression *param);
291 ir::MethodDefinition *BuildImplicitConstructor(ir::ClassDefinitionModifiers modifiers,
294 …virtual void CreateImplicitConstructor(ir::MethodDefinition *&ctor, ArenaVector<ir::AstNode *> &pr…
295ir::ClassDefinitionModifiers modifiers, ir::ModifierFlags flags,
299 ir::Expression *ParseClassKey(ClassElementDescriptor *desc);
300ir::ClassElement *ParseClassProperty(ClassElementDescriptor *desc, const ArenaVector<ir::AstNode *…
301 ir::Expression *propName, ir::TypeNode *typeAnnotation);
302 void AddPrivateElement(const ir::ClassElement *elem);
303 ir::ScriptFunction *ParseFunction(ParserStatus newStatus = ParserStatus::NO_OPTS);
304 ir::ModifierFlags GetAccessability(ir::ModifierFlags modifiers);
305 …void CheckAccessorPair(const ArenaVector<ir::AstNode *> &properties, const ir::Expression *propNam…
306 ir::MethodDefinitionKind methodKind, ir::ModifierFlags access);
307 ir::Identifier *ParseNamedImport(lexer::Token *importedToken);
308 void ConsumeSemicolon(ir::Statement *statement);
309 ir::ExportAllDeclaration *ParseExportAllDeclaration(const lexer::SourcePosition &startLoc);
310 ir::ExportNamedDeclaration *ParseExportNamedSpecifiers(const lexer::SourcePosition &startLoc);
311ir::Statement *ParseVariableDeclaration(VariableParsingFlags flags = VariableParsingFlags::NO_OPTS…
317 ir::VariableDeclarator *ParseVariableDeclarator(VariableParsingFlags flags);
318 ir::FunctionDeclaration *ParseFunctionDeclaration(bool canBeAnonymous = false,
320 ir::ETSStructDeclaration *ParseStructDeclaration(ir::ClassDefinitionModifiers modifiers,
321ir::ModifierFlags flags = ir::ModifierFlags::NONE);
322 ir::ClassDeclaration *ParseClassDeclaration(ir::ClassDefinitionModifiers modifiers,
323 ir::ModifierFlags flags = ir::ModifierFlags::NONE);
324 …FunctionSignature ParseFunctionSignature(ParserStatus status, ir::TypeNode *typeAnnotation = nullp…
328ir::Statement *ParseStatementLiteralIdentHelper(StatementParsingFlags flags = StatementParsingFlag…
330ir::Statement *ParseStatementControlFlowTokenHelper(StatementParsingFlags flags = StatementParsing…
332ir::Statement *ParseStatementPunctuatorsHelper(StatementParsingFlags flags = StatementParsingFlags…
334 … virtual ir::Statement *ParseStatement(StatementParsingFlags flags = StatementParsingFlags::NONE);
336 …virtual ir::Expression *ParseExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS…
338 …virtual ir::Expression *ParseExpressionOrTypeAnnotation(lexer::TokenType type, ExpressionParseFlag…
340 …virtual ir::Expression *ParsePatternElement(ExpressionParseFlags flags = ExpressionParseFlags::NO_…
343 …virtual bool ParsePotentialNonNullExpression(ir::Expression **returnExpression, lexer::SourcePosit…
344 virtual ir::AstNode *ParseImportSpecifiers(ArenaVector<ir::AstNode *> *specifiers);
345 virtual ir::Statement *ParseImportDeclaration(StatementParsingFlags flags);
347 virtual ir::Expression *ParsePropertyDefinition(
350 …virtual ir::ObjectExpression *ParseObjectExpression(ExpressionParseFlags flags = ExpressionParseFl…
354 …virtual ir::ArrayExpression *ParseArrayExpression(ExpressionParseFlags flags = ExpressionParseFlag…
355 …void ParseArrayExpressionErrorCheck(ir::ArrayExpression *arrayExpressionNode, ExpressionParseFlags…
357 …virtual ir::ArrowFunctionExpression *ParsePotentialArrowExpression(ir::Expression **returnExpressi…
359 …virtual bool ParsePotentialGenericFunctionCall(ir::Expression *primaryExpr, ir::Expression **retur…
361 virtual ir::Expression *ParsePotentialAsExpression(ir::Expression *primaryExpression);
363 virtual ir::Identifier *ParsePrimaryExpressionIdent(ExpressionParseFlags flags);
364 virtual bool ValidateArrowFunctionRestParameter(ir::SpreadElement *restElement);
365 virtual ir::Statement *ParsePotentialExpressionStatement(StatementParsingFlags flags);
366 virtual ArenaVector<ir::Expression *> ParseFunctionParams();
367 virtual ir::Expression *CreateParameterThis(ir::TypeNode *typeAnnotation);
368 virtual ir::Expression *ParseFunctionParameter();
370 virtual void ParseCatchParamTypeAnnotation(ir::AnnotatedExpression *param);
372 virtual ir::ClassDefinition *ParseClassDefinition(ir::ClassDefinitionModifiers modifiers,
373ir::ModifierFlags flags = ir::ModifierFlags::NONE);
374 virtual ir::Identifier *ParseClassIdent(ir::ClassDefinitionModifiers modifiers);
375 virtual ir::Statement *ParsePotentialConstEnum(VariableParsingFlags flags);
376 virtual ir::AstNode *ParseClassElement(const ArenaVector<ir::AstNode *> &properties,
377ir::ClassDefinitionModifiers modifiers, ir::ModifierFlags flags);
378 virtual bool CheckClassElement(ir::AstNode *property, ir::MethodDefinition *&ctor,
379 ArenaVector<ir::AstNode *> &properties);
380 … virtual void ValidateClassMethodStart(ClassElementDescriptor *desc, ir::TypeNode *typeAnnotation);
381 virtual ir::MethodDefinition *ParseClassMethod(ClassElementDescriptor *desc,
382 const ArenaVector<ir::AstNode *> &properties,
383ir::Expression *propName, lexer::SourcePosition *propEnd);
384 void ValidateGetterSetter(ir::MethodDefinitionKind methodDefinition, size_t number);
385 …virtual void ValidateClassSetter(ClassElementDescriptor *desc, const ArenaVector<ir::AstNode *> &p…
386 ir::Expression *propName, ir::ScriptFunction *func);
387 …virtual void ValidateClassGetter(ClassElementDescriptor *desc, const ArenaVector<ir::AstNode *> &p…
388 ir::Expression *propName, ir::ScriptFunction *func);
389 virtual ir::ModifierFlags ParseModifiers();
390 virtual ir::Statement *ParseConstStatement(StatementParsingFlags flags);
392 virtual ir::AnnotatedExpression *ParseVariableDeclaratorKey(VariableParsingFlags flags);
393 …virtual ir::VariableDeclarator *ParseVariableDeclarator(ir::Expression *init, lexer::SourcePositio…
395 …virtual ir::VariableDeclarator *ParseVariableDeclaratorInitializer(ir::Expression *init, VariableP…
402 virtual void ReportIfBodyEmptyError(ir::Statement *consequent);
406 virtual ir::Expression *ParsePrefixAssertionExpression();
408 virtual ir::Expression *ParseCoverParenthesizedExpressionAndArrowParameterList(
410 virtual void CheckIfStaticConstructor(ir::ModifierFlags flags);
411 …virtual std::tuple<bool, bool, bool> ParseComputedClassFieldOrIndexSignature(ir::Expression **prop…
413 virtual ir::Expression *ParseUnaryOrPrefixUpdateExpression(
415 virtual ir::Expression *ParsePrimaryExpressionWithLiterals(ExpressionParseFlags flags);
416 ir::Expression *ParseHashMaskOperator();
417 ir::Expression *ParseClassExpression();
418 ir::Expression *ParsePunctuators(ExpressionParseFlags flags);
420 …virtual ir::Expression *ParsePrimaryExpression(ExpressionParseFlags flags = ExpressionParseFlags::…
421 …virtual ir::Expression *ParsePostPrimaryExpression(ir::Expression *primaryExpr, lexer::SourcePosit…
423 ir::Expression *ParsePostPrimaryExpressionBackTick(ir::Expression *returnExpression,
425ir::Expression *ParsePostPrimaryExpressionDot(ir::Expression *returnExpression, lexer::TokenType t…
427 virtual ir::ClassElement *ParseClassStaticBlock();
428 virtual ParserStatus ValidateArrowParameter(ir::Expression *expr, bool *seenOptional);
429 void ValidateArrowParameterAssignment(ir::AssignmentExpression *expr);
430 virtual ArrowFunctionDescriptor ConvertToArrowParameter(ir::Expression *expr, bool isAsync);
431 virtual ir::Expression *ParseNewExpression();
433 virtual ir::TSTypeParameterDeclaration *ParseFunctionTypeParameters() in ParseFunctionTypeParameters()
438 virtual ir::TypeNode *ParseFunctionReturnType([[maybe_unused]] ParserStatus status) in ParseFunctionReturnType()
443 …virtual ir::ScriptFunctionFlags ParseFunctionThrowMarker([[maybe_unused]] const bool isRethrowsAll… in ParseFunctionThrowMarker()
445 return ir::ScriptFunctionFlags::NONE; in ParseFunctionThrowMarker()
449 …virtual ir::Identifier *ParseIdentifierFormatPlaceholder(std::optional<NodeFormatType> nodeFormat);
450 virtual ir::Statement *ParseStatementFormatPlaceholder();
451 virtual ir::AstNode *ParseTypeParametersFormatPlaceholder();
452 virtual ArenaVector<ir::AstNode *> &ParseAstNodesArrayFormatPlaceholder();
453 virtual ArenaVector<ir::Statement *> &ParseStatementsArrayFormatPlaceholder();
454 virtual ArenaVector<ir::Expression *> &ParseExpressionsArrayFormatPlaceholder();
456 virtual std::tuple<bool, ir::BlockStatement *, lexer::SourcePosition, bool> ParseFunctionBody(
457 … const ArenaVector<ir::Expression *> &params, ParserStatus newStatus, ParserStatus contextStatus);
458 virtual ir::AstNode *ParseImportDefaultSpecifier(ArenaVector<ir::AstNode *> *specifiers);
459 virtual ir::Statement *ParseExportDeclaration(StatementParsingFlags flags);
462 …virtual ir::ExportDefaultDeclaration *ParseExportDefaultDeclaration(const lexer::SourcePosition &s…
464 …virtual ir::ExportNamedDeclaration *ParseNamedExportDeclaration(const lexer::SourcePosition &start…
470 virtual ir::Statement *ParseTryStatement();
471 virtual ir::ThrowStatement *ParseThrowStatement();
472 virtual ir::DebuggerStatement *ParseDebuggerStatement();
474 …virtual ir::Statement *ParseModuleDeclaration(StatementParsingFlags flags = StatementParsingFlags:…
479 virtual ir::Statement *ParseInterfaceDeclaration([[maybe_unused]] bool isStatic) in ParseInterfaceDeclaration()
485 virtual ir::Statement *ParseEnumDeclaration([[maybe_unused]] bool isConst = false,
491 virtual std::tuple<ir::Expression *, ir::TSTypeParameterInstantiation *> ParseSuperClass();
492 virtual ir::Expression *ParseSuperClassReference();
494 …using ClassBody = std::tuple<ir::MethodDefinition *, ArenaVector<ir::AstNode *>, lexer::SourceRang…
495 …ClassBody ParseClassBody(ir::ClassDefinitionModifiers modifiers, ir::ModifierFlags flags = ir::Mod…
538 bool GetCanBeForInOf(ir::Expression *leftNode, ir::AstNode *initNode);