Skip to content

Commit 93aaced

Browse files
committed
replaced uses of std::string with MultiType; still need to replace many conversions with MultiType's conversions
1 parent 3144cfb commit 93aaced

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+247
-156
lines changed

include/MultiType.h

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
1+
#pragma once
2+
13
#include <string>
2-
#include <iostream>
4+
#include <stdexcept>
5+
6+
enum Type {STRING,DOUBLE};
37

48
class MultiType
59
{
610
public:
711
MultiType(const std::string &s);
12+
MultiType(double d);
813
std::string getString();
914
double getDouble();
1015
void setString(const std::string &s);
1116
void setDouble(const double &d);
17+
bool operator==(const MultiType &other) const;
18+
bool operator<(const MultiType &other) const;
19+
bool operator>(const MultiType &other) const;
1220
private:
13-
enum Type {STRING,DOUBLE};
21+
friend std::ostream& operator<<(std::ostream& out, const MultiType& obj);
22+
enum CompareResult {EQUAL,LESS,GREATER};
23+
static CompareResult stringDoubleCompare(std::string s,double d);
1424
std::string stringVar;
1525
double doubleVar;
1626
Type type;

include/NestedBlock/NestedBlock.h

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
#pragma once
22

33
#include "Block.h"
4-
#include <string>
4+
#include "MultiType.h"
5+
6+
class MultiType;
57

68
class NestedBlock : public Block
79
{
810
public:
9-
virtual std::string getValue() const=0;
10-
virtual double getDouble() const=0;
11+
virtual MultiType getValue() const=0;
12+
virtual double getDouble();
13+
virtual std::string getString();
1114
};

include/NestedBlock/RoundBlock/AnswerBlock.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "NestedBlock/RoundBlock/RoundBlock.h"
2+
#include "MultiType.h"
23
#include <memory>
34
#include <string>
45

@@ -7,8 +8,8 @@ class Variable;
78
class AnswerBlock : public RoundBlock
89
{
910
public:
10-
std::string getValue() const override;
11-
void setValue(std::string val);
11+
MultiType getValue() const override;
12+
void setValue(MultiType val);
1213
AnswerBlock(std::shared_ptr<Variable> av);
1314
private:
1415
std::shared_ptr<Variable> answerVariable;

include/NestedBlock/RoundBlock/BinaryFunction/BinaryFunction.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class BinaryFunction : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override=0;
11+
MultiType getValue() const override=0;
1212
BinaryFunction(const std::shared_ptr<NestedBlock> l,const std::shared_ptr<NestedBlock> r);
1313
protected:
1414
const std::shared_ptr<NestedBlock> left, right;

include/NestedBlock/RoundBlock/BinaryFunction/FunctionAdd.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
class FunctionAdd : public BinaryFunction
77
{
88
public:
9-
std::string getValue() const override;
9+
MultiType getValue() const override;
1010
using BinaryFunction::BinaryFunction;
1111
};

include/NestedBlock/RoundBlock/BinaryFunction/FunctionDivide.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
class FunctionDivide : public BinaryFunction
77
{
88
public:
9-
std::string getValue() const override;
9+
MultiType getValue() const override;
1010
using BinaryFunction::BinaryFunction;
1111
};

include/NestedBlock/RoundBlock/BinaryFunction/FunctionMultiply.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
class FunctionMultiply : public BinaryFunction
77
{
88
public:
9-
std::string getValue() const override;
9+
MultiType getValue() const override;
1010
using BinaryFunction::BinaryFunction;
1111
};

include/NestedBlock/RoundBlock/BinaryFunction/FunctionSubtract.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
class FunctionSubtract : public BinaryFunction
77
{
88
public:
9-
std::string getValue() const override;
9+
MultiType getValue() const override;
1010
using BinaryFunction::BinaryFunction;
1111
};

include/NestedBlock/RoundBlock/Constant.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
#include <string>
44
#include "NestedBlock/RoundBlock/RoundBlock.h"
5+
#include "MultiType.h"
56

67
class Constant : public RoundBlock
78
{
89
public:
9-
std::string getValue() const override;
10+
MultiType getValue() const override;
1011
Constant(std::string v);
1112
private:
12-
std::string val;
13+
MultiType val;
1314
};

include/NestedBlock/RoundBlock/List/List.h

+9-9
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@ struct ListFindResult;
99
class List : public RoundBlock
1010
{
1111
public:
12-
std::string getValue() const override;
13-
std::vector<std::string> getVector() const;
14-
std::string getIndex(int index) const;
15-
void setVector(std::vector<std::string> v);
16-
void add(std::string v);
12+
MultiType getValue() const override;
13+
//std::vector<std::string> getVector() const;
14+
MultiType getIndex(int index) const;
15+
//void setVector(std::vector<std::string> v);
16+
void add(MultiType v);
1717
void remove(int index);
1818
void clear();
19-
void insert(int index, std::string v);
20-
void replace(int index, std::string v);
19+
void insert(int index, MultiType v);
20+
void replace(int index, MultiType v);
2121
int length() const;
22-
ListFindResult find(std::string v);
22+
ListFindResult find(MultiType v);
2323

2424
List(std::vector<std::string> v);
2525
List();
2626
private:
27-
std::vector<std::string> val;
27+
std::vector<MultiType> val;
2828
};
2929

3030
struct ListFindResult

include/NestedBlock/RoundBlock/List/ListFindItem.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class ListFindItem : public RoundBlock
77
public:
88
ListFindItem(const std::shared_ptr<List> l,
99
const std::shared_ptr<NestedBlock> val);
10-
std::string getValue() const override;
10+
MultiType getValue() const override;
1111
private:
1212
const std::shared_ptr<List> list;
1313
const std::shared_ptr<NestedBlock> value;

include/NestedBlock/RoundBlock/List/ListGetItem.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class ListGetItem : public RoundBlock
77
public:
88
ListGetItem(const std::shared_ptr<List> l,
99
const std::shared_ptr<NestedBlock> i);
10-
std::string getValue() const override;
10+
MultiType getValue() const override;
1111
private:
1212
const std::shared_ptr<List> list;
1313
const std::shared_ptr<NestedBlock> index;

include/NestedBlock/RoundBlock/List/ListLength.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class ListLength : public RoundBlock
66
{
77
public:
88
ListLength(const std::shared_ptr<List> l);
9-
std::string getValue() const override;
9+
MultiType getValue() const override;
1010
private:
1111
const std::shared_ptr<List> list;
1212
};

include/NestedBlock/RoundBlock/Operators/OperatorsJoin.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class OperatorsJoin : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override;
11+
MultiType getValue() const override;
1212
OperatorsJoin(std::shared_ptr<NestedBlock> lb, std::shared_ptr<NestedBlock> rb);
1313
private:
1414
std::shared_ptr<NestedBlock> left;

include/NestedBlock/RoundBlock/Operators/OperatorsLength.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class OperatorsLength : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override;
11+
MultiType getValue() const override;
1212
OperatorsLength(std::shared_ptr<NestedBlock> s);
1313
private:
1414
std::shared_ptr<NestedBlock> str;

include/NestedBlock/RoundBlock/Operators/OperatorsLetterOf.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class OperatorsLetterOf : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override;
11+
MultiType getValue() const override;
1212
OperatorsLetterOf(std::shared_ptr<NestedBlock> l, std::shared_ptr<NestedBlock> s);
1313
private:
1414
std::shared_ptr<NestedBlock> letter;

include/NestedBlock/RoundBlock/Operators/OperatorsMathOp.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class OperatorsMathOp : public RoundBlock
1010
{
1111
public:
12-
std::string getValue() const override;
12+
MultiType getValue() const override;
1313
OperatorsMathOp(std::shared_ptr<Constant> o, std::shared_ptr<NestedBlock> n);
1414
private:
1515
std::shared_ptr<Constant> op;

include/NestedBlock/RoundBlock/Operators/OperatorsMod.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class OperatorsMod : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override;
11+
MultiType getValue() const override;
1212
OperatorsMod(std::shared_ptr<NestedBlock> n1, std::shared_ptr<NestedBlock> n2);
1313
private:
1414
std::shared_ptr<NestedBlock> num1;

include/NestedBlock/RoundBlock/Operators/OperatorsRandom.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class OperatorsRandom : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override;
11+
MultiType getValue() const override;
1212
OperatorsRandom(std::shared_ptr<NestedBlock> lb, std::shared_ptr<NestedBlock> ub);
1313
private:
1414
std::shared_ptr<NestedBlock> lower;

include/NestedBlock/RoundBlock/Operators/OperatorsRound.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class OperatorsRound : public RoundBlock
99
{
1010
public:
11-
std::string getValue() const override;
11+
MultiType getValue() const override;
1212
OperatorsRound(std::shared_ptr<NestedBlock> n);
1313
private:
1414
std::shared_ptr<NestedBlock> num;

include/NestedBlock/RoundBlock/RoundBlock.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
#include <string>
44
#include "NestedBlock/NestedBlock.h"
55

6+
class MultiType;
7+
68
class RoundBlock : public NestedBlock
79
{
810
public:
9-
virtual std::string getValue() const=0;
10-
double getDouble() const override;
11+
virtual MultiType getValue() const=0;
1112
};

include/NestedBlock/RoundBlock/Time/CurrentTime.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class CurrentTime : public RoundBlock
77
{
88
public:
99
CurrentTime(std::shared_ptr<Constant> opt);
10-
std::string getValue() const override;
10+
MultiType getValue() const override;
1111
private:
1212
std::shared_ptr<Constant> option;
1313
};

include/NestedBlock/RoundBlock/Time/DaysSince2000.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
class DaysSince2000 : public RoundBlock
55
{
66
public:
7-
std::string getValue() const override;
7+
MultiType getValue() const override;
88
};

include/NestedBlock/RoundBlock/Time/TimerBlock.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ class GlobalTimer;
66
class TimerBlock : public RoundBlock
77
{
88
public:
9-
std::string getValue() const override;
9+
MultiType getValue() const override;
1010
TimerBlock(std::shared_ptr<GlobalTimer> gt);
1111
private:
1212
std::shared_ptr<GlobalTimer> globalTimer;

include/NestedBlock/RoundBlock/Variable.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
#include <string>
44
#include "NestedBlock/RoundBlock/RoundBlock.h"
5+
#include "MultiType.h"
56

67
class Variable : public RoundBlock
78
{
89
public:
9-
std::string getValue() const override;
10-
void setValue(std::string v);
10+
MultiType getValue() const override;
11+
void setValue(MultiType v);
1112
Variable(std::string v);
1213
Variable();
1314
private:
14-
std::string val;
15+
MultiType val;
1516
};

include/NestedBlock/SharpBlock/SharpBlock.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
class SharpBlock : public NestedBlock
77
{
88
public:
9+
MultiType getValue() const override;
910
virtual bool getBool() const=0;
10-
std::string getValue() const override;
11-
double getDouble() const override;
11+
std::string getString() override;
12+
double getDouble() override;
1213
};

0 commit comments

Comments
 (0)