From ec77b23a1152d50c3dc37e3380bf637d89456830 Mon Sep 17 00:00:00 2001 From: Peter Dahlberg Date: Sat, 1 Jun 2013 03:09:32 +0200 Subject: [PATCH] FunctionCallExpression --- CMakeLists.txt | 1 + inc/AST/ASTVisitor.h | 3 +++ inc/AST/FunctionCallExpression.h | 23 +++++++++++++++++++++++ src/AST/FunctionCallExpression.cpp | 25 +++++++++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 inc/AST/FunctionCallExpression.h create mode 100644 src/AST/FunctionCallExpression.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 064819f..ff89305 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,6 +77,7 @@ SET(SCULLY_SOURCE src/AST/Type.cpp src/AST/VariableDefinition.cpp src/AST/ValueList.cpp + src/AST/FunctionCallExpression.cpp ${CMAKE_CURRENT_BINARY_DIR}/grammar.cpp ) diff --git a/inc/AST/ASTVisitor.h b/inc/AST/ASTVisitor.h index 9595086..6ec5d93 100644 --- a/inc/AST/ASTVisitor.h +++ b/inc/AST/ASTVisitor.h @@ -15,6 +15,7 @@ #include "StatementList.h" #include "ValueList.h" #include "VariableDefinition.h" +#include "FunctionCallExpression.h" class ASTVisitor { @@ -36,6 +37,8 @@ public: virtual void visit(StatementList* e) = 0; virtual void visit(ValueList* e) = 0; virtual void visit(VariableDefinition* e) = 0; + virtual void visit(FunctionCallExpression* e) = 0; + }; #endif // ASTVISITOR_H diff --git a/inc/AST/FunctionCallExpression.h b/inc/AST/FunctionCallExpression.h new file mode 100644 index 0000000..e02009b --- /dev/null +++ b/inc/AST/FunctionCallExpression.h @@ -0,0 +1,23 @@ +#ifndef FUNCTIONCALLEXPRESSION_H +#define FUNCTIONCALLEXPRESSION_H + +#include +#include "AST/ValueList.h" + +class FunctionCallExpression : public Expression +{ +public: + FunctionCallExpression(std::string id, ValueList* values); + virtual ~FunctionCallExpression(); + virtual void accept(ASTVisitor* visitor); + + std::string getId(); + ValueList* getValues(); + +private: + std::string id_; + ValueList* values_; + +}; + +#endif // FUNCTIONCALLEXPRESSION_H diff --git a/src/AST/FunctionCallExpression.cpp b/src/AST/FunctionCallExpression.cpp new file mode 100644 index 0000000..58d071f --- /dev/null +++ b/src/AST/FunctionCallExpression.cpp @@ -0,0 +1,25 @@ +#include "AST/FunctionCallExpression.h" +#include "AST/ASTVisitor.h" + +FunctionCallExpression::FunctionCallExpression(std::string id, ValueList* values): + id_(id), values_(values) { + // +} + +FunctionCallExpression::~FunctionCallExpression() { + // +} + +void FunctionCallExpression::accept(ASTVisitor* visitor) { + visitor->visit(this); +} + +std::string FunctionCallExpression::getId() { + return id_; +} + +ValueList*FunctionCallExpression::getValues() { + return values_; +} + +