Use parsee results
This commit is contained in:
@@ -10,9 +10,9 @@ Parsee Parsee::tokenParsee(TokenKind tokenKind, bool isRequired, bool shouldRetu
|
||||
return parsee;
|
||||
}
|
||||
|
||||
Parsee Parsee::typeParsee() {
|
||||
Parsee parsee;
|
||||
parsee.kind = ParseeKind::TYPE;
|
||||
Parsee Parsee::valueTypeParsee() {
|
||||
Parsee parsee;
|
||||
parsee.kind = ParseeKind::VALUE_TYPE;
|
||||
|
||||
return parsee;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ enum class TokenKind;
|
||||
|
||||
enum class ParseeKind {
|
||||
TOKEN,
|
||||
TYPE
|
||||
VALUE_TYPE
|
||||
};
|
||||
|
||||
class Parsee {
|
||||
@@ -14,15 +14,13 @@ private:
|
||||
TokenKind tokenKind;
|
||||
bool isRequired;
|
||||
bool shouldReturn;
|
||||
|
||||
Parsee();
|
||||
|
||||
public:
|
||||
static Parsee tokenParsee(TokenKind tokenKind, bool isRequired, bool shouldReturn);
|
||||
static Parsee typeParsee();
|
||||
static Parsee valueTypeParsee();
|
||||
|
||||
ParseeKind getKind();
|
||||
|
||||
TokenKind getTokenKind();
|
||||
bool getIsRequired();
|
||||
bool getShouldReturn();
|
||||
|
||||
33
src/Parser/Parsee/ParseeResult.cpp
Normal file
33
src/Parser/Parsee/ParseeResult.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
#include "ParseeResult.h"
|
||||
|
||||
#include "Lexer/Token.h"
|
||||
#include "Parser/ValueType.h"
|
||||
|
||||
ParseeResult ParseeResult::tokenResult(shared_ptr<Token> token) {
|
||||
ParseeResult parseeResult;
|
||||
parseeResult.kind = ParseeResultKind::TOKEN;
|
||||
parseeResult.token = token;
|
||||
return parseeResult;
|
||||
}
|
||||
|
||||
ParseeResult ParseeResult::valueTypeResult(shared_ptr<ValueType> valueType) {
|
||||
ParseeResult parseeResult;
|
||||
parseeResult.kind = ParseeResultKind::VALUE_TYPE;
|
||||
parseeResult.valueType = valueType;
|
||||
return parseeResult;
|
||||
}
|
||||
|
||||
ParseeResult::ParseeResult() { }
|
||||
|
||||
|
||||
ParseeResultKind ParseeResult::getKind() {
|
||||
return kind;
|
||||
}
|
||||
|
||||
shared_ptr<Token> ParseeResult::getToken() {
|
||||
return token;
|
||||
}
|
||||
|
||||
shared_ptr<ValueType> ParseeResult::getValueType() {
|
||||
return valueType;
|
||||
}
|
||||
32
src/Parser/Parsee/ParseeResult.h
Normal file
32
src/Parser/Parsee/ParseeResult.h
Normal file
@@ -0,0 +1,32 @@
|
||||
#ifndef PARSEE_RESULT_H
|
||||
#define PARSEE_RESULT_H
|
||||
|
||||
#include <memory>
|
||||
|
||||
class Token;
|
||||
class ValueType;
|
||||
|
||||
using namespace std;
|
||||
|
||||
enum class ParseeResultKind {
|
||||
TOKEN,
|
||||
VALUE_TYPE,
|
||||
};
|
||||
|
||||
class ParseeResult {
|
||||
private:
|
||||
ParseeResultKind kind;
|
||||
shared_ptr<Token> token;
|
||||
shared_ptr<ValueType> valueType;
|
||||
ParseeResult();
|
||||
|
||||
public:
|
||||
static ParseeResult tokenResult(shared_ptr<Token> token);
|
||||
static ParseeResult valueTypeResult(shared_ptr<ValueType> valueType);
|
||||
|
||||
ParseeResultKind getKind();
|
||||
shared_ptr<Token> getToken();
|
||||
shared_ptr<ValueType> getValueType();
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user