Rework text spans a bit to include script file, make binder log an error when two classes have a circular value reference.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2021-01-09 13:20:56 +01:00
parent 8660933f27
commit 59af34fac9
16 changed files with 432 additions and 267 deletions

View File

@@ -27,13 +27,13 @@ namespace MalachScriptRepl {
auto logger = MalachScript::Diagnostics::Logger();
auto lexer = MalachScript::Parser::Lexer("diag", script, &logger);
const auto* firstToken = lexer.Lex();
const auto* parsedResult = MalachScript::Parser::Parser::Parse(firstToken, "diag", &logger);
const auto* parsedResult = MalachScript::Parser::Parser::Parse(firstToken, &logger);
auto* ns = new MalachScript::Binder::BoundNamespace();
const MalachScript::Binder::Binder::log_func log =
[&logger](MalachScript::Diagnostics::DiagnosticLevel level, MalachScript::Diagnostics::DiagnosticType type,
const MalachScript::TextSpan& span,
const std::vector<std::string>& formats) { logger.Log(level, type, "", span, formats); };
const MalachScript::ScriptTextSpan& span,
const std::vector<std::string>& formats) { logger.Log(level, type, span, formats); };
MalachScript::Binder::Binder::Bind(ns, {parsedResult}, log);
const MalachScript::Diagnostics::Diagnostic* diag = nullptr;