Make Diagnostics usage a pointer
This commit is contained in:
parent
99f50b6471
commit
8f2f122215
|
@ -60,7 +60,7 @@ IToken* Lexer::LexNext(char c){
|
|||
if (isalpha(c)){
|
||||
return LexIdentifierOrKeyword(c);
|
||||
}
|
||||
this -> ScriptData->Diagnostics.LogError(DiagnosticCode::UnexpectedCharacter, this -> Position - 1, 1);
|
||||
this -> ScriptData -> Diagnostics -> LogError(DiagnosticCode::UnexpectedCharacter, this -> Position - 1, 1);
|
||||
return new SimpleToken(TokenKind::BadToken, this -> Position - 1, 1);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -111,7 +111,7 @@ ParsedExpression *Parser::ParsePrimaryExpression(IToken *current) {
|
|||
case TokenKind ::TrueKeyword: return new LiteralBoolExpression(current);
|
||||
case TokenKind ::FalseKeyword: return new LiteralBoolExpression(current);
|
||||
default:
|
||||
this -> ScriptData -> Diagnostics.LogError(DiagnosticCode::UnexpectedToken, current->GetStartPosition(), current->GetLength());
|
||||
this -> ScriptData -> Diagnostics -> LogError(DiagnosticCode::UnexpectedToken, current->GetStartPosition(), current->GetLength());
|
||||
return new BadExpression(current->GetStartPosition(), current->GetLength());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,10 @@ Script Script::Create(string script) {
|
|||
return s;
|
||||
}
|
||||
|
||||
Script::~Script() {
|
||||
delete this -> Diagnostics;
|
||||
}
|
||||
|
||||
void Script::Parse(string script) {
|
||||
auto lexer = Lexer(std::move(script), this);
|
||||
auto lexResult = lexer.Lex();
|
||||
|
@ -21,3 +25,4 @@ void Script::Parse(string script) {
|
|||
}
|
||||
lexResult.clear();
|
||||
}
|
||||
|
||||
|
|
|
@ -10,12 +10,16 @@
|
|||
using namespace std;
|
||||
|
||||
class Script {
|
||||
explicit Script() = default;
|
||||
explicit Script(){
|
||||
Diagnostics = new class Diagnostics();
|
||||
};
|
||||
|
||||
void Parse(string script);
|
||||
public:
|
||||
static Script Create(string script);
|
||||
Diagnostics Diagnostics;
|
||||
Diagnostics* Diagnostics;
|
||||
|
||||
~Script();
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue