#pragma once #include #include #include #include namespace torch { namespace jit { namespace script { struct Decl; struct ParserImpl; struct Lexer; TORCH_API Decl mergeTypesFromTypeComment( const Decl& decl, const Decl& type_annotation_decl, bool is_method); struct TORCH_API Parser { explicit Parser(const std::shared_ptr& src); TreeRef parseFunction(bool is_method); TreeRef parseClass(); Decl parseTypeComment(); Expr parseExp(); Lexer& lexer(); ~Parser(); private: std::unique_ptr pImpl; }; } // namespace script } // namespace jit } // namespace torch