LCOV - code coverage report
Current view: top level - inc/parsingAnalysis/algorithm - topDown.h (source / functions) Coverage Total Hit
Test: coverage.info Lines: 0.0 % 1 0
Test Date: 2025-04-18 15:53:49 Functions: 0.0 % 1 0

            Line data    Source code
       1              : #ifndef TOP_DOWN_H
       2              : #define TOP_DOWN_H
       3              : 
       4              : #include "../builder.h"
       5              : #include "../../tables/typeTable/typeTable.h"
       6              : #include "parser.h"
       7              : #include <expected>
       8              : #include <memory>
       9              : #include <variant>
      10              : 
      11              : namespace nicole {
      12              : 
      13              : class TopDown final : public Parser {
      14              : private:
      15              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_BODY>, Error>
      16              :   parseStart() const noexcept;
      17              : 
      18              :   [[nodiscard]] const std::expected<std::shared_ptr<Type>, Error>
      19              :   parseType() const noexcept;
      20              : 
      21              :   [[nodiscard]] const std::expected<std::shared_ptr<Type>, Error>
      22              :   parsePrimaryType() const noexcept;
      23              : 
      24              :   [[nodiscard]] const std::expected<std::vector<GenericParameter>, Error>
      25              :   parseGenerics() const noexcept;
      26              : 
      27              :   [[nodiscard]] const std::expected<std::vector<std::shared_ptr<Type>>, Error>
      28              :   parseReplacementOfGenerics() const noexcept;
      29              : 
      30              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_BODY>, Error>
      31              :   parseBody() const noexcept;
      32              : 
      33              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_STATEMENT>, Error>
      34              :   parseStatement() const noexcept;
      35              : 
      36              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_ENUM>, Error>
      37              :   parseEnum() const noexcept;
      38              : 
      39              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_ENUM_ACCESS>, Error>
      40              :   parseEnumAccess() const noexcept;
      41              : 
      42              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_STRUCT>, Error>
      43              :   parseStructDecl() const noexcept;
      44              : 
      45              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_CONSTRUCTOR_DECL>,
      46              :                                     Error>
      47              :   parseConstructorDecl(const std::string &id_returnType, const std::shared_ptr<Type>& fatherType) const noexcept;
      48              : 
      49              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_DESTRUCTOR_DECL>, Error>
      50              :   parseDestructorDecl(const std::string &id) const noexcept;
      51              : 
      52              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_METHOD_DECL>, Error>
      53              :   parseMethodDecl(const bool isVirtual) const noexcept;
      54              : 
      55              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_DELETE>, Error>
      56              :   parseDelete() const noexcept;
      57              : 
      58              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_FUNC_DECL>, Error>
      59              :   parseFuncDecl() const noexcept;
      60              : 
      61              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_RETURN>, Error>
      62              :   parseReturn() const noexcept;
      63              : 
      64              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_IMPORT>, Error>
      65              :   parseImport() const noexcept;
      66              : 
      67              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_PRINT>, Error>
      68              :   parsePrint() const noexcept;
      69              : 
      70              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_WHILE>, Error>
      71              :   parseWhile() const noexcept;
      72              : 
      73              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_FOR>, Error>
      74              :   parseFor() const noexcept;
      75              : 
      76              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_PASS>, Error>
      77              :   parsePass() const noexcept;
      78              : 
      79              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_STOP>, Error>
      80              :   parseStop() const noexcept;
      81              : 
      82              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_DO_WHILE>, Error>
      83              :   parseDoWhile() const noexcept;
      84              : 
      85              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_IF>, Error>
      86              :   parseIf() const noexcept;
      87              : 
      88              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_ELSE_IF>, Error>
      89              :   parseElseIf() const noexcept;
      90              : 
      91              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_SWITCH>, Error>
      92              :   parseSwitch() const noexcept;
      93              : 
      94              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_CASE>, Error>
      95              :   parseCase() const noexcept;
      96              : 
      97              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_DEFAULT>, Error>
      98              :   parseDefault() const noexcept;
      99              : 
     100              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     101              :   parseAssignment(const bool insideFor) const noexcept;
     102              : 
     103              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     104              :   parseVarDecl(const bool insideFor) const noexcept;
     105              : 
     106              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     107              :   parseTernary() const noexcept;
     108              : 
     109              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_CONDITION>, Error>
     110              :   parseCondition(const bool isInsideFor) const noexcept;
     111              : 
     112              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     113              :   parseOr() const noexcept;
     114              : 
     115              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     116              :   parseAnd() const noexcept;
     117              : 
     118              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     119              :   parseEqual_NotEqual() const noexcept;
     120              : 
     121              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     122              :   parseCompare() const noexcept;
     123              : 
     124              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     125              :   parseAdd_Sub() const noexcept;
     126              : 
     127              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     128              :   parseMult_Div_Module() const noexcept;
     129              : 
     130              :   [[nodiscard]] const std::expected<std::shared_ptr<AST>, Error>
     131              :   parseFactor() const noexcept;
     132              : 
     133              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_VECTOR>, Error>
     134              :   parseVector() const noexcept;
     135              : 
     136              :   [[nodiscard]] const std::expected<std::shared_ptr<AST_CHAINED>, Error>
     137              :   parseChainedExpression() const noexcept;
     138              : 
     139              :   [[nodiscard]] const std::expected<Parameters, Error>
     140              :   parseParams() const noexcept;
     141              : 
     142              :   [[nodiscard]] const std::expected<std::vector<std::shared_ptr<AST>>, Error>
     143              :   parseArguments(std::pair<TokenType, TokenType> delimiters,
     144              :                  const bool canBeEmpty) const noexcept;
     145              : 
     146              :   std::expected<std::monostate, Error> tryEat() const noexcept;
     147              : 
     148              : public:
     149              :   explicit TopDown(const std::shared_ptr<Sintax> &sintax) noexcept
     150            0 :       : Parser{sintax} {}
     151              : 
     152              :   [[nodiscard]] const std::expected<std::shared_ptr<Tree>, Error>
     153              :   parse(const std::filesystem::path &entryFile) const noexcept override;
     154              : };
     155              : 
     156              : } // namespace nicole
     157              : 
     158              : #endif
        

Generated by: LCOV version 2.0-1