From 5a826589007591a4476498fe87b625b80dcf7d95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Grodzi=C5=84ski?= Date: Sun, 8 Jun 2025 14:24:30 +0900 Subject: [PATCH] Added var statement --- src/Statement.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/Statement.h | 16 ++++++++++++++++ src/Types.h | 1 + 3 files changed, 63 insertions(+) diff --git a/src/Statement.cpp b/src/Statement.cpp index d4a2cab..cc4f24d 100644 --- a/src/Statement.cpp +++ b/src/Statement.cpp @@ -47,6 +47,52 @@ string StatementFunctionDeclaration::toString(int indent) { return value; } +// +// StatementVarDeclaration +StatementVarDeclaration::StatementVarDeclaration(string name, ValueType valueType, shared_ptr expression): +Statement(StatementKind::VAR_DECLARATION) { + +} + +string StatementVarDeclaration::getName() { + return name; +} + +ValueType StatementVarDeclaration::getValueType() { + return valueType; +} + +shared_ptr StatementVarDeclaration::getExpression() { + return expression; +} + +string StatementVarDeclaration::toString(int indent) { + string value; + for (int ind=0; indtoString(indent+1); + value += "\n"; + return value; +} + // // StatementBlock StatementBlock::StatementBlock(vector> statements): diff --git a/src/Statement.h b/src/Statement.h index 469ea66..cf1e0f8 100644 --- a/src/Statement.h +++ b/src/Statement.h @@ -45,6 +45,22 @@ public: string toString(int indent) override; }; +// +// StatementVarDeclaration +class StatementVarDeclaration: public Statement { +private: + string name; + ValueType valueType; + shared_ptr expression; + +public: + StatementVarDeclaration(string name, ValueType valueType, shared_ptr expression); + string getName(); + ValueType getValueType(); + shared_ptr getExpression(); + string toString(int indent) override; +}; + // // StatementBlock class StatementBlock: public Statement { diff --git a/src/Types.h b/src/Types.h index 4b3f0ee..7dd52c1 100644 --- a/src/Types.h +++ b/src/Types.h @@ -46,6 +46,7 @@ enum class ExpressionKind { enum class StatementKind { FUNCTION_DECLARATION, + VAR_DECLARATION, BLOCK, RETURN, EXPRESSION,