aboutsummaryrefslogtreecommitdiff
path: root/include/semantic/symbol.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/semantic/symbol.h')
-rw-r--r--include/semantic/symbol.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/semantic/symbol.h b/include/semantic/symbol.h
new file mode 100644
index 0000000..3cb4290
--- /dev/null
+++ b/include/semantic/symbol.h
@@ -0,0 +1,38 @@
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include "types.h"
+
+class Symbol {
+public:
+ explicit Symbol(std::string name, SymbolType type, std::string data_type, int scope);
+ std::string getName();
+ SymbolType getSymbolType();
+ std::string getDataType();
+ int getScopeLevel();
+ bool isInitialized();
+ void setInitialized(bool init);
+ bool isParameter();
+ void setParameter(bool is_param);
+ std::vector<std::string> getParameterTypes();
+ void setParameterTypes(std::vector<std::string> types);
+ std::string getReturnType();
+ void setReturnType(std::string type);
+ int getLineDeclared();
+ void setLineDeclared(int line);
+ std::string toString();
+
+private:
+ std::string name;
+ SymbolType symbol_type
+ std::string data_type
+ int scope_level
+ bool is_initialized
+ bool is_parameter
+ std::vector<std::string> parameter_types
+ std::string return_type
+ int line_declared
+ int column_declared
+};