Lines Matching refs:ir
24 namespace panda::es2panda::ir {
63 ir::Expression *CreateExpression(std::string_view sourceCode,
67 …ir::Expression *CreateFormattedExpression(std::string_view sourceCode, std::vector<ir::AstNode *> …
71 …ir::Expression *CreateFormattedExpression(std::string_view const sourceCode, std::string_view cons… in CreateFormattedExpression()
74 std::vector<ir::AstNode *> insertingNodes {}; in CreateFormattedExpression()
80 ArenaVector<ir::Statement *> CreateStatements(std::string_view sourceCode,
83 ArenaVector<ir::Statement *> CreateFormattedStatements(std::string_view sourceCode,
84 … std::vector<ir::AstNode *> &insertingNodes,
88 ArenaVector<ir::Statement *> CreateFormattedStatements(std::string_view const sourceCode, in CreateFormattedStatements()
91 std::vector<ir::AstNode *> insertingNodes {}; in CreateFormattedStatements()
103 std::map<util::StringView, ir::AstNode *> fieldMap_;
107 void ParsePackageDeclaration(ArenaVector<ir::Statement *> &statements);
108 ArenaVector<ir::AstNode *> ParseTopLevelStatements(ArenaVector<ir::Statement *> &statements);
109 …void ParseTopLevelType(ArenaVector<ir::Statement *> &statements, bool &defaultExport, std::size_t …
110 std::function<ir::Statement *(ETSParser *)> const &parserFunction);
111 …void ParseTopLevelNextToken(ArenaVector<ir::Statement *> &statements, ArenaVector<ir::AstNode *> &…
112 ir::ScriptFunction *initFunction);
113 …void ParseTopLevelNextTokenDefault(ArenaVector<ir::Statement *> &statements, ir::ScriptFunction *i…
115 ir::ModifierFlags ResolveMemberModifiers();
116 lexer::SourcePosition ParseTopLevelNextTokenResolution(ArenaVector<ir::Statement *> &statements,
117 … ArenaVector<ir::AstNode *> &globalProperties,
118 … ir::ScriptFunction *initFunction, size_t currentPos,
120 …void ParseTokenOfNative(panda::es2panda::lexer::TokenType tokenType, ir::ModifierFlags &memberModi…
121 void ParseTokenOfFunction(ir::ModifierFlags memberModifiers, lexer::SourcePosition startLoc,
122 ArenaVector<ir::AstNode *> &globalProperties);
126 void ParseTopLevelDeclaration(ArenaVector<ir::Statement *> &statements);
136 std::tuple<ir::ImportSource *, std::vector<std::string>> ParseFromClause(bool requireFrom);
137 void ParseNamedSpecifiers(ArenaVector<ir::AstNode *> *specifiers, bool isExport = false);
138 void ParseNamedExportSpecifiers(ArenaVector<ir::AstNode *> *specifiers, bool defaultExport);
140 std::vector<std::string> ParseImportDeclarations(ArenaVector<ir::Statement *> &statements);
144 ArenaVector<ir::Statement *> PrepareGlobalClass();
145 ArenaVector<ir::Statement *> PrepareExternalGlobalClass(const SourceFile &sourceFile);
146 …void ParseETSGlobalScript(lexer::SourcePosition startLoc, ArenaVector<ir::Statement *> &statements…
147 ir::AstNode *ParseImportDefaultSpecifier(ArenaVector<ir::AstNode *> *specifiers) override;
149 ir::MethodDefinition *ParseClassGetterSetterMethod(const ArenaVector<ir::AstNode *> &properties,
150 ir::ClassDefinitionModifiers modifiers,
151 ir::ModifierFlags memberModifiers);
152 ir::MethodDefinition *ParseInterfaceGetterSetterMethod(ir::ModifierFlags modifiers);
153 ir::Statement *ParseTypeDeclaration(bool allowStatic = false);
154 …ir::Statement *ParseTypeDeclarationAbstractFinal(bool allowStatic, ir::ClassDefinitionModifiers mo…
155 ir::ModifierFlags ParseClassModifiers();
156 ir::ModifierFlags ParseInterfaceMethodModifiers();
157 ir::ClassProperty *ParseInterfaceField();
158 ir::Expression *ParseInitializer();
159 ir::ArrayExpression *ParseArrayLiteral();
160 ir::Expression *ParseCoercedNumberLiteral();
161 …ir::MethodDefinition *ParseInterfaceMethod(ir::ModifierFlags flags, ir::MethodDefinitionKind metho…
162 std::tuple<ir::ModifierFlags, bool> ParseClassMemberAccessModifiers();
163 ir::ModifierFlags ParseClassFieldModifiers(bool seenStatic);
164 ir::ModifierFlags ParseClassMethodModifiers(bool seenStatic);
165 …ir::MethodDefinition *ParseClassMethodDefinition(ir::Identifier *methodName, ir::ModifierFlags mod…
166 ir::Identifier *className = nullptr,
167 ir::Identifier *identNode = nullptr);
168 ir::ScriptFunction *ParseFunction(ParserStatus newStatus, ir::Identifier *className = nullptr);
169 …ir::MethodDefinition *ParseClassMethod(ClassElementDescriptor *desc, const ArenaVector<ir::AstNode…
170 … ir::Expression *propName, lexer::SourcePosition *propEnd) override;
171 std::tuple<bool, ir::BlockStatement *, lexer::SourcePosition, bool> ParseFunctionBody(
172 …const ArenaVector<ir::Expression *> ¶ms, ParserStatus newStatus, ParserStatus contextStatus) o…
173 ir::TypeNode *ParseFunctionReturnType(ParserStatus status) override;
174 ir::ScriptFunctionFlags ParseFunctionThrowMarker(bool isRethrowsAllowed) override;
175 ir::Expression *CreateParameterThis(util::StringView className) override;
178 void ParseClassFieldDefinition(ir::Identifier *fieldName, ir::ModifierFlags modifiers,
179 … ArenaVector<ir::AstNode *> *declarations, ir::ScriptFunction *initFunction = nullptr,
181 …lexer::SourcePosition InitializeGlobalVariable(ir::Identifier *fieldName, ir::Expression *&initial…
182 … ir::ScriptFunction *initFunction, lexer::SourcePosition &startLoc,
183 ir::TypeNode *typeAnnotation);
184 std::tuple<ir::Expression *, ir::TSTypeParameterInstantiation *> ParseTypeReferencePart(
186 ir::TypeNode *ParseTypeReference(TypeAnnotationParsingOptions *options);
187 ir::TypeNode *ParseBaseTypeReference(TypeAnnotationParsingOptions *options);
188 ir::TypeNode *ParsePrimitiveType(TypeAnnotationParsingOptions *options, ir::PrimitiveType type);
189 ir::TypeNode *ParseUnionType(ir::TypeNode *firstType);
190 ir::TSIntersectionType *ParseIntersectionType(ir::Expression *type);
191 …ir::TypeNode *GetTypeAnnotationOfPrimitiveType(lexer::TokenType tokenType, TypeAnnotationParsingOp…
192 ir::TypeNode *ParseWildcardType(TypeAnnotationParsingOptions *options);
193 ir::TypeNode *ParseFunctionType();
194 ir::TypeNode *ParseETSTupleType(TypeAnnotationParsingOptions *options);
195 std::pair<bool, std::size_t> CheckDefaultParameters(const ir::ScriptFunction *function) const;
196 ir::MethodDefinition *CreateProxyMethodDefinition(ir::MethodDefinition const *method,
197 ir::Identifier const *identNode);
198 ir::MethodDefinition *CreateProxyConstructorDefinition(ir::MethodDefinition const *method);
199 …void AddProxyOverloadToMethodWithDefaultParams(ir::MethodDefinition *method, ir::Identifier *ident…
200 static std::string PrimitiveTypeToName(ir::PrimitiveType type);
201 std::string GetNameForTypeNode(const ir::TypeNode *typeAnnotation, bool adjust = true) const;
202 std::string GetNameForETSUnionType(const ir::TypeNode *typeAnnotation) const;
203 ir::TSInterfaceDeclaration *ParseInterfaceBody(ir::Identifier *name, bool isStatic);
205 ir::ArrowFunctionExpression *ParseArrowFunctionExpression();
208 … std::pair<ir::TypeNode *, bool> GetTypeAnnotationFromToken(TypeAnnotationParsingOptions *options);
209 ir::TypeNode *ParseLiteralIdent(TypeAnnotationParsingOptions *options);
210 void ParseRightParenthesis(TypeAnnotationParsingOptions *options, ir::TypeNode *&typeAnnotation,
212 ir::TypeNode *ParseTypeAnnotation(TypeAnnotationParsingOptions *options) override;
213 ir::TSTypeAliasDeclaration *ParseTypeAliasDeclaration() override;
218 ir::Expression *ParseCoverParenthesizedExpressionAndArrowParameterList(
220 ir::Statement *ParseTryStatement() override;
221 ir::DebuggerStatement *ParseDebuggerStatement() override;
223 ir::Statement *ParseImportDeclaration(StatementParsingFlags flags) override;
224 ir::Statement *ParseExportDeclaration(StatementParsingFlags flags) override;
225 ir::AnnotatedExpression *ParseVariableDeclaratorKey(VariableParsingFlags flags) override;
226 …ir::VariableDeclarator *ParseVariableDeclarator(ir::Expression *init, lexer::SourcePosition startL…
228 …ir::VariableDeclarator *ParseVariableDeclaratorInitializer(ir::Expression *init, VariableParsingFl…
230 ir::AstNode *ParseTypeLiteralOrInterfaceMember() override;
231 void ParseNameSpaceSpecifier(ArenaVector<ir::AstNode *> *specifiers, bool isReExport = false);
233 ir::Expression *ParseFunctionParameter() override;
234 ir::AnnotatedExpression *GetAnnotatedExpressionFromParam();
236 ir::Expression *ParseUnaryOrPrefixUpdateExpression(
239 …ir::Expression *ParseDefaultPrimaryExpression(ExpressionParseFlags flags = ExpressionParseFlags::N…
241 …ir::Expression *ParsePrimaryExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS)…
242 …ir::Expression *ParsePostPrimaryExpression(ir::Expression *primaryExpr, lexer::SourcePosition star…
244 ir::Expression *ParsePotentialAsExpression(ir::Expression *primaryExpr) override;
245 ir::Statement *ParseAssertStatement() override;
247 ir::Expression *ParseCatchParam() override;
248 void ParseCatchParamTypeAnnotation([[maybe_unused]] ir::AnnotatedExpression *param) override;
249 ir::Expression *ParseSuperClassReference() override;
250 ir::Identifier *ParseClassIdent(ir::ClassDefinitionModifiers modifiers) override;
252 …ir::ClassDeclaration *ParseClassStatement(StatementParsingFlags flags, ir::ClassDefinitionModifier…
253 … ir::ModifierFlags modFlags = ir::ModifierFlags::NONE) override;
255 …ir::ETSStructDeclaration *ParseStructStatement(StatementParsingFlags flags, ir::ClassDefinitionMod…
256 … ir::ModifierFlags modFlags = ir::ModifierFlags::NONE) override;
258 …ir::AstNode *ParseClassElement(const ArenaVector<ir::AstNode *> &properties, ir::ClassDefinitionMo…
259 ir::ModifierFlags flags = ir::ModifierFlags::NONE,
260 ir::Identifier *identNode = nullptr) override;
261 …ir::AstNode *ParseInnerTypeDeclaration(ir::ModifierFlags memberModifiers, lexer::LexerPosition sav…
263 ir::AstNode *ParseInnerConstructorDeclaration(ir::ModifierFlags memberModifiers,
265 …ir::AstNode *ParseInnerRest(const ArenaVector<ir::AstNode *> &properties, ir::ClassDefinitionModif…
266 ir::ModifierFlags memberModifiers, ir::Identifier *identNode,
268 ir::Expression *ParseNewExpression() override;
269 ir::Expression *ParseAsyncExpression();
270 ir::Expression *ParseAwaitExpression();
271 ir::TSTypeParameter *ParseTypeParameter(TypeAnnotationParsingOptions *options) override;
274 ir::AstNode *ParseFormatPlaceholder();
275 …ir::Statement *ParseStatementFormatPlaceholder(std::optional<NodeFormatType> nodeFormat = std::nul…
276 …ir::Expression *ParseExpressionFormatPlaceholder(std::optional<NodeFormatType> nodeFormat = std::n…
278 …ir::Identifier *ParseIdentifierFormatPlaceholder(std::optional<NodeFormatType> nodeFormat = std::n…
279 … ir::TypeNode *ParseTypeFormatPlaceholder(std::optional<NodeFormatType> nodeFormat = std::nullopt);
281 …ir::TSEnumDeclaration *ParseEnumMembers(ir::Identifier *key, const lexer::SourcePosition &enumStar…
283 void ParseNumberEnum(ArenaVector<ir::AstNode *> &members);
284 void ParseStringEnum(ArenaVector<ir::AstNode *> &members);
286 ir::Statement *ParseInterfaceDeclaration(bool isStatic) override;
287 ir::ThisExpression *ParseThisExpression() override;
288 ir::TypeNode *ParseThisType(TypeAnnotationParsingOptions *options);
289 ir::Statement *ParseFunctionStatement(StatementParsingFlags flags) override;
290 …std::tuple<ir::Expression *, ir::TSTypeParameterInstantiation *> ParseClassImplementsElement() ove…
291 ir::TypeNode *ParseInterfaceExtendsElement() override;
293 ir::ClassDefinition *ParseClassDefinition(ir::ClassDefinitionModifiers modifiers,
294 … ir::ModifierFlags flags = ir::ModifierFlags::NONE) override;
296 ir::Statement *ParseEnumDeclaration(bool isConst = false, bool isStatic = false) override;
297 ir::Expression *ParseLaunchExpression(ExpressionParseFlags flags);
298 void ValidateInstanceOfExpression(ir::Expression *expr);
299 void ValidateRestParameter(ir::Expression *param) override;
300 …void CheckIndexAccessMethod(ir::ScriptFunction const *function, const lexer::SourcePosition &posit…
302 bool CheckClassElement(ir::AstNode *property, ir::MethodDefinition *&ctor,
303 ArenaVector<ir::AstNode *> &properties) override;
305 void CreateCCtor(ArenaVector<ir::AstNode *> &properties, const lexer::SourcePosition &loc,
307 …void CreateImplicitConstructor(ir::MethodDefinition *&ctor, ArenaVector<ir::AstNode *> &properties,
308 ir::ClassDefinitionModifiers modifiers,
310 …bool ParsePotentialGenericFunctionCall(ir::Expression *primaryExpr, ir::Expression **returnExpress…
312 …bool ParsePotentialNonNullExpression(ir::Expression **expression, lexer::SourcePosition startLoc) …
313 void MarkNodeAsExported(ir::AstNode *node, lexer::SourcePosition startPos, bool defaultExport,
329 …ir::Expression *ParseExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS) overri…
331 …ir::Expression *ParsePotentialExpressionSequence(ir::Expression *expr, ExpressionParseFlags flags)…
333 ir::ModifierFlags ParseTypeVarianceModifier(TypeAnnotationParsingOptions *options);
335 ir::ScriptFunction *AddInitMethod(ArenaVector<ir::AstNode *> &globalProperties);
336 … ir::Statement *ParseTopLevelStatement(StatementParsingFlags flags = StatementParsingFlags::NONE);
338 void ParseTrailingBlock([[maybe_unused]] ir::CallExpression *callExpr) override;
351 …ir::Statement *CreateStatement(std::string_view sourceCode, std::string_view fileName = DEFAULT_SO…
352 …ir::Statement *CreateFormattedStatement(std::string_view sourceCode, std::vector<ir::AstNode *> &i…
357 …ir::Statement *CreateFormattedStatement(std::string_view const sourceCode, std::string_view const … in CreateFormattedStatement()
360 std::vector<ir::AstNode *> insertingNodes {}; in CreateFormattedStatement()
366 …ir::MethodDefinition *CreateMethodDefinition(ir::ModifierFlags modifiers, std::string_view sourceC…
368 …ir::MethodDefinition *CreateConstructorDefinition(ir::ModifierFlags modifiers, std::string_view so…
370 …ir::TypeNode *CreateTypeAnnotation(TypeAnnotationParsingOptions *options, std::string_view sourceC…
386 std::vector<ir::AstNode *> insertingNodes_ {};