Line data Source code
1 : #include "../../../inc/parsingAnalysis/ast/astType.h"
2 :
3 : namespace nicole {
4 :
5 0 : std::string astTypeToStr(const AST_TYPE type) noexcept {
6 0 : switch (type) {
7 0 : case AST_TYPE::EXPRESSION:
8 0 : return "EXPRESSION";
9 :
10 : // Literals
11 0 : case AST_TYPE::BOOL:
12 0 : return "BOOL";
13 0 : case AST_TYPE::INT:
14 0 : return "INT";
15 0 : case AST_TYPE::CHAR:
16 0 : return "CHAR";
17 0 : case AST_TYPE::DOUBLE:
18 0 : return "DOUBLE";
19 0 : case AST_TYPE::FLOAT:
20 0 : return "FLOAT";
21 0 : case AST_TYPE::STRING:
22 0 : return "STRING";
23 0 : case AST_TYPE::NULLPTR:
24 0 : return "NULLPTR";
25 :
26 : // Vectors
27 0 : case AST_TYPE::VECTOR:
28 0 : return "VECTOR";
29 0 : case AST_TYPE::INDEX:
30 0 : return "INDEX";
31 :
32 : // Pointers
33 0 : case AST_TYPE::PTR:
34 0 : return "PTR";
35 0 : case AST_TYPE::PTR_DEREFENCE:
36 0 : return "PTR_DEREFENCE";
37 0 : case AST_TYPE::NEW:
38 0 : return "NEW";
39 0 : case AST_TYPE::DELETE:
40 0 : return "DELETE";
41 :
42 : // Binary operators
43 0 : case AST_TYPE::BINARY:
44 0 : return "BINARY";
45 :
46 : // Unary operators
47 0 : case AST_TYPE::UNARY:
48 0 : return "UNARY";
49 :
50 : // Variable declaration
51 0 : case AST_TYPE::VAR_TYPED_DECL:
52 0 : return "VAR_TYPED_DECL";
53 0 : case AST_TYPE::AUTO_DECL:
54 0 : return "AUTO_DECL";
55 0 : case AST_TYPE::VAR_CALL:
56 0 : return "VAR_CALL";
57 :
58 : // Asignment
59 0 : case AST_TYPE::ASSIGNMENT:
60 0 : return "ASIGNMENT";
61 :
62 : // Utils
63 0 : case AST_TYPE::PRINT:
64 0 : return "PRINT";
65 0 : case AST_TYPE::IMPORT:
66 0 : return "IMPORT";
67 :
68 : // Statements
69 0 : case AST_TYPE::STATEMENT:
70 0 : return "STATEMENT";
71 0 : case AST_TYPE::BODY:
72 0 : return "BODY";
73 :
74 : // Loops
75 0 : case AST_TYPE::WHILE:
76 0 : return "WHILE";
77 0 : case AST_TYPE::FOR:
78 0 : return "FOR";
79 0 : case AST_TYPE::DO_WHILE:
80 0 : return "DO_WHILE";
81 0 : case AST_TYPE::PASS:
82 0 : return "PASS";
83 0 : case AST_TYPE::STOP:
84 0 : return "STOP";
85 :
86 : // Conditionals
87 0 : case AST_TYPE::IF:
88 0 : return "IF";
89 0 : case AST_TYPE::ELSE_IF:
90 0 : return "ELSE_IF";
91 0 : case AST_TYPE::SWITCH:
92 0 : return "SWITCH";
93 0 : case AST_TYPE::CASE:
94 0 : return "CASE";
95 0 : case AST_TYPE::DEFAULT:
96 0 : return "DEFAULT";
97 0 : case AST_TYPE::TERNARY:
98 0 : return "TERNARY";
99 0 : case AST_TYPE::CONDITION:
100 0 : return "CONDITION";
101 :
102 : // Functions
103 0 : case AST_TYPE::FUNC_DECL:
104 0 : return "FUNC_DECL";
105 0 : case AST_TYPE::PARAMETER:
106 0 : return "PARAMETER";
107 0 : case AST_TYPE::RETURN:
108 0 : return "RETURN";
109 0 : case AST_TYPE::FUN_CALL:
110 0 : return "FUN_CALL";
111 :
112 : // Structs
113 0 : case AST_TYPE::STRUCT_DECL:
114 0 : return "STRUCT_DECL";
115 :
116 : // Classes
117 0 : case AST_TYPE::CLASS_DECL:
118 0 : return "CLASS_DECL";
119 :
120 0 : case AST_TYPE::ATTR_ACCESS:
121 0 : return "ATTR_ACCESS";
122 :
123 0 : case AST_TYPE::METHOD_CALL:
124 0 : return "METHOD_CALL";
125 :
126 0 : case AST_TYPE::METHOD_DECL:
127 0 : return "METHOD_DECL";
128 :
129 0 : case AST_TYPE::CONSTRUCTOR_DECL:
130 0 : return "CONSTRUCTOR_DECL";
131 :
132 0 : case AST_TYPE::DESTRUCTOR_DECL:
133 0 : return "DESTRUCTOR_DECL";
134 :
135 0 : case AST_TYPE::THIS:
136 0 : return "THIS";
137 :
138 0 : case AST_TYPE::CONSTRUCTOR_CALL:
139 0 : return "CONSTRUCTOR_CALL";
140 :
141 0 : case AST_TYPE::SUPER:
142 0 : return "SUPER";
143 :
144 : // Enum
145 0 : case AST_TYPE::ENUM:
146 0 : return "ENUM";
147 :
148 0 : case AST_TYPE::ENUM_ACCESS:
149 0 : return "ENUM_ACCESS";
150 :
151 : // Chained expression
152 0 : case AST_TYPE::CHAIN:
153 0 : return "CHAIN";
154 0 : }
155 0 : }
156 :
157 : } // namespace nicole
|