-
Notifications
You must be signed in to change notification settings - Fork 0
/
VbCodeExpressionFactory.h
31 lines (28 loc) · 1.5 KB
/
VbCodeExpressionFactory.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include "Sentence.h"
#include "VbCodeExpression.h"
#include "VbCodeDotType.h"
#include "optional.h"
#include <vector>
class VbCodeExpressionFactory
{
public:
static VbCodeExpressionPtr CreateDefaultValue(const optional<Sentence>& sentence);
static VbCodeExpressionPtr CreateExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateLValue(const Sentence& sentence);
static VbCodeExpressionPtr CreateCallStatement(const Sentence& sentence);
private:
static VbCodeExpressionPtr CreateOrExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateXorExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateAndExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateEqualityExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateRelationalExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateAdditiveExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateMultiplicativeExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateUnaryExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreatePostfixExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreatePrimaryExpression(const Sentence& sentence);
static VbCodeExpressionPtr CreateConstantExpression(const Sentence& sentence);
static std::vector<VbCodeExpressionPtr> CreateExpressionClause(const Sentence& sentence);
static std::vector<VbCodeExpressionPtr> CreateExpressionList(const Sentence& sentence);
};