Single parsing logic
This commit is contained in:
@@ -13,6 +13,7 @@ Parsee Parsee::tokenParsee(TokenKind tokenKind, bool isRequired, bool shouldRetu
|
||||
Parsee Parsee::valueTypeParsee() {
|
||||
Parsee parsee;
|
||||
parsee.kind = ParseeKind::VALUE_TYPE;
|
||||
parsee.shouldReturn = true;
|
||||
|
||||
return parsee;
|
||||
}
|
||||
|
||||
@@ -7,13 +7,15 @@ ParseeResult ParseeResult::tokenResult(shared_ptr<Token> token) {
|
||||
ParseeResult parseeResult;
|
||||
parseeResult.kind = ParseeResultKind::TOKEN;
|
||||
parseeResult.token = token;
|
||||
parseeResult.tokensCount = 1;
|
||||
return parseeResult;
|
||||
}
|
||||
|
||||
ParseeResult ParseeResult::valueTypeResult(shared_ptr<ValueType> valueType) {
|
||||
ParseeResult ParseeResult::valueTypeResult(shared_ptr<ValueType> valueType, int tokensCount) {
|
||||
ParseeResult parseeResult;
|
||||
parseeResult.kind = ParseeResultKind::VALUE_TYPE;
|
||||
parseeResult.valueType = valueType;
|
||||
parseeResult.tokensCount = tokensCount;
|
||||
return parseeResult;
|
||||
}
|
||||
|
||||
@@ -30,4 +32,8 @@ shared_ptr<Token> ParseeResult::getToken() {
|
||||
|
||||
shared_ptr<ValueType> ParseeResult::getValueType() {
|
||||
return valueType;
|
||||
}
|
||||
|
||||
int ParseeResult::getTokensCount() {
|
||||
return tokensCount;
|
||||
}
|
||||
@@ -18,15 +18,17 @@ private:
|
||||
ParseeResultKind kind;
|
||||
shared_ptr<Token> token;
|
||||
shared_ptr<ValueType> valueType;
|
||||
int tokensCount;
|
||||
ParseeResult();
|
||||
|
||||
public:
|
||||
static ParseeResult tokenResult(shared_ptr<Token> token);
|
||||
static ParseeResult valueTypeResult(shared_ptr<ValueType> valueType);
|
||||
static ParseeResult valueTypeResult(shared_ptr<ValueType> valueType, int tokensCount);
|
||||
|
||||
ParseeResultKind getKind();
|
||||
shared_ptr<Token> getToken();
|
||||
shared_ptr<ValueType> getValueType();
|
||||
int getTokensCount();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user