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

            Line data    Source code
       1              : #ifndef PRINT_TREE_H
       2              : #define PRINT_TREE_H
       3              : 
       4              : #include "../visitor.h"
       5              : 
       6              : namespace nicole {
       7              : 
       8              : class PrintTree final : public Visitor<std::string> {
       9              : private:
      10              :   mutable std::string indent_{};
      11              : 
      12            0 :   void increaseIndent() const noexcept { indent_ += "  "; }
      13              : 
      14            0 :   void decreaseIndent() const noexcept {
      15            0 :     if (indent_.size() >= 2)
      16            0 :       indent_ = indent_.substr(0, indent_.size() - 2);
      17            0 :   }
      18              : 
      19              : public:
      20              :   [[nodiscard]] std::expected<std::string, Error>
      21              :   visit(const AST_BOOL *node) const noexcept override;
      22              : 
      23              :   [[nodiscard]] std::expected<std::string, Error>
      24              :   visit(const AST_CHAR *node) const noexcept override;
      25              : 
      26              :   [[nodiscard]] std::expected<std::string, Error>
      27              :   visit(const AST_DOUBLE *node) const noexcept override;
      28              : 
      29              :   [[nodiscard]] std::expected<std::string, Error>
      30              :   visit(const AST_FLOAT *node) const noexcept override;
      31              : 
      32              :   [[nodiscard]] std::expected<std::string, Error>
      33              :   visit(const AST_INT *node) const noexcept override;
      34              : 
      35              :   [[nodiscard]] std::expected<std::string, Error>
      36              :   visit(const AST_NULL *node) const noexcept override;
      37              : 
      38              :   [[nodiscard]] std::expected<std::string, Error>
      39              :   visit(const AST_STRING *node) const noexcept override;
      40              : 
      41              :   [[nodiscard]] std::expected<std::string, Error>
      42              :   visit(const AST_VECTOR *node) const noexcept override;
      43              : 
      44              :   [[nodiscard]] std::expected<std::string, Error>
      45              :   visit(const AST_INDEX *node) const noexcept override;
      46              : 
      47              :   [[nodiscard]] std::expected<std::string, Error>
      48              :   visit(const AST_DELETE *node) const noexcept override;
      49              : 
      50              :   [[nodiscard]] std::expected<std::string, Error>
      51              :   visit(const AST_NEW *node) const noexcept override;
      52              : 
      53              :   [[nodiscard]] std::expected<std::string, Error>
      54              :   visit(const AST_DEREF *node) const noexcept override;
      55              : 
      56              :   [[nodiscard]] std::expected<std::string, Error>
      57              :   visit(const AST_BINARY *node) const noexcept override;
      58              : 
      59              :   [[nodiscard]] std::expected<std::string, Error>
      60              :   visit(const AST_UNARY *node) const noexcept override;
      61              : 
      62              :   [[nodiscard]] std::expected<std::string, Error>
      63              :   visit(const AST_ASSIGNMENT *node) const noexcept override;
      64              : 
      65              :   [[nodiscard]] std::expected<std::string, Error>
      66              :   visit(const AST_PRINT *node) const noexcept override;
      67              : 
      68              :   [[nodiscard]] std::expected<std::string, Error>
      69              :   visit(const AST_IMPORT *node) const noexcept override;
      70              : 
      71              :   [[nodiscard]] std::expected<std::string, Error>
      72              :   visit(const AST_STATEMENT *node) const noexcept override;
      73              : 
      74              :   [[nodiscard]] std::expected<std::string, Error>
      75              :   visit(const AST_BODY *node) const noexcept override;
      76              : 
      77              :   [[nodiscard]] std::expected<std::string, Error>
      78              :   visit(const AST_WHILE *node) const noexcept override;
      79              : 
      80              :   [[nodiscard]] std::expected<std::string, Error>
      81              :   visit(const AST_FOR *node) const noexcept override;
      82              : 
      83              :   [[nodiscard]] std::expected<std::string, Error>
      84              :   visit(const AST_DO_WHILE *node) const noexcept override;
      85              : 
      86              :   [[nodiscard]] std::expected<std::string, Error>
      87              :   visit(const AST_PASS *node) const noexcept override;
      88              : 
      89              :   [[nodiscard]] std::expected<std::string, Error>
      90              :   visit(const AST_STOP *node) const noexcept override;
      91              : 
      92              :   [[nodiscard]] std::expected<std::string, Error>
      93              :   visit(const AST_IF *node) const noexcept override;
      94              : 
      95              :   [[nodiscard]] std::expected<std::string, Error>
      96              :   visit(const AST_ELSE_IF *node) const noexcept override;
      97              : 
      98              :   [[nodiscard]] std::expected<std::string, Error>
      99              :   visit(const AST_SWITCH *node) const noexcept override;
     100              : 
     101              :   [[nodiscard]] std::expected<std::string, Error>
     102              :   visit(const AST_CASE *node) const noexcept override;
     103              : 
     104              :   [[nodiscard]] std::expected<std::string, Error>
     105              :   visit(const AST_DEFAULT *node) const noexcept override;
     106              : 
     107              :   [[nodiscard]] std::expected<std::string, Error>
     108              :   visit(const AST_TERNARY *node) const noexcept override;
     109              : 
     110              :   [[nodiscard]] std::expected<std::string, Error>
     111              :   visit(const AST_CONDITION *node) const noexcept override;
     112              : 
     113              :   [[nodiscard]] std::expected<std::string, Error>
     114              :   visit(const AST_FUNC_CALL *node) const noexcept override;
     115              : 
     116              :   [[nodiscard]] std::expected<std::string, Error>
     117              :   visit(const AST_FUNC_DECL *node) const noexcept override;
     118              : 
     119              :   [[nodiscard]] std::expected<std::string, Error>
     120              :   visit(const AST_RETURN *node) const noexcept override;
     121              : 
     122              :   [[nodiscard]] std::expected<std::string, Error>
     123              :   visit(const AST_ENUM *node) const noexcept override;
     124              : 
     125              :   [[nodiscard]] std::expected<std::string, Error>
     126              :   visit(const AST_ENUM_ACCESS *node) const noexcept override;
     127              : 
     128              :   [[nodiscard]] std::expected<std::string, Error>
     129              :   visit(const AST_STRUCT *node) const noexcept override;
     130              : 
     131              :   [[nodiscard]] std::expected<std::string, Error>
     132              :   visit(const AST_ATTR_ACCESS *node) const noexcept override;
     133              : 
     134              :   [[nodiscard]] std::expected<std::string, Error>
     135              :   visit(const AST_METHOD_CALL *node) const noexcept override;
     136              : 
     137              :   [[nodiscard]] std::expected<std::string, Error>
     138              :   visit(const AST_METHOD_DECL *node) const noexcept override;
     139              : 
     140              :   [[nodiscard]] std::expected<std::string, Error>
     141              :   visit(const AST_CONSTRUCTOR_DECL *node) const noexcept override;
     142              : 
     143              :   [[nodiscard]] std::expected<std::string, Error>
     144              :   visit(const AST_SUPER *node) const noexcept override;
     145              : 
     146              :   [[nodiscard]] std::expected<std::string, Error>
     147              :   visit(const AST_DESTRUCTOR_DECL *node) const noexcept override;
     148              : 
     149              :   [[nodiscard]] std::expected<std::string, Error>
     150              :   visit(const AST_THIS *node) const noexcept override;
     151              : 
     152              :   [[nodiscard]] std::expected<std::string, Error>
     153              :   visit(const AST_CONSTRUCTOR_CALL *node) const noexcept override;
     154              : 
     155              :   [[nodiscard]] std::expected<std::string, Error>
     156              :   visit(const AST_AUTO_DECL *node) const noexcept override;
     157              : 
     158              :   [[nodiscard]] std::expected<std::string, Error>
     159              :   visit(const AST_VAR_TYPED_DECL *node) const noexcept override;
     160              : 
     161              :   [[nodiscard]] std::expected<std::string, Error>
     162              :   visit(const AST_VAR_CALL *node) const noexcept override;
     163              : 
     164              :   [[nodiscard]] std::expected<std::string, Error>
     165              :   visit(const AST_CHAINED *node) const noexcept override;
     166              : 
     167              :   [[nodiscard]] std::expected<std::string, Error>
     168              :   visit(const Tree *tree) const noexcept override;
     169              : 
     170              :   [[nodiscard]] std::expected<std::string, Error>
     171            0 :   print(const Tree *tree) const noexcept {
     172            0 :     return visit(tree);
     173            0 :   }
     174              : };
     175              : 
     176              : } // namespace nicole
     177              : 
     178              : #endif
        

Generated by: LCOV version 2.0-1